/**
  * 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());
 }
Exemple #3
0
 /**
  * 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);
 }