예제 #1
0
 /**
  * Data provider for
  *
  * @return array
  */
 public function createValidatorDataProvider()
 {
     $result = array();
     /** @var Magento_Translate_AdapterAbstract $translator */
     $translator = $this->getMockBuilder('Magento_Translate_AdapterAbstract')->getMockForAbstractClass();
     Magento_Validator_ValidatorAbstract::setDefaultTranslator($translator);
     // Case 1. Check constructor with arguments
     $actualConstraints = array(array('alias' => 'name_alias', 'class' => 'Magento_Validator_Test_StringLength', 'options' => array('arguments' => array(1, new Magento_Validator_Constraint_Option(20))), 'property' => 'name', 'type' => 'property'));
     $expectedValidator = new Magento_Validator();
     $expectedValidator->addValidator(new Magento_Validator_Constraint_Property(new Magento_Validator_Test_StringLength(1, 20), 'name', 'name_alias'));
     $result[] = array($actualConstraints, $expectedValidator);
     // Case 2. Check method calls
     $actualConstraints = array(array('alias' => 'description_alias', 'class' => 'Magento_Validator_Test_StringLength', 'options' => array('methods' => array(array('method' => 'setMin', 'arguments' => array(10)), array('method' => 'setMax', 'arguments' => array(1000)))), 'property' => 'description', 'type' => 'property'));
     $expectedValidator = new Magento_Validator();
     $expectedValidator->addValidator(new Magento_Validator_Constraint_Property(new Magento_Validator_Test_StringLength(10, 1000), 'description', 'description_alias'));
     $result[] = array($actualConstraints, $expectedValidator);
     // Case 3. Check callback on validator
     $actualConstraints = array(array('alias' => 'sku_alias', 'class' => 'Magento_Validator_Test_StringLength', 'options' => array('callback' => array(new Magento_Validator_Constraint_Option_Callback(function ($validator) {
         $validator->setMin(20);
         $validator->setMax(100);
     }))), 'property' => 'sku', 'type' => 'property'));
     $expectedValidator = new Magento_Validator();
     $expectedValidator->addValidator(new Magento_Validator_Constraint_Property(new Magento_Validator_Test_StringLength(20, 100), 'sku', 'sku_alias'));
     $result[] = array($actualConstraints, $expectedValidator);
     return $result;
 }
예제 #2
0
 /**
  * @param array $dataToValidate
  * @param PHPUnit_Framework_MockObject_MockObject $zendConstraintMock
  * @param PHPUnit_Framework_MockObject_MockObject $mageConstraintMock
  * @param Magento_Validator_Config $configMock
  * @dataProvider dataProviderForValidator
  */
 public function testGetErrors($dataToValidate, $zendConstraintMock, $mageConstraintMock, $configMock)
 {
     $expectedZendErrors = array('Test Zend_Validate_Interface constraint error.');
     $zendConstraintMock->expects($this->once())->method('isValid')->with($dataToValidate['test_field'])->will($this->returnValue(false));
     $zendConstraintMock->expects($this->once())->method('getMessages')->will($this->returnValue($expectedZendErrors));
     $expectedMageErrors = array('test_field_constraint' => array('Test Magento_Validator_ConstraintInterface constraint error.'));
     $mageConstraintMock->expects($this->once())->method('isValidData')->with($dataToValidate, 'test_field_constraint')->will($this->returnValue(false));
     $mageConstraintMock->expects($this->once())->method('getErrors')->will($this->returnValue($expectedMageErrors));
     $validator = new Magento_Validator('test_entity', 'test_group_a', $configMock);
     $this->assertFalse($validator->isValid($dataToValidate));
     $expectedErrors = array_merge(array('test_field' => $expectedZendErrors), $expectedMageErrors);
     $actualErrors = $validator->getMessages();
     $this->assertEquals($expectedErrors, $actualErrors);
 }
예제 #3
0
 /**
  * Check that translator passed into validator in chain
  */
 public function testSetTranslator()
 {
     $fooValidator = new Magento_Validator_Test_True();
     $this->_validator->addValidator($fooValidator);
     /** @var Magento_Translate_AdapterAbstract $translator */
     $translator = $this->getMockBuilder('Magento_Translate_AdapterAbstract')->getMockForAbstractClass();
     $this->_validator->setTranslator($translator);
     $this->assertEquals($translator, $fooValidator->getTranslator());
     $this->assertEquals($translator, $this->_validator->getTranslator());
 }
예제 #4
0
 /**
  * Get validator instance
  *
  * @return Magento_Validator
  */
 protected function _createValidatorInstance()
 {
     $validator = new Magento_Validator();
     foreach ($this->_constraints as $constraintData) {
         $validator->addValidator($this->_createConstraint($constraintData));
     }
     return $validator;
 }