Skip to content

Commit 8f1b717

Browse files
committed
refactor
1 parent b4cebc8 commit 8f1b717

File tree

1 file changed

+53
-20
lines changed

1 file changed

+53
-20
lines changed

tests/Rules/PHPUnit/DataProviderDataRuleTest.php

Lines changed: 53 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use PHPStan\Testing\RuleTestCase;
1010
use PHPStan\Type\FileTypeMapper;
1111
use PHPUnit\Framework\Attributes\DataProvider;
12+
use PHPUnit\Framework\Attributes\TestWith;
1213
use const PHP_VERSION_ID;
1314

1415
/**
@@ -176,32 +177,64 @@ public function testRule(): void
176177
]);
177178
}
178179

179-
public function testRulePhp8(): void
180+
181+
/**
182+
* @dataProvider provideNamedArgumentVersions
183+
*/
184+
#[DataProvider('provideNamedArgumentVersions')]
185+
public function testRulePhp8(?int $phpunitVersion): void
180186
{
181187
if (PHP_VERSION_ID < 80000) {
182188
self::markTestSkipped();
183189
}
184190

185-
$this->phpunitVersion = 10;
191+
$this->phpunitVersion = $phpunitVersion;
186192

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);
205238
}
206239

207240

0 commit comments

Comments
 (0)