Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
CompositeValidatorTest.php
Go to the documentation of this file.
1 <?php
7 
10 
11 class CompositeValidatorTest extends \PHPUnit\Framework\TestCase
12 {
16  private $model;
17 
21  private $validatorOneMock;
22 
26  private $validatorTwoMock;
27 
31  protected function setUp()
32  {
33  $this->validatorOneMock = $this->createMock(ValidatorInterface::class);
34  $this->validatorTwoMock = $this->createMock(ValidatorInterface::class);
35 
36  $this->model = new CompositeValidator([$this->validatorOneMock, $this->validatorTwoMock]);
37  }
38 
39  public function testValidate()
40  {
41  $expectedValidationData = include __DIR__ . '/../../_files/queue_publisher/data_to_validate.php';
42  $this->validatorOneMock->expects($this->once())->method('validate')->with($expectedValidationData);
43  $this->validatorTwoMock->expects($this->once())->method('validate')->with($expectedValidationData);
44  $this->model->validate($expectedValidationData);
45  }
46 
51  public function testValidatorThrowsException()
52  {
53  $expectedValidationData = include __DIR__ . '/../../_files/queue_publisher/data_to_validate.php';
54  $this->validatorOneMock
55  ->expects($this->once())
56  ->method('validate')
57  ->willThrowException(new \LogicException('test'));
58  $this->validatorTwoMock->expects($this->never())->method('validate');
59  $this->model->validate($expectedValidationData);
60  }
61 
62  public function testInvalidReaderInstance()
63  {
64  $this->expectException('\LogicException');
65  $this->expectExceptionMessage(
66  'Validator [stdClass] does not implements ' .
67  'Magento\Framework\MessageQueue\Publisher\Config\ValidatorInterface'
68  );
69  $validator = new \stdClass();
70  $model = new CompositeValidator([$validator]);
71  $expectedValidationData = include __DIR__ . '/../../_files/queue_publisher/data_to_validate.php';
72  $model->validate($expectedValidationData);
73  }
74 }
defined('TESTS_BP')||define('TESTS_BP' __DIR__
Definition: _bootstrap.php:60