PortTest.php #1

  • //
  • guest/
  • perforce_software/
  • chronicle/
  • main/
  • tests/
  • phpunit/
  • P4/
  • Validate/
  • PortTest.php
  • View
  • Commits
  • Open Download .zip Download (4 KB)
<?php
/**
 * Test methods for the P4 Validate SpecName class.
 *
 * @copyright   2011 Perforce Software. All rights reserved.
 * @license     Please see LICENSE.txt in top-level folder of this distribution.
 * @version     <release>/<patch>
 */
class P4_Validate_PortTest extends TestCase
{
    /**
     * Test instantiation.
     */
    public function testInstantiation()
    {
        $validator = new P4_Validate_Port;
        $this->assertTrue($validator instanceof P4_Validate_Port, 'Expected class');
    }

    /**
     * Test isValid.
     */
    public function testIsValid()
    {
        $invalidPortError = 'does not appear to contain a valid numeric port.';
        $invalidHostError = 'appears to have a invalid hostname component.';
        $tests = array(
            array(
                'label' => __LINE__ .': null',
                'value' => null,
                'valid' => false,
                'error' => array(
                    'invalidPort' => "'' $invalidPortError",
                ),
            ),
            array(
                'label' => __LINE__ .': empty',
                'value' => '',
                'valid' => false,
                'error' => array(
                    'invalidPort' => "'' $invalidPortError",
                ),
            ),
            array(
                'label' => __LINE__ .': numeric',
                'value' => 123,
                'valid' => true,
                'error' => array(),
            ),
            array(
                'label' => __LINE__ .': number',
                'value' => '123',
                'valid' => true,
                'error' => array(),
            ),
            array(
                'label' => __LINE__ .': ssl with host/port',
                'value' => 'ssl:perforce:1666',
                'valid' => true,
                'error' => array(),
            ),
            array(
                'label' => __LINE__ .': ssl with port',
                'value' => 'ssl:1666',
                'valid' => true,
                'error' => array(),
            ),
            array(
                'label' => __LINE__ .': alpha',
                'value' => 'abc',
                'valid' => false,
                'error' => array(
                    'invalidPort' => "'abc' $invalidPortError",
                ),
            ),
            array(
                'label' => __LINE__ .': alphanumeric',
                'value' => 'abc123',
                'valid' => false,
                'error' => array(
                    'invalidPort' => "'abc123' $invalidPortError",
                ),
            ),
            array(
                'label' => __LINE__ .': numericalpha',
                'value' => '123abc',
                'valid' => false,
                'error' => array(
                    'invalidPort' => "'123abc' $invalidPortError",
                ),
            ),
            array(
                'label' => __LINE__ .': empty host, good port',
                'value' => ':123',
                'valid' => false,
                'error' => array(
                    'invalidHost' => "':123' $invalidHostError"
                ),
            ),
            array(
                'label' => __LINE__ .': localhost, bad port',
                'value' => 'localhost:abc',
                'valid' => false,
                'error' => array(
                    'invalidPort' => "'localhost:abc' $invalidPortError",
                ),
            ),

        );

        foreach ($tests as $test) {
            $label = $test['label'];
            $validator = new P4_Validate_Port;

            $this->assertSame(
                $test['valid'],
                $validator->isValid($test['value']),
                "$label - Expected validation result."
            );

            $this->assertSame(
                $test['error'],
                $validator->getMessages(),
                "$label - Expected error message(s)"
            );
        }
    }

}
# Change User Description Committed
#1 16170 perforce_software Move Chronicle files to follow new path scheme for branching.
//guest/perforce_software/chronicle/tests/phpunit/P4/Validate/PortTest.php
#1 8972 Matt Attaway Initial add of the Chronicle source code