<?php /** * Test methods for the P4 Validate SpecName class. * * @copyright 2012 Perforce Software. All rights reserved. * @license Please see LICENSE.txt in top-level folder of this distribution. * @version <release>/<patch> */ namespace P4Test\Validate; use P4Test\TestCase; class 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)" ); } } }