PluginProbe
Packeta / trunk
Packeta vtrunk
2.3.2 2.3.1 trunk 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3.0 1.3.1 1.3.2 1.4 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 All 56 releases
packeta / tests / Module / Order / DetailCommonLogicTest.php

DetailCommonLogicTest.php in Packeta trunk, at tests/Module/Order/DetailCommonLogicTest.php

216 lines 7.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare( strict_types=1 );
4
5 namespace Module\Order;
6
7 use Packetery\Core\Entity\PickupPoint;
8 use Packetery\Module\ContextResolver;
9 use Packetery\Module\Framework\WcAdapter;
10 use Packetery\Module\Options\OptionsProvider;
11 use Packetery\Module\Order\DetailCommonLogic;
12 use Packetery\Module\Order\Repository;
13 use Packetery\Nette\Http\Request;
14 use PHPUnit\Framework\MockObject\MockObject;
15 use PHPUnit\Framework\TestCase;
16 use Tests\Core\DummyFactory;
17
18 class DetailCommonLogicTest extends TestCase {
19
20 private WcAdapter|MockObject $wcAdapter;
21 private OptionsProvider|MockObject $optionsProvider;
22
23 public function createDetailCommonLogic(): DetailCommonLogic {
24 $this->wcAdapter = $this->createMock( WcAdapter::class );
25 $this->optionsProvider = $this->createMock( OptionsProvider::class );
26
27 return new DetailCommonLogic(
28 $this->createMock( ContextResolver::class ),
29 $this->createMock( Request::class ),
30 $this->createMock( Repository::class ),
31 $this->optionsProvider,
32 $this->wcAdapter,
33 );
34 }
35
36 public static function shouldDisplayPickupPointInfoProvider(): array {
37 return [
38 [
39 'expected' => true,
40 'replaceShippingAddressWithPickupPointAddress' => true,
41 'shipToBillingAddressOnly' => true,
42 ],
43 [
44 'expected' => false,
45 'replaceShippingAddressWithPickupPointAddress' => true,
46 'shipToBillingAddressOnly' => false,
47 ],
48 [
49 'expected' => true,
50 'replaceShippingAddressWithPickupPointAddress' => false,
51 'shipToBillingAddressOnly' => true,
52 ],
53 [
54 'expected' => true,
55 'replaceShippingAddressWithPickupPointAddress' => false,
56 'shipToBillingAddressOnly' => false,
57 ],
58 ];
59 }
60
61 /**
62 * @dataProvider shouldDisplayPickupPointInfoProvider
63 */
64 public function testShouldDisplayPickupPointInfo(
65 bool $expected,
66 bool $replaceShippingAddressWithPickupPointAddress,
67 bool $shipToBillingAddressOnly,
68 ): void {
69 $detailCommonLogic = $this->createDetailCommonLogic();
70 $this->optionsProvider->method( 'replaceShippingAddressWithPickupPointAddress' )->willReturn( $replaceShippingAddressWithPickupPointAddress );
71 $this->wcAdapter->method( 'shipToBillingAddressOnly' )->willReturn( $shipToBillingAddressOnly );
72
73 $this->assertSame( $expected, $detailCommonLogic->shouldDisplayPickupPointInfo() );
74 }
75
76 public static function shouldHidePacketaInfoProvider(): array {
77 return [
78 [
79 'expected' => true,
80 'replaceShippingAddressWithPickupPointAddress' => true,
81 'shipToBillingAddressOnly' => true,
82 'orderPickupPoint' => null,
83 'orderExported' => false,
84 ],
85 [
86 'expected' => true,
87 'replaceShippingAddressWithPickupPointAddress' => true,
88 'shipToBillingAddressOnly' => false,
89 'orderPickupPoint' => null,
90 'orderExported' => false,
91 ],
92 [
93 'expected' => true,
94 'replaceShippingAddressWithPickupPointAddress' => false,
95 'shipToBillingAddressOnly' => true,
96 'orderPickupPoint' => null,
97 'orderExported' => false,
98 ],
99 [
100 'expected' => true,
101 'replaceShippingAddressWithPickupPointAddress' => false,
102 'shipToBillingAddressOnly' => false,
103 'orderPickupPoint' => null,
104 'orderExported' => false,
105 ],
106 [
107 'expected' => false,
108 'replaceShippingAddressWithPickupPointAddress' => true,
109 'shipToBillingAddressOnly' => true,
110 'orderPickupPoint' => null,
111 'orderExported' => true,
112 ],
113 [
114 'expected' => false,
115 'replaceShippingAddressWithPickupPointAddress' => true,
116 'shipToBillingAddressOnly' => false,
117 'orderPickupPoint' => null,
118 'orderExported' => true,
119 ],
120 [
121 'expected' => false,
122 'replaceShippingAddressWithPickupPointAddress' => false,
123 'shipToBillingAddressOnly' => true,
124 'orderPickupPoint' => null,
125 'orderExported' => true,
126 ],
127 [
128 'expected' => false,
129 'replaceShippingAddressWithPickupPointAddress' => false,
130 'shipToBillingAddressOnly' => false,
131 'orderPickupPoint' => null,
132 'orderExported' => true,
133 ],
134 [
135 'expected' => false,
136 'replaceShippingAddressWithPickupPointAddress' => true,
137 'shipToBillingAddressOnly' => true,
138 'orderPickupPoint' => new PickupPoint(),
139 'orderExported' => false,
140 ],
141 [
142 'expected' => true,
143 'replaceShippingAddressWithPickupPointAddress' => true,
144 'shipToBillingAddressOnly' => false,
145 'orderPickupPoint' => new PickupPoint(),
146 'orderExported' => false,
147 ],
148 [
149 'expected' => false,
150 'replaceShippingAddressWithPickupPointAddress' => false,
151 'shipToBillingAddressOnly' => true,
152 'orderPickupPoint' => new PickupPoint(),
153 'orderExported' => false,
154 ],
155 [
156 'expected' => false,
157 'replaceShippingAddressWithPickupPointAddress' => false,
158 'shipToBillingAddressOnly' => false,
159 'orderPickupPoint' => new PickupPoint(),
160 'orderExported' => false,
161 ],
162 [
163 'expected' => false,
164 'replaceShippingAddressWithPickupPointAddress' => true,
165 'shipToBillingAddressOnly' => true,
166 'orderPickupPoint' => new PickupPoint(),
167 'orderExported' => true,
168 ],
169 [
170 'expected' => false,
171 'replaceShippingAddressWithPickupPointAddress' => true,
172 'shipToBillingAddressOnly' => false,
173 'orderPickupPoint' => new PickupPoint(),
174 'orderExported' => true,
175 ],
176 [
177 'expected' => false,
178 'replaceShippingAddressWithPickupPointAddress' => false,
179 'shipToBillingAddressOnly' => true,
180 'orderPickupPoint' => new PickupPoint(),
181 'orderExported' => true,
182 ],
183 [
184 'expected' => false,
185 'replaceShippingAddressWithPickupPointAddress' => false,
186 'shipToBillingAddressOnly' => false,
187 'orderPickupPoint' => new PickupPoint(),
188 'orderExported' => true,
189 ],
190
191 ];
192 }
193
194 /**
195 * @dataProvider shouldHidePacketaInfoProvider
196 */
197 public function testShouldHidePacketaInfo(
198 bool $expected,
199 bool $replaceShippingAddressWithPickupPointAddress,
200 bool $shipToBillingAddressOnly,
201 ?PickupPoint $orderPickupPoint,
202 bool $orderExported,
203 ): void {
204 $detailCommonLogic = $this->createDetailCommonLogic();
205 $this->optionsProvider->method( 'replaceShippingAddressWithPickupPointAddress' )->willReturn( $replaceShippingAddressWithPickupPointAddress );
206 $this->wcAdapter->method( 'shipToBillingAddressOnly' )->willReturn( $shipToBillingAddressOnly );
207
208 $dummyOrder = DummyFactory::createOrderCzPp();
209 if ( $orderPickupPoint !== null ) {
210 $dummyOrder->setPickupPoint( $orderPickupPoint );
211 }
212 $dummyOrder->setIsExported( $orderExported );
213 $this->assertSame( $expected, $detailCommonLogic->shouldHidePacketaInfo( $dummyOrder ) );
214 }
215 }
216