6 declare(strict_types=1);
11 use Magento\Framework\Validation\ValidationResultFactory;
14 use PHPUnit\Framework\TestCase;
21 private $qtyValidator;
26 private $skuValidator;
31 private $validationResultFactory;
36 private $validatorChain;
43 $this->validationResultFactory = $this->getMockBuilder(ValidationResultFactory::class)->getMock();
44 $this->qtyValidator = $this->getMockBuilder(ValidatorInterface::class)->getMock();
45 $this->skuValidator = $this->getMockBuilder(ValidatorInterface::class)->getMock();
50 $emptyValidatorResult = $this->createMock(\
Magento\Framework\Validation\ValidationResult::class);
51 $this->validationResultFactory->expects($this->once())
53 ->with([
'errors' =>[]])
54 ->willReturn($emptyValidatorResult);
56 $this->validatorChain = (
new ObjectManager($this))->getObject(
57 ValidatorChain::class,
59 'validationResultFactory' => $this->validationResultFactory,
64 $result = $this->validatorChain->validate([], 1);
65 $this->assertEquals($emptyValidatorResult,
$result);
70 $emptyValidatorResult = $this->createMock(\
Magento\Framework\Validation\ValidationResult::class);
71 $emptyValidatorResult->expects($this->once())->method(
'isValid')
74 $this->validationResultFactory->expects($this->once())
76 ->with([
'errors' => []])
77 ->willReturn($emptyValidatorResult);
79 $this->qtyValidator->method(
'validate')
80 ->willReturn($emptyValidatorResult);
82 $this->validatorChain = (
new ObjectManager($this))->getObject(
83 ValidatorChain::class,
85 'validationResultFactory' => $this->validationResultFactory,
86 'validators' => [$this->qtyValidator]
90 $result = $this->validatorChain->validate([], 1);
91 $this->assertEquals($emptyValidatorResult,
$result);
96 $validatorResult = $this->createMock(\
Magento\Framework\Validation\ValidationResult::class);
98 $validatorResult->expects($this->once())->method(
'isValid')
101 $validatorResult->expects($this->once())
102 ->method(
'getErrors')
103 ->willReturn([
'Qty can not negative',
'Additional error']);
105 $this->qtyValidator->expects($this->once())->method(
'validate')
106 ->willReturn($validatorResult);
108 $this->validationResultFactory->expects($this->once())
110 ->with([
'errors' => [
'Qty can not negative',
'Additional error']])
111 ->willReturn($validatorResult);
113 $this->validatorChain = (
new ObjectManager($this))->getObject(
114 ValidatorChain::class,
116 'validationResultFactory' => $this->validationResultFactory,
117 'validators' => [$this->qtyValidator]
121 $result = $this->validatorChain->validate([-1], 1);
122 $this->assertEquals($validatorResult,
$result);
testValidateWithOutErros()
testValidateWithOutValidators()