12
12
use Ibexa \Core \FieldType \Country \Value ;
13
13
use PHPUnit \Framework \TestCase ;
14
14
15
- class MultipleCountryValueTransformerTest extends TestCase
15
+ /**
16
+ * @phpstan-import-type TCountryValueData from \Ibexa\ContentForms\FieldType\DataTransformer\MultipleCountryValueTransformer
17
+ */
18
+ final class MultipleCountryValueTransformerTest extends TestCase
16
19
{
17
20
/**
18
- * @var array Array of countries from "ibexa.field_type.country.data"
21
+ * Array of countries from "ibexa.field_type.country.data".
22
+ *
23
+ * @phpstan-var array<string, TCountryValueData>
19
24
*/
20
- protected $ countriesInfo = [
25
+ protected array $ countriesInfo = [
21
26
'AF ' => ['Name ' => 'Afghanistan ' , 'Alpha2 ' => 'AF ' , 'Alpha3 ' => 'AFG ' , 'IDC ' => '93 ' ],
22
27
'AX ' => ['Name ' => 'Åland ' , 'Alpha2 ' => 'AX ' , 'Alpha3 ' => 'ALA ' , 'IDC ' => '358 ' ],
23
28
'AQ ' => ['Name ' => 'Antarctica ' , 'Alpha2 ' => 'AQ ' , 'Alpha3 ' => 'ATA ' , 'IDC ' => '672 ' ],
@@ -44,22 +49,31 @@ class MultipleCountryValueTransformerTest extends TestCase
44
49
'ZW ' => ['Name ' => 'Zimbabwe ' , 'Alpha2 ' => 'ZW ' , 'Alpha3 ' => 'ZWE ' , 'IDC ' => '263 ' ],
45
50
];
46
51
52
+ /**
53
+ * @phpstan-return list<array{array<string, TCountryValueData>}>
54
+ */
47
55
public function transformProvider (): array
48
56
{
49
57
return [
50
- [[
51
- 'BN ' => ['Name ' => 'Brunei Darussalam ' , 'Alpha2 ' => 'BN ' , 'Alpha3 ' => 'BRN ' , 'IDC ' => '673 ' ],
52
- ]],
53
- [[
54
- 'AX ' => ['Name ' => 'Åland ' , 'Alpha2 ' => 'AX ' , 'Alpha3 ' => 'ALA ' , 'IDC ' => '358 ' ],
55
- 'BL ' => ['Name ' => 'Saint Barthélemy ' , 'Alpha2 ' => 'BL ' , 'Alpha3 ' => 'BLM ' , 'IDC ' => '590 ' ],
56
- 'GS ' => ['Name ' => 'South Georgia and The South Sandwich Islands ' , 'Alpha2 ' => 'GS ' , 'Alpha3 ' => 'SGS ' , 'IDC ' => '500 ' ],
57
- ]],
58
+ [
59
+ [
60
+ 'BN ' => ['Name ' => 'Brunei Darussalam ' , 'Alpha2 ' => 'BN ' , 'Alpha3 ' => 'BRN ' , 'IDC ' => '673 ' ],
61
+ ],
62
+ ],
63
+ [
64
+ [
65
+ 'AX ' => ['Name ' => 'Åland ' , 'Alpha2 ' => 'AX ' , 'Alpha3 ' => 'ALA ' , 'IDC ' => '358 ' ],
66
+ 'BL ' => ['Name ' => 'Saint Barthélemy ' , 'Alpha2 ' => 'BL ' , 'Alpha3 ' => 'BLM ' , 'IDC ' => '590 ' ],
67
+ 'GS ' => ['Name ' => 'South Georgia and The South Sandwich Islands ' , 'Alpha2 ' => 'GS ' , 'Alpha3 ' => 'SGS ' , 'IDC ' => '500 ' ],
68
+ ],
69
+ ],
58
70
];
59
71
}
60
72
61
73
/**
62
74
* @dataProvider transformProvider
75
+ *
76
+ * @phpstan-param array<string, TCountryValueData> $valueAsArray
63
77
*/
64
78
public function testTransform (array $ valueAsArray ): void
65
79
{
@@ -70,6 +84,8 @@ public function testTransform(array $valueAsArray): void
70
84
71
85
/**
72
86
* @dataProvider transformProvider
87
+ *
88
+ * @phpstan-param array<string, TCountryValueData> $valueAsArray
73
89
*/
74
90
public function testReverseTransform (array $ valueAsArray ): void
75
91
{
@@ -78,6 +94,9 @@ public function testReverseTransform(array $valueAsArray): void
78
94
self ::assertEquals ($ expectedValue , $ transformer ->reverseTransform (array_keys ($ valueAsArray )));
79
95
}
80
96
97
+ /**
98
+ * @phpstan-return list<array{int|string|array<mixed>|null}>
99
+ */
81
100
public function transformNullProvider (): array
82
101
{
83
102
return [
@@ -91,12 +110,15 @@ public function transformNullProvider(): array
91
110
/**
92
111
* @dataProvider transformNullProvider
93
112
*/
94
- public function testTransformNull (int | string | array | null $ value ): void
113
+ public function testTransformNull (mixed $ value ): void
95
114
{
96
115
$ transformer = new MultipleCountryValueTransformer ($ this ->countriesInfo );
97
116
self ::assertNull ($ transformer ->transform ($ value ));
98
117
}
99
118
119
+ /**
120
+ * @phpstan-return list<array{mixed}>
121
+ */
100
122
public function reverseTransformNullProvider (): array
101
123
{
102
124
return [
0 commit comments