44
55namespace AlisQI \TwigQI \Tests ;
66
7- use ArrayIterator ;
8- use DateTime ;
9- use Exception ;
7+ use AlisQI \TwigQI \Assertion \WrapTypesInAssertedTypes ;
8+ use AlisQI \TwigQI \Extension ;
109use PHPUnit \Framework \Attributes \DataProvider ;
10+ use Twig \Extension \ExtensionInterface ;
1111use Twig \Markup ;
1212use Twig \Node \Node ;
1313
1414class TypeAssertionsTest extends AbstractTestCase
1515{
16+ protected function createUniqueExtensionClass (): ExtensionInterface
17+ {
18+ return new class ([
19+ new WrapTypesInAssertedTypes ()
20+ ]) extends Extension {};
21+ }
22+
1623 public static function getOptionalVariables (): array
1724 {
1825 return [
@@ -78,12 +85,12 @@ public static function getTypes(): array
7885 ['string ' , '' , true ],
7986 ['string ' , '0 ' , true ],
8087 ['string ' , new Markup ('hello ' , 'UTF-8 ' ), true ], // class Markup implements \Stringable
81- ['string ' , new Exception (), true ], // Exception has __toString()
88+ ['string ' , new \ Exception (), true ], // Exception has __toString()
8289
8390 ['string ' , true , false ],
8491 ['string ' , 1 , false ],
8592 ['string ' , [], false ],
86- ['string ' , new DateTime (), false ],
93+ ['string ' , new \ DateTime (), false ],
8794
8895 ['number ' , 0 , true ],
8996 ['number ' , 1 , true ],
@@ -93,7 +100,7 @@ public static function getTypes(): array
93100 ['number ' , '' , false ],
94101 ['number ' , '0 ' , false ],
95102 ['number ' , [], false ],
96- ['number ' , new Exception (), false ],
103+ ['number ' , new \ Exception (), false ],
97104
98105 ['boolean ' , true , true ],
99106 ['boolean ' , false , true ],
@@ -102,23 +109,23 @@ public static function getTypes(): array
102109 ['boolean ' , 'true ' , false ],
103110 ['boolean ' , '0 ' , false ],
104111 ['boolean ' , [], false ],
105- ['boolean ' , new Exception (), false ],
112+ ['boolean ' , new \ Exception (), false ],
106113
107- ['object ' , new Exception (), true ],
114+ ['object ' , new \ Exception (), true ],
108115
109116 ['object ' , 'object ' , false ],
110117 ['object ' , true , false ],
111118 ['object ' , [], false ],
112119
113120 ['iterable ' , [], true ],
114121 ['iterable ' , [13 , 37 ], true ],
115- ['iterable ' , new ArrayIterator ([13 , 37 ]), true ],
122+ ['iterable ' , new \ ArrayIterator ([13 , 37 ]), true ],
116123 ['iterable ' , ['foo ' => 'bar ' ], true ],
117124 ['iterable ' , 'hello ' , false ],
118125
119126 ['iterable<string> ' , [], true ],
120127 ['iterable<string> ' , ['hello ' ], true ],
121- ['iterable<string> ' , new ArrayIterator (['hello ' ]), true ],
128+ ['iterable<string> ' , new \ ArrayIterator (['hello ' ]), true ],
122129 ['iterable<string> ' , [1337 ], false ],
123130 ['iterable<string> ' , 'hello ' , false ],
124131
@@ -129,15 +136,15 @@ public static function getTypes(): array
129136
130137 ['iterable<string, string> ' , [], true ],
131138 ['iterable<string, string> ' , ['foo ' => 'bar ' ], true ],
132- ['iterable<string, string> ' , new ArrayIterator (['foo ' => 'bar ' ]), true ],
139+ ['iterable<string, string> ' , new \ ArrayIterator (['foo ' => 'bar ' ]), true ],
133140 ['iterable<string, string> ' , ['foo ' => 1337 ], false ],
134141 ['iterable<string, string> ' , ['foo ' => ['bar ' ]], false ],
135142 ['iterable<string, string> ' , [13 , 37 ], false ],
136143
137144 ['iterable<number, number> ' , [], true ],
138145 ['iterable<number, number> ' , [13 , 37 ], true ],
139146 ['iterable<number, number> ' , [13 => 37 ], true ],
140- ['iterable<number, number> ' , new ArrayIterator ([13 => 37 ]), true ],
147+ ['iterable<number, number> ' , new \ ArrayIterator ([13 => 37 ]), true ],
141148 ['iterable<number, number> ' , ['13 ' => 37 ], true ],
142149 ['iterable<number, number> ' , ['leet ' => 1337 ], false ],
143150
@@ -150,11 +157,11 @@ public static function getTypes(): array
150157 ['iterable<iterable<iterable<string, number>>> ' , [[[13 , 37 ]]], false ],
151158 ['iterable<iterable<iterable<string, number>>> ' , [[['foo ' => 'bar ' ]]], false ],
152159
153- ['\\\\Exception ' , new Exception (), true ],
160+ ['\\\\Exception ' , new \ Exception (), true ],
154161 ['\\\\Exception ' , new Node (), false ],
155162 ['iterable<string, \\\\Twig \\\\Node \\\\Node> ' , ['node ' => new Node ()], true ],
156163 ['iterable<string, \\\\Twig \\\\Node \\\\Node[]> ' , ['nodes ' => [new Node (), new Node ()]], true ],
157- ['iterable<string, \\\\Twig \\\\Node \\\\Node> ' , ['node ' => new Exception ()], false ],
164+ ['iterable<string, \\\\Twig \\\\Node \\\\Node> ' , ['node ' => new \ Exception ()], false ],
158165
159166 ['\\\\Traversable ' , new Node (), true ],
160167 ['\\\\Traversable ' , true , false ],
0 commit comments