Skip to content

Commit b2c4ddc

Browse files
committed
#767: Improve test coverage
1 parent a1e3738 commit b2c4ddc

File tree

3 files changed

+38
-2
lines changed

3 files changed

+38
-2
lines changed

src/DetectChanges/BCBreak/EnumBased/CasesChanged.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313

1414
use function array_filter;
1515
use function array_map;
16-
use function array_values;
1716

1817
class CasesChanged implements EnumBased
1918
{
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace RoaveTest\BackwardCompatibility\DetectChanges\BCBreak\EnumBased;
6+
7+
enum DummyEnum
8+
{
9+
case someCase;
10+
}

test/unit/DetectChanges/BCBreak/EnumBased/EnumCaseAddedTest.php renamed to test/unit/DetectChanges/BCBreak/EnumBased/EnumCasesChangedTest.php

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,13 @@
1111
use Roave\BetterReflection\Reflection\ReflectionClass;
1212
use Roave\BetterReflection\Reflector\DefaultReflector;
1313
use Roave\BetterReflection\SourceLocator\Type\SingleFileSourceLocator;
14+
use stdClass;
1415

1516
use function array_map;
1617
use function iterator_to_array;
1718

1819
/** @covers \Roave\BackwardCompatibility\DetectChanges\BCBreak\EnumBased\CasesChanged */
19-
final class EnumCaseAddedTest extends TestCase
20+
final class EnumCasesChangedTest extends TestCase
2021
{
2122
/**
2223
* @param string[] $expectedMessages
@@ -38,6 +39,32 @@ public function testDiffs(
3839
);
3940
}
4041

42+
public function testReturnsNoChangesIfOldEnumIsNotEnum(): void
43+
{
44+
// EnumCasesChanged should not be called when the old symbol is not an Enum. If it does it will
45+
// just return an empty list.
46+
47+
$changes = (new CasesChanged())(
48+
ReflectionClass::createFromName(stdClass::class),
49+
ReflectionClass::createFromName(DummyEnum::class),
50+
);
51+
52+
$this->assertSame(0, $changes->count());
53+
}
54+
55+
public function testReturnsNoChangesIfNewEnumIsNotEnum(): void
56+
{
57+
// EnumCasesChanged should not be called when the old symbol is not an Enum. If it does it will
58+
// just return an empty list.
59+
60+
$changes = (new CasesChanged())(
61+
ReflectionClass::createFromName(DummyEnum::class),
62+
ReflectionClass::createFromName(stdClass::class),
63+
);
64+
65+
$this->assertSame(0, $changes->count());
66+
}
67+
4168
/**
4269
* @return array<string, array<int, ReflectionClass|array<int, string>>>
4370
* @psalm-return array<string, array{0: ReflectionClass, 1: ReflectionClass, 2: list<string>}>

0 commit comments

Comments
 (0)