/** * Test options and specifications */ public function testOptionsAndSpecifications() { $text = new Text('text', array('required' => true, 'multiple' => true, 'pattern' => '[a-z]+', 'minlength' => 1, 'maxlength' => 10, 'identical' => 'identical', 'not_identical' => 'not_identical', 'alternate' => 'alternate', 'less_than' => 'less_than', 'more_than' => 'more_than', 'forbidden' => array('forbidden'), 'rpc_validators' => array('Rpc1::method1', 'Rpc2', ''), 'display_group' => 'display_group', 'translatable' => true, 'text_domain' => 'text_domain', 'filters' => array('filter1'), 'validators' => array('validator1'))); $this->assertTrue($text->getRequired()); $this->assertTrue($text->getMultiple()); $this->assertEquals('[a-z]+', $text->getPattern()); $this->assertEquals(1, $text->getMinlength()); $this->assertEquals(10, $text->getMaxlength()); $this->assertEquals('identical', $text->getIdentical()); $this->assertEquals('not_identical', $text->getNotIdentical()); $this->assertEquals('alternate', $text->getAlternate()); $this->assertEquals('less_than', $text->getLessThan()); $this->assertEquals('more_than', $text->getMoreThan()); $this->assertEquals(array('forbidden'), $text->getForbidden()); $this->assertEquals('display_group', $text->getDisplayGroup()); $this->assertTrue($text->isTranslatorEnabled()); $this->assertEquals('text_domain', $text->getTranslatorTextDomain()); $this->assertEquals(array('filter1'), $text->getInputFilters()); $this->assertEquals(array('validator1'), $text->getInputValidators()); $this->assertEquals(array('Rpc1::method1', 'Rpc2', ''), $text->getRpcValidators()); $spec = $text->getInputSpecification(); $this->assertInternalType('array', $spec); $this->assertArrayHasKey('name', $spec); $this->assertEquals('text', $spec['name']); $this->assertArrayHasKey('required', $spec); $this->assertTrue($spec['required']); $this->assertArrayHasKey('filters', $spec); $this->assertNotEmpty($spec['filters']); $this->assertContains('filter1', $spec['filters']); $this->assertArrayHasKey('validators', $spec); $this->assertNotEmpty($spec['validators']); $this->assertContains('validator1', $spec['validators']); $validators = $spec['validators']; /* @var $explode \Zend\Validator\Explode */ $explode = $this->getValidator($validators, 'Zend\\Validator\\Explode'); $this->assertTrue($explode->isValid(array('foo', 'bar', 'baz'))); $this->assertFalse($explode->isValid(array('fo0', '123', 'baz'))); /* @var $length \Zend\Validator\StringLength */ $length = $this->getValidator($validators, 'Zend\\Validator\\StringLength'); $this->assertEquals(1, $length->getMin()); $this->assertEquals(10, $length->getMax()); /* @var $identical \Zend\Validator\Identical */ $identical = $this->getValidator($validators, 'Zend\\Validator\\Identical'); $this->assertEquals('identical', $identical->getToken()); /* @var $notIdentical \Zork\Validator\NotIdentical */ $notIdentical = $this->getValidator($validators, 'Zork\\Validator\\NotIdentical'); $this->assertEquals('not_identical', $notIdentical->getToken()); /* @var $alternate \Zork\Validator\Alternate */ $alternate = $this->getValidator($validators, 'Zork\\Validator\\Alternate'); $this->assertEquals('alternate', $alternate->getToken()); /* @var $lessThan \Zork\Validator\LessThan */ $lessThan = $this->getValidator($validators, 'Zork\\Validator\\LessThan'); $this->assertEquals('less_than', $lessThan->getToken()); /* @var $moreThan \Zork\Validator\MoreThan */ $moreThan = $this->getValidator($validators, 'Zork\\Validator\\MoreThan'); $this->assertEquals('more_than', $moreThan->getToken()); /* @var $forbidden \Zork\Validator\Forbidden */ $forbidden = $this->getValidator($validators, 'Zork\\Validator\\Forbidden'); $this->assertEquals(array('forbidden'), $forbidden->getHaystack()); $this->assertEquals(array(array('name' => 'Zork\\Validator\\Rpc', 'options' => array('service' => 'Rpc1', 'method' => 'method1')), array('name' => 'Zork\\Validator\\Rpc', 'options' => array('service' => 'Rpc2'))), $text->getRpcValidatorSpecifications()); $search = new Search('search'); $spec2 = $search->getInputSpecification(); $this->assertInternalType('array', $spec2); $this->assertArrayHasKey('name', $spec2); $this->assertEquals('search', $spec2['name']); }