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;
 }
Example #2
0
 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;
 }
Example #4
0
    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));
    }
Example #5
0
 public function testSettingANewHaystack()
 {
     $this->validator->setHaystack(array(1, 'a', 2.3));
     $this->assertEquals(array(1, 'a', 2.3), $this->validator->getHaystack());
 }