/** * Adds a validator to the end of the chain * * @param \Magento\Framework\Validator\ValidatorInterface $validator * @param boolean $breakChainOnFailure * @return \Magento\Framework\Validator */ public function addValidator(\Magento\Framework\Validator\ValidatorInterface $validator, $breakChainOnFailure = false) { if (!$validator->hasTranslator()) { $validator->setTranslator($this->getTranslator()); } $this->_validators[] = ['instance' => $validator, 'breakChainOnFailure' => (bool) $breakChainOnFailure]; return $this; }
/** * Check translator was set into wrapped validator */ public function testSetTranslator() { /** @var \Magento\Framework\Translate\AbstractAdapter $translator */ $translator = $this->getMockBuilder('Magento\\Framework\\Translate\\AdapterInterface')->getMockForAbstractClass(); $this->_constraint->setTranslator($translator); $this->assertEquals($translator, $this->_validatorMock->getTranslator()); $this->assertEquals($translator, $this->_constraint->getTranslator()); }
/** * Test isValid method * * @dataProvider isValidDataProvider * * @param mixed $value * @param mixed $validateValue * @param bool $expectedResult * @param array $validatorMessages * @param array $expectedMessages */ public function testIsValid($value, $validateValue, $expectedResult, $validatorMessages = [], $expectedMessages = []) { $this->_validatorMock->expects($this->once())->method('isValid')->with($validateValue)->will($this->returnValue($expectedResult)); if ($expectedResult) { $this->_validatorMock->expects($this->never())->method('getMessages'); } else { $this->_validatorMock->expects($this->once())->method('getMessages')->will($this->returnValue($validatorMessages)); } $this->assertEquals($expectedResult, $this->_constraint->isValid($value)); $this->assertEquals($expectedMessages, $this->_constraint->getMessages()); }
public function aroundIsAttributeValid(ValidatorInterface $subject, \Closure $proceed, $attrCode, array $attrParams, array $rowData) { $result = $proceed($attrCode, $attrParams, $rowData); if ($result === false) { $messages = (array) $subject->getMessages(); switch (end($messages)) { case RowValidatorInterface::ERROR_INVALID_ATTRIBUTE_TYPE: $this->addAdditionalMessage(sprintf('[SKU %s] %s value for attribute "%s" expected. Your input: "%s"', $rowData['sku'], ucfirst($attrParams['type']), $attrCode, $rowData[$attrCode])); break; } } return $result; }
/** * Get translator instance of wrapped validator * * @return \Magento\Framework\Translate\AdapterInterface|null */ public function getTranslator() { return $this->_wrappedValidator->getTranslator(); }
private function stubGetMessages($messages) { $this->validatorStub->expects($this->any())->method('getMessages')->willReturn($messages); }