Skip to content

Commit aad4988

Browse files
committed
deduplicate test methods using data provider
1 parent a5ce432 commit aad4988

File tree

1 file changed

+44
-35
lines changed

1 file changed

+44
-35
lines changed

tests/RobotLoaderClassFinderTest.php

Lines changed: 44 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -4,54 +4,63 @@
44

55
namespace Consistence\ClassFinder\RobotLoader;
66

7+
use Generator;
78
use Nette\Loaders\RobotLoader;
89
use PHPUnit\Framework\Assert;
910

1011
class RobotLoaderClassFinderTest extends \PHPUnit\Framework\TestCase
1112
{
1213

13-
public function testFindClass(): void
14+
/**
15+
* @return mixed[][]|\Generator
16+
*/
17+
public function findByInterfaceDataProvider(): Generator
1418
{
15-
$classList = array_values($this->getRobotLoaderClassFinder()->findByInterface(ExtendingClass::class));
16-
17-
Assert::assertContains(ExtendingClass::class, $classList);
18-
Assert::assertCount(1, $classList);
19-
}
20-
21-
public function testFindClassAndChildren(): void
22-
{
23-
$classList = array_values($this->getRobotLoaderClassFinder()->findByInterface(BaseClass::class));
24-
sort($classList);
25-
26-
$expected = [
27-
BaseClass::class,
28-
ExtendingClass::class,
19+
yield 'class' => [
20+
'interfaceName' => ExtendingClass::class,
21+
'expectedClassList' => [
22+
ExtendingClass::class,
23+
],
24+
];
25+
yield 'class and children' => [
26+
'interfaceName' => BaseClass::class,
27+
'expectedClassList' => [
28+
BaseClass::class,
29+
ExtendingClass::class,
30+
],
31+
];
32+
yield 'not implemented interface' => [
33+
'interfaceName' => NotImplementedInterface::class,
34+
'expectedClassList' => [
35+
NotImplementedInterface::class,
36+
],
37+
];
38+
yield 'interface and implementations' => [
39+
'interfaceName' => BaseInterface::class,
40+
'expectedClassList' => [
41+
BaseClass::class,
42+
BaseInterface::class,
43+
ExtendingClass::class,
44+
ExtendingInterface::class,
45+
],
2946
];
30-
31-
Assert::assertEquals($expected, $classList);
32-
}
33-
34-
public function testFindInterface(): void
35-
{
36-
$classList = array_values($this->getRobotLoaderClassFinder()->findByInterface(NotImplementedInterface::class));
37-
38-
Assert::assertContains(NotImplementedInterface::class, $classList);
39-
Assert::assertCount(1, $classList);
4047
}
4148

42-
public function testFindInterfaceAndImplementations(): void
49+
/**
50+
* @dataProvider findByInterfaceDataProvider
51+
*
52+
* @param string $interfaceName
53+
* @param string[] $expectedClassList
54+
*/
55+
public function testFindByInterface(
56+
string $interfaceName,
57+
array $expectedClassList
58+
): void
4359
{
44-
$classList = array_values($this->getRobotLoaderClassFinder()->findByInterface(BaseInterface::class));
60+
$classList = array_values($this->getRobotLoaderClassFinder()->findByInterface($interfaceName));
4561
sort($classList);
4662

47-
$expected = [
48-
BaseClass::class,
49-
BaseInterface::class,
50-
ExtendingClass::class,
51-
ExtendingInterface::class,
52-
];
53-
54-
Assert::assertEquals($expected, $classList);
63+
Assert::assertEquals($expectedClassList, $classList);
5564
}
5665

5766
private function getRobotLoaderClassFinder(): RobotLoaderClassFinder

0 commit comments

Comments
 (0)