/** * 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; }
/** * @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); }
/** * 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()); }
/** * 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; }