Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
RequiredFieldsTest.php
Go to the documentation of this file.
1 <?php
7 
9 
10 class RequiredFieldsTest extends \PHPUnit\Framework\TestCase
11 {
15  private $validator;
16 
20  protected function setUp()
21  {
22  $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
23  $this->validator = $objectManager->getObject(RequiredFieldsValidator::class);
24  }
25 
30  public function testValidateValid($configData)
31  {
32  $this->validator->validate($configData);
33  }
34 
38  public function validConfigDataProvider()
39  {
40  return [
41  'valid' => [
42  [
43  'consumer1' => [
44  'name' => 'consumer1',
45  'queue' => 'queue1',
46  'consumerInstance' => 'consumerClass1',
47  'handlers' => [['type' => 'handlerClassOne', 'method' => 'handlerMethodOne']],
48  'connection' => 'connection1',
49  'maxMessages' => '100',
50  ]
51  ]
52  ]
53  ];
54  }
55 
61  public function testValidateInvalid($configData, $expectedExceptionMessage)
62  {
63  $this->expectException('\LogicException');
64  $this->expectExceptionMessage($expectedExceptionMessage);
65  $this->validator->validate($configData);
66  }
67 
71  public function invalidConfigDataProvider()
72  {
73  return [
74  'missing name' => [
75  [
76  'consumer1' => [
77  'queue' => 'queue1',
78  'consumerInstance' => 'consumerClass1',
79  'handlers' => [['type' => 'handlerClassOne', 'method' => 'handlerMethodOne']],
80  'connection' => 'connection1',
81  'maxMessages' => '100',
82  ]
83  ],
84  "'name' field must be specified for consumer 'consumer1'"
85  ],
86  'missing queue' => [
87  [
88  'consumer1' => [
89  'name' => 'consumer1',
90  'consumerInstance' => 'consumerClass1',
91  'handlers' => [['type' => 'handlerClassOne', 'method' => 'handlerMethodOne']],
92  'connection' => 'connection1',
93  'maxMessages' => '100',
94  ]
95  ],
96  "'queue' field must be specified for consumer 'consumer1'"
97  ],
98  'missing consumerInstance' => [
99  [
100  'consumer1' => [
101  'name' => 'consumer1',
102  'queue' => 'queue1',
103  'handlers' => [['type' => 'handlerClassOne', 'method' => 'handlerMethodOne']],
104  'connection' => 'connection1',
105  'maxMessages' => '100',
106  ]
107  ],
108  "'consumerInstance' field must be specified for consumer 'consumer1'"
109  ],
110  'missing connection' => [
111  [
112  'consumer1' => [
113  'name' => 'consumer1',
114  'queue' => 'queue1',
115  'consumerInstance' => 'consumerClass1',
116  'handlers' => [['type' => 'handlerClassOne', 'method' => 'handlerMethodOne']],
117  'maxMessages' => '100',
118  ]
119  ],
120  "'connection' field must be specified for consumer 'consumer1'"
121  ],
122  'missing handlers' => [
123  [
124  'consumer1' => [
125  'name' => 'consumer1',
126  'queue' => 'queue1',
127  'consumerInstance' => 'consumerClass1',
128  'connection' => 'connection1',
129  'maxMessages' => '100',
130  ]
131  ],
132  "'handlers' field must be specified for consumer 'consumer1'"
133  ],
134  'missing maxMessages' => [
135  [
136  'consumer1' => [
137  'name' => 'consumer1',
138  'queue' => 'queue1',
139  'consumerInstance' => 'consumerClass1',
140  'handlers' => [['type' => 'handlerClassOne', 'method' => 'handlerMethodOne']],
141  'connection' => 'connection1',
142  ]
143  ],
144  "'maxMessages' field must be specified for consumer 'consumer1'"
145  ],
146  ];
147  }
148 }
$objectManager
Definition: bootstrap.php:17