PluginProbe
Packeta / 2.1
Packeta v2.1
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
← All changes | tests/Module/WidgetOptionsBuilderTest.php +98 -5 trunk2.1 View file →
@@ -11,8 +11,9 @@
11 11 use Packetery\Core\PickupPointProvider\VendorCollectionFactory;
12 12 use Packetery\Module\Carrier\OptionPrefixer;
13 13 use Packetery\Module\Carrier\PacketaPickupPointsConfig;
14 14 use Packetery\Module\Framework\WpAdapter;
15 +use Packetery\Module\Options\FlagManager\FeatureFlagProvider;
15 16 use Packetery\Module\WidgetOptionsBuilder;
16 17 use PHPUnit\Framework\TestCase;
17 18 use Tests\Core\DummyFactory;
18 19
@@ -24,8 +25,9 @@
24 25 return [
25 26 [
26 27 'order' => new Order( 'dummyNumber123', DummyFactory::createCarrierZpointcz() ),
27 28 'expectedCountry' => 'cz',
29 + 'splitActive' => true,
28 30 'adultContent' => true,
29 31 'existingKeys' => [ 'language', 'appIdentity', 'weight', 'livePickupPoint', 'vendors' ],
30 32 'existingVendorKeys' => [ 'selected', 'country', 'group' ],
31 33 'vendorsSize' => 2,
@@ -33,8 +35,9 @@
33 35 ],
34 36 [
35 37 'order' => new Order( 'dummyNumber123', DummyFactory::createCarrierZpointcz() ),
36 38 'expectedCountry' => 'cz',
39 + 'splitActive' => true,
37 40 'adultContent' => false,
38 41 'existingKeys' => [ 'language', 'appIdentity', 'weight', 'vendors' ],
39 42 'existingVendorKeys' => [ 'selected', 'country', 'group' ],
40 43 'vendorsSize' => 2,
@@ -42,8 +45,9 @@
42 45 ],
43 46 [
44 47 'order' => new Order( 'dummyNumber123', DummyFactory::createCarrierCzechHdRequiresSize() ),
45 48 'expectedCountry' => 'cz',
49 + 'splitActive' => true,
46 50 'adultContent' => false,
47 51 'existingKeys' => [ 'language', 'appIdentity', 'weight', 'vendors' ],
48 52 'existingVendorKeys' => [ 'selected', 'carrierId' ],
49 53 'vendorsSize' => 1,
@@ -51,8 +55,9 @@
51 55 ],
52 56 [
53 57 'order' => new Order( 'dummyNumber123', DummyFactory::createCarrierGermanHd() ),
54 58 'expectedCountry' => 'de',
59 + 'splitActive' => true,
55 60 'adultContent' => false,
56 61 'existingKeys' => [ 'language', 'appIdentity', 'weight', 'vendors' ],
57 62 'existingVendorKeys' => [ 'selected', 'carrierId' ],
58 63 'vendorsSize' => 1,
@@ -60,8 +65,9 @@
60 65 ],
61 66 [
62 67 'order' => new Order( 'dummyNumber123', DummyFactory::createCarrierGermanHd() ),
63 68 'expectedCountry' => 'de',
69 + 'splitActive' => true,
64 70 'adultContent' => true,
65 71 'existingKeys' => [ 'language', 'appIdentity', 'weight', 'vendors', 'livePickupPoint' ],
66 72 'existingVendorKeys' => [ 'selected', 'carrierId' ],
67 73 'vendorsSize' => 1,
@@ -66,8 +72,52 @@
66 72 'existingVendorKeys' => [ 'selected', 'carrierId' ],
67 73 'vendorsSize' => 1,
68 74 'notExistingKeys' => [ 'carriers' ],
69 75 ],
76 + [
77 + 'order' => new Order( 'dummyNumber123', DummyFactory::createCarrierZpointcz() ),
78 + 'expectedCountry' => 'cz',
79 + 'splitActive' => false,
80 + 'adultContent' => true,
81 + 'existingKeys' => [ 'language', 'appIdentity', 'weight', 'carriers', 'livePickupPoint' ],
82 + 'existingVendorKeys' => [],
83 + 'vendorsSize' => 0,
84 + 'notExistingKeys' => [ 'vendors' ],
85 + 'carriersValueValidator' => 'is_string',
86 + ],
87 + [
88 + 'order' => new Order( 'dummyNumber123', DummyFactory::createCarrierZpointcz() ),
89 + 'expectedCountry' => 'cz',
90 + 'splitActive' => false,
91 + 'adultContent' => false,
92 + 'existingKeys' => [ 'language', 'appIdentity', 'weight', 'carriers' ],
93 + 'existingVendorKeys' => [],
94 + 'vendorsSize' => 0,
95 + 'notExistingKeys' => [ 'vendors', 'livePickupPoint' ],
96 + 'carriersValueValidator' => 'is_string',
97 + ],
98 + [
99 + 'order' => new Order( 'dummyNumber123', DummyFactory::createCarrierGermanPp() ),
100 + 'expectedCountry' => 'de',
101 + 'splitActive' => false,
102 + 'adultContent' => false,
103 + 'existingKeys' => [ 'language', 'appIdentity', 'weight', 'carriers' ],
104 + 'existingVendorKeys' => [],
105 + 'vendorsSize' => 0,
106 + 'notExistingKeys' => [ 'vendors', 'livePickupPoint' ],
107 + 'carriersValueValidator' => 'is_numeric',
108 + ],
109 + [
110 + 'order' => new Order( 'dummyNumber123', DummyFactory::createCarrierCzechHdRequiresSize() ),
111 + 'expectedCountry' => 'cz',
112 + 'splitActive' => false,
113 + 'adultContent' => false,
114 + 'existingKeys' => [ 'language', 'appIdentity', 'weight', 'carriers' ],
115 + 'existingVendorKeys' => [],
116 + 'vendorsSize' => 0,
117 + 'notExistingKeys' => [ 'vendors', 'livePickupPoint' ],
118 + 'carriersValueValidator' => 'is_null',
119 + ],
70 120 ];
71 121 }
72 122
73 123 /**
@@ -75,8 +125,9 @@
75 125 */
76 126 public function testPickupPointForAdmin(
77 127 Order $order,
78 128 string $expectedCountry,
129 + bool $splitActive,
79 130 bool $adultContent,
80 131 array $existingKeys,
81 132 array $existingVendorKeys,
82 133 int $vendorsSize,
@@ -82,20 +133,27 @@
82 133 int $vendorsSize,
83 134 array $notExistingKeys,
84 135 ?string $carriersValueValidator = null
85 136 ): void {
86 - $wpAdapterMock = $this->createMock( WpAdapter::class );
137 + $wpAdapterMock = $this->createMock( WpAdapter::class );
138 + $featureFlagProviderMock = $this->createMock( FeatureFlagProvider::class );
87 139
88 140 $config = new PacketaPickupPointsConfig(
89 141 new CompoundCarrierCollectionFactory(),
90 - new VendorCollectionFactory()
142 + new VendorCollectionFactory(),
143 + $featureFlagProviderMock
91 144 );
92 145
93 146 $builder = new WidgetOptionsBuilder(
94 147 $config,
148 + $featureFlagProviderMock,
95 149 $wpAdapterMock
96 150 );
97 151
152 + $featureFlagProviderMock
153 + ->method( 'isSplitActive' )
154 + ->willReturn( $splitActive );
155 +
98 156 $order->setShippingCountry( $order->getCarrier()->getCountry() );
99 157 $order->setAdultContent( $adultContent );
100 158 $result = $builder->createPickupPointForAdmin( $order );
101 159
@@ -183,17 +241,20 @@
183 241 Address $address,
184 242 array $expectedKeys,
185 243 array $nonExistingKeys
186 244 ): void {
187 - $wpAdapterMock = $this->createMock( WpAdapter::class );
245 + $wpAdapterMock = $this->createMock( WpAdapter::class );
246 + $featureFlagProviderMock = $this->createMock( FeatureFlagProvider::class );
188 247
189 248 $config = new PacketaPickupPointsConfig(
190 249 new CompoundCarrierCollectionFactory(),
191 - new VendorCollectionFactory()
250 + new VendorCollectionFactory(),
251 + $featureFlagProviderMock
192 252 );
193 253
194 254 $builder = new WidgetOptionsBuilder(
195 255 $config,
256 + $featureFlagProviderMock,
196 257 $wpAdapterMock
197 258 );
198 259
199 260 $order->setDeliveryAddress( $address );
@@ -218,25 +279,49 @@
218 279
219 280 return [
220 281 [
221 282 'carrier' => DummyFactory::createCarrierCzechHdRequiresSize(),
283 + 'splitActive' => true,
222 284 'expectedKeys' => array_merge( $alwaysPresentKeys, [ 'address_validation' ] ),
223 285 'nonExistingKeys' => [ 'vendors', 'carriers' ],
224 286 'addressValidation' => 'optional',
225 287 ],
226 288 [
289 + 'carrier' => DummyFactory::createCarrierCzechHdRequiresSize(),
290 + 'splitActive' => false,
291 + 'expectedKeys' => array_merge( $alwaysPresentKeys, [ 'address_validation' ] ),
292 + 'nonExistingKeys' => [ 'vendors', 'carriers' ],
293 + 'addressValidation' => 'optional',
294 + ],
295 + [
227 296 'carrier' => DummyFactory::createCarrierGermanHd(),
297 + 'splitActive' => true,
228 298 'expectedKeys' => array_merge( $alwaysPresentKeys, [ 'address_validation' ] ),
229 299 'nonExistingKeys' => [ 'vendors', 'carriers' ],
230 300 'addressValidation' => 'none',
231 301 ],
232 302 [
303 + 'carrier' => DummyFactory::createCarrierGermanHd(),
304 + 'splitActive' => false,
305 + 'expectedKeys' => array_merge( $alwaysPresentKeys, [ 'address_validation' ] ),
306 + 'nonExistingKeys' => [ 'vendors', 'carriers' ],
307 + 'addressValidation' => 'none',
308 + ],
309 + [
233 310 'carrier' => DummyFactory::createCarrierZpointcz(),
311 + 'splitActive' => true,
234 312 'expectedKeys' => array_merge( $alwaysPresentKeys, [ 'vendors' ] ),
235 313 'nonExistingKeys' => [ 'address_validation', 'carriers' ],
236 314 ],
237 315 [
316 + 'carrier' => DummyFactory::createCarrierZpointcz(),
317 + 'splitActive' => false,
318 + 'expectedKeys' => array_merge( $alwaysPresentKeys, [ 'carriers' ] ),
319 + 'nonExistingKeys' => [ 'address_validation', 'vendors' ],
320 + ],
321 + [
238 322 'carrier' => DummyFactory::createCarrierCzzpoint(),
323 + 'splitActive' => true,
239 324 'expectedKeys' => array_merge( $alwaysPresentKeys, [ 'vendors' ] ),
240 325 'nonExistingKeys' => [ 'address_validation', 'carriers' ],
241 326 ],
242 327 ];
@@ -246,21 +331,25 @@
246 331 * @dataProvider getCarrierForCheckoutDataProvider
247 332 */
248 333 public function testGetCarrierForCheckout(
249 334 Carrier $carrier,
335 + bool $splitActive,
250 336 array $expectedKeys,
251 337 array $nonExistingKeys,
252 338 ?string $addressValidation = null
253 339 ): void {
254 - $wpAdapterMock = $this->createMock( WpAdapter::class );
340 + $wpAdapterMock = $this->createMock( WpAdapter::class );
341 + $featureFlagProviderMock = $this->createMock( FeatureFlagProvider::class );
255 342
256 343 $config = new PacketaPickupPointsConfig(
257 344 new CompoundCarrierCollectionFactory(),
258 345 new VendorCollectionFactory(),
346 + $featureFlagProviderMock
259 347 );
260 348
261 349 $builder = new WidgetOptionsBuilder(
262 350 $config,
351 + $featureFlagProviderMock,
263 352 $wpAdapterMock
264 353 );
265 354
266 355 $optionId = OptionPrefixer::getOptionId( $carrier->getId() );
@@ -270,8 +359,12 @@
270 359 [
271 360 'address_validation' => $addressValidation,
272 361 ]
273 362 );
363 +
364 + $featureFlagProviderMock
365 + ->method( 'isSplitActive' )
366 + ->willReturn( $splitActive );
274 367
275 368 $result = $builder->getCarrierForCheckout(
276 369 $carrier,
277 370 $optionId