|
9 | 9 | use PHPStan\Testing\RuleTestCase; |
10 | 10 | use PHPStan\Type\FileTypeMapper; |
11 | 11 | use PHPUnit\Framework\Attributes\DataProvider; |
| 12 | +use PHPUnit\Framework\Attributes\TestWith; |
12 | 13 | use const PHP_VERSION_ID; |
13 | 14 |
|
14 | 15 | /** |
@@ -176,32 +177,64 @@ public function testRule(): void |
176 | 177 | ]); |
177 | 178 | } |
178 | 179 |
|
179 | | - public function testRulePhp8(): void |
| 180 | + |
| 181 | + /** |
| 182 | + * @dataProvider provideNamedArgumentVersions |
| 183 | + */ |
| 184 | + #[DataProvider('provideNamedArgumentVersions')] |
| 185 | + public function testRulePhp8(?int $phpunitVersion): void |
180 | 186 | { |
181 | 187 | if (PHP_VERSION_ID < 80000) { |
182 | 188 | self::markTestSkipped(); |
183 | 189 | } |
184 | 190 |
|
185 | | - $this->phpunitVersion = 10; |
| 191 | + $this->phpunitVersion = $phpunitVersion; |
186 | 192 |
|
187 | | - $this->analyse([__DIR__ . '/data/data-provider-data-named.php'], [ |
188 | | - [ |
189 | | - 'Parameter #1 $expectedResult of method DataProviderDataTestPhp8\NamedArgsInProvider::testFoo() expects string, int given.', |
190 | | - 44 |
191 | | - ], |
192 | | - [ |
193 | | - 'Parameter #1 $expectedResult of method DataProviderDataTestPhp8\NamedArgsInProvider::testFoo() expects string, false given.', |
194 | | - 44 |
195 | | - ], |
196 | | - [ |
197 | | - 'Parameter #1 $si of method DataProviderDataTestPhp8\TestWrongOffsetNameArrayShapeIterable::testBar() expects int, string given.', |
198 | | - 58 |
199 | | - ], |
200 | | - [ |
201 | | - 'Parameter #1 $si of method DataProviderDataTestPhp8\TestWrongTypeInArrayShapeIterable::testBar() expects int, string given.', |
202 | | - 79 |
203 | | - ], |
204 | | - ]); |
| 193 | + if ($phpunitVersion >= 11) { |
| 194 | + $errors = [ |
| 195 | + [ |
| 196 | + 'Parameter $input of method DataProviderDataTestPhp8\NamedArgsInProvider::testFoo() expects string, int given.', |
| 197 | + 44 |
| 198 | + ], |
| 199 | + [ |
| 200 | + 'Parameter $input of method DataProviderDataTestPhp8\NamedArgsInProvider::testFoo() expects string, false given.', |
| 201 | + 44 |
| 202 | + ], |
| 203 | + [ |
| 204 | + 'Unknown parameter $wrong in call to method DataProviderDataTestPhp8\TestWrongOffsetNameArrayShapeIterable::testBar().', |
| 205 | + 58 |
| 206 | + ], |
| 207 | + [ |
| 208 | + 'Missing parameter $si (int) in call to method DataProviderDataTestPhp8\TestWrongOffsetNameArrayShapeIterable::testBar().', |
| 209 | + 58 |
| 210 | + ], |
| 211 | + [ |
| 212 | + 'Parameter $si of method DataProviderDataTestPhp8\TestWrongTypeInArrayShapeIterable::testBar() expects int, string given.', |
| 213 | + 79 |
| 214 | + ], |
| 215 | + ]; |
| 216 | + } else { |
| 217 | + $errors = [ |
| 218 | + [ |
| 219 | + 'Parameter #1 $expectedResult of method DataProviderDataTestPhp8\NamedArgsInProvider::testFoo() expects string, int given.', |
| 220 | + 44 |
| 221 | + ], |
| 222 | + [ |
| 223 | + 'Parameter #1 $expectedResult of method DataProviderDataTestPhp8\NamedArgsInProvider::testFoo() expects string, false given.', |
| 224 | + 44 |
| 225 | + ], |
| 226 | + [ |
| 227 | + 'Parameter #1 $si of method DataProviderDataTestPhp8\TestWrongOffsetNameArrayShapeIterable::testBar() expects int, string given.', |
| 228 | + 58 |
| 229 | + ], |
| 230 | + [ |
| 231 | + 'Parameter #1 $si of method DataProviderDataTestPhp8\TestWrongTypeInArrayShapeIterable::testBar() expects int, string given.', |
| 232 | + 79 |
| 233 | + ], |
| 234 | + ]; |
| 235 | + } |
| 236 | + |
| 237 | + $this->analyse([__DIR__ . '/data/data-provider-data-named.php'], $errors); |
205 | 238 | } |
206 | 239 |
|
207 | 240 |
|
|
0 commit comments