11<?php
22/**
3- * Copyright © Magento, Inc. All rights reserved.
4- * See COPYING.txt for license details .
3+ * Copyright 2024 Adobe
4+ * All Rights Reserved .
55 */
66declare (strict_types=1 );
77
@@ -31,17 +31,25 @@ protected function setUp(): void
3131 'US ' => [
3232 'pattern_1 ' => ['pattern ' => '^[0-9]{5}\-[0-9]{4}$ ' ],
3333 'pattern_2 ' => ['pattern ' => '^[0-9]{5}$ ' ]
34+ ],
35+ 'NL ' => [
36+ 'pattern_1 ' => ['pattern ' => '^[1-9][0-9]{3}\s?[a-zA-Z]{2}$ ' ],
37+ 'pattern_2 ' => ['pattern ' => '^[1-9][0-9]{3}$ ' ]
3438 ]
3539 ];
3640 $ this ->postcodesConfigMock ->expects ($ this ->once ())->method ('getPostCodes ' )->willReturn ($ postCodes );
3741 $ this ->model = new Validator ($ this ->postcodesConfigMock );
3842 }
3943
40- public function testValidatePositive ()
44+ /**
45+ * @param string $postCode
46+ * @param string $countryId
47+ * @return void
48+ * @dataProvider getCountryPostcodes
49+ */
50+ public function testValidatePositive (string $ postCode , string $ countryId ): void
4151 {
42- $ postcode = '12345-6789 ' ;
43- $ countryId = 'US ' ;
44- $ this ->assertTrue ($ this ->model ->validate ($ postcode , $ countryId ));
52+ $ this ->assertTrue ($ this ->model ->validate ($ postCode , $ countryId ));
4553 }
4654
4755 public function testValidateNegative ()
@@ -59,4 +67,25 @@ public function testValidateThrowExceptionIfCountryDoesNotExist()
5967 $ countryId = 'QQ ' ;
6068 $ this ->assertFalse ($ this ->model ->validate ($ postcode , $ countryId ));
6169 }
70+
71+ /**
72+ * @return \string[][]
73+ */
74+ public static function getCountryPostcodes (): array
75+ {
76+ return [
77+ [
78+ 'postCode ' => '12345-6789 ' ,
79+ 'countryId ' => 'US '
80+ ],
81+ [
82+ 'postCode ' => '1234 ' ,
83+ 'countryId ' => 'NL '
84+ ],
85+ [
86+ 'postCode ' => '1234AB ' ,
87+ 'countryId ' => 'NL '
88+ ]
89+ ];
90+ }
6291}
0 commit comments