|
7 | 7 |
|
8 | 8 | namespace Magento\Bundle\Test\Unit\Model\Sales\Order;
|
9 | 9 |
|
| 10 | +use Laminas\Uri\Http as HttpUri; |
10 | 11 | use Magento\Bundle\Model\Sales\Order\BundleOrderTypeValidator;
|
11 |
| -use Magento\Framework\Phrase; |
| 12 | +use Magento\Framework\Webapi\Request; |
12 | 13 | use Magento\Sales\Api\Data\OrderItemInterface;
|
13 | 14 | use Magento\Sales\Model\Order\Shipment;
|
14 | 15 | use PHPUnit\Framework\MockObject\MockObject;
|
|
17 | 18 |
|
18 | 19 | class BundleOrderTypeValidatorTest extends TestCase
|
19 | 20 | {
|
| 21 | + /** |
| 22 | + * @var Request|Request&MockObject|MockObject |
| 23 | + */ |
| 24 | + private Request $request; |
| 25 | + |
| 26 | + /** |
| 27 | + * @var BundleOrderTypeValidator |
| 28 | + */ |
| 29 | + private BundleOrderTypeValidator $validator; |
| 30 | + |
| 31 | + /** |
| 32 | + * @return void |
| 33 | + */ |
| 34 | + protected function setUp(): void |
| 35 | + { |
| 36 | + $this->request = $this->createMock(Request::class); |
| 37 | + $uri = $this->createMock(HttpUri::class); |
| 38 | + $uri->expects($this->any())->method('getPath')->willReturn('V1/shipment/'); |
| 39 | + $this->request->expects($this->any())->method('getUri')->willReturn($uri); |
| 40 | + |
| 41 | + $this->validator = new BundleOrderTypeValidator($this->request); |
| 42 | + |
| 43 | + parent::setUp(); |
| 44 | + } |
| 45 | + |
20 | 46 | /**
|
21 | 47 | * @return void
|
22 | 48 | */
|
@@ -56,9 +82,8 @@ public function testIsValidSuccess(): void
|
56 | 82 | $shipment->expects($this->once())->method('getOrder')->willReturn($order);
|
57 | 83 |
|
58 | 84 | try {
|
59 |
| - $validator = new BundleOrderTypeValidator(); |
60 |
| - $validator->isValid($shipment); |
61 |
| - $this->assertEmpty($validator->getMessages()); |
| 85 | + $this->validator->isValid($shipment); |
| 86 | + $this->assertEmpty($this->validator->getMessages()); |
62 | 87 | } catch (\Exception $e) {
|
63 | 88 | $this->fail('Could not perform shipment validation. ' . $e->getMessage());
|
64 | 89 | }
|
@@ -91,19 +116,11 @@ public function testIsValidFailSeparateShipmentType(): void
|
91 | 116 | $shipment->expects($this->once())->method('getOrder')->willReturn($order);
|
92 | 117 |
|
93 | 118 | try {
|
94 |
| - $validator = new BundleOrderTypeValidator(); |
95 |
| - $validator->isValid($shipment); |
96 |
| - $messages = $validator->getMessages(); |
| 119 | + $this->validator->isValid($shipment); |
| 120 | + $messages = $this->validator->getMessages(); |
97 | 121 | $this->assertNotEmpty($messages);
|
98 |
| - /** @var Phrase $validationMsg */ |
99 |
| - $validationMsg = current($messages)[0]; |
100 |
| - foreach ($validationMsg->getArguments() as $argument) { |
101 |
| - if (is_string($argument)) { |
102 |
| - $this->assertSame($argument, 'bundleSKU'); |
103 |
| - } else { |
104 |
| - $this->assertTrue(in_array($argument->getText(), ['Separately', 'Bundle product options'])); |
105 |
| - } |
106 |
| - } |
| 122 | + $this->assertStringContainsString("bundleSKU", current($messages)); |
| 123 | + $this->assertStringContainsString("Separately", current($messages)); |
107 | 124 | } catch (\Exception $e) {
|
108 | 125 | $this->fail('Could not perform shipment validation. ' . $e->getMessage());
|
109 | 126 | }
|
@@ -140,19 +157,11 @@ public function testIsValidFailTogetherShipmentType(): void
|
140 | 157 | $shipment->expects($this->once())->method('getOrder')->willReturn($order);
|
141 | 158 |
|
142 | 159 | try {
|
143 |
| - $validator = new BundleOrderTypeValidator(); |
144 |
| - $validator->isValid($shipment); |
145 |
| - $messages = $validator->getMessages(); |
| 160 | + $this->validator->isValid($shipment); |
| 161 | + $messages = $this->validator->getMessages(); |
146 | 162 | $this->assertNotEmpty($messages);
|
147 |
| - /** @var Phrase $validationMsg */ |
148 |
| - $validationMsg = current($messages)[0]; |
149 |
| - foreach ($validationMsg->getArguments() as $argument) { |
150 |
| - if (is_string($argument)) { |
151 |
| - $this->assertSame($argument, 'bundleSKU'); |
152 |
| - } else { |
153 |
| - $this->assertTrue(in_array($argument->getText(), ['Together', 'Bundle product itself'])); |
154 |
| - } |
155 |
| - } |
| 163 | + $this->assertStringContainsString("bundleSKU", current($messages)); |
| 164 | + $this->assertStringContainsString("Together", current($messages)); |
156 | 165 | } catch (\Exception $e) {
|
157 | 166 | $this->fail('Could not perform shipment validation. ' . $e->getMessage());
|
158 | 167 | }
|
|
0 commit comments