public function getInputFilter() { if (is_null($this->filter)) { $trackingIdValidator = new StringLength(36); $regexValidator = new Regex('/^[a-zA-Z0-9_-]+$/'); $trackingIdInput = new Input('trackingId'); $trackingIdInput->allowEmpty(); $trackingIdInput->setRequired(false); $trackingIdInput->getValidatorChain()->attach($trackingIdValidator)->attach($regexValidator); $inArrayValidator = new InArray(); $inArrayValidator->setHaystack(array_keys($this->locations)); $originInput = new Input('origin'); $originInput->getValidatorChain()->attach($inArrayValidator); $notSameValidator = new Callback(array('callback' => function ($value, $context = null) { if ($context) { return $value !== $context['origin']; } return true; }, 'messages' => array(Callback::INVALID_VALUE => 'Origin and Destination are the same'))); $destinationInput = new Input('final_destination'); $destinationInput->getValidatorChain()->attach($inArrayValidator)->attach($notSameValidator); $filter = new InputFilter(); $filter->add($trackingIdInput)->add($originInput)->add($destinationInput); $this->filter = $filter; } return $this->filter; }
public function testIfAssociativeArrayTransformed() { $validator = new InArray(); $validator->setHaystack(array('foo' => 'bar', 'fuu' => 'buz')); $this->validator = $validator; $this->assertEquals(array('in_array' => array(0 => 'bar', 1 => 'buz')), $this->getRules()); }
/** * {@inheritdoc} */ public function createServiceWithName(ServiceLocatorInterface $serviceLocator, $name, $requestedName) { if ($serviceLocator instanceof AbstractPluginManager) { $serviceLocator = $serviceLocator->getServiceLocator(); } $globalConfig = $serviceLocator->has('Config') ? $serviceLocator->get('Config') : []; $contextconfig = $this->getContextConfig($serviceLocator); $validator = new InArray(); $validator->setHaystack($globalConfig[$contextconfig[$requestedName]['name_key_array_config']]); // TODO add personal message error return $validator; }
public function testSettingANewHaystack() { $validator = new Validator\InArray( array('haystack' => array('test', 0, 'A') ) ); $this->assertTrue($validator->isValid('A')); $validator->setHaystack(array(1, 'a', 2.3)); $this->assertTrue($validator->isValid(1)); $this->assertTrue($validator->isValid(1.0)); $this->assertTrue($validator->isValid('1')); $this->assertTrue($validator->isValid('a')); $this->assertFalse($validator->isValid('A')); $this->assertTrue($validator->isValid(2.3)); $this->assertTrue($validator->isValid(2.3e0)); }
public function testSettingANewHaystack() { $this->validator->setHaystack(array(1, 'a', 2.3)); $this->assertEquals(array(1, 'a', 2.3), $this->validator->getHaystack()); }