From 3a1f58d84b32c01c277f8eb42782baa022c42ee4 Mon Sep 17 00:00:00 2001 From: Wilmer Arambula Date: Tue, 3 Feb 2026 20:31:39 -0300 Subject: [PATCH 1/3] feat(stub): Add enums for backed integer, backed string, and unit values in the `Stub` namespace. --- CHANGELOG.md | 1 + src/Stub/BackedInteger.php | 21 +++++++++++++++++++++ src/Stub/BackedString.php | 21 +++++++++++++++++++++ src/Stub/Unit.php | 21 +++++++++++++++++++++ 4 files changed, 64 insertions(+) create mode 100644 src/Stub/BackedInteger.php create mode 100644 src/Stub/BackedString.php create mode 100644 src/Stub/Unit.php diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f39710..b8fca8d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ - Enh #22: Add `php-forge/coding-standard` to development dependencies for code quality checks (@terabytesoftw) - Bug #23: Update Rector command in `composer.json` to remove unnecessary 'src' argument (@terabytesoftw) +- Enh #24: Add enums for backed integer, backed string, and unit values in the `Stub` namespace (@terabytesoftw) ## 0.3.1 January 20, 2026 diff --git a/src/Stub/BackedInteger.php b/src/Stub/BackedInteger.php new file mode 100644 index 0000000..80259b3 --- /dev/null +++ b/src/Stub/BackedInteger.php @@ -0,0 +1,21 @@ + Date: Tue, 3 Feb 2026 20:49:56 -0300 Subject: [PATCH 2/3] Raise code coverage 100%. --- tests/EnumDataProviderTest.php | 14 +++--- tests/Stub/TestBackedEnum.php | 19 -------- tests/Stub/TestEnum.php | 18 -------- tests/Stub/TestIntBackedEnum.php | 19 -------- .../Provider/EnumDataProviderProvider.php | 43 ++++++++++--------- 5 files changed, 27 insertions(+), 86 deletions(-) delete mode 100644 tests/Stub/TestBackedEnum.php delete mode 100644 tests/Stub/TestEnum.php delete mode 100644 tests/Stub/TestIntBackedEnum.php diff --git a/tests/EnumDataProviderTest.php b/tests/EnumDataProviderTest.php index 35425d4..6bcac27 100644 --- a/tests/EnumDataProviderTest.php +++ b/tests/EnumDataProviderTest.php @@ -5,7 +5,7 @@ namespace PHPForge\Support\Tests; use PHPForge\Support\EnumDataProvider; -use PHPForge\Support\Tests\Stub\TestEnum; +use PHPForge\Support\Stub\BackedInteger; use PHPForge\Support\Tests\Support\Provider\EnumDataProviderProvider; use PHPUnit\Framework\Attributes\{DataProviderExternal, Group}; use PHPUnit\Framework\TestCase; @@ -76,7 +76,7 @@ public function testCasesGenerateExpectedStructure( public function testTagCasesGenerateExpectedStructure(): void { - $data = EnumDataProvider::tagCases(TestEnum::class, 'element'); + $data = EnumDataProvider::tagCases(BackedInteger::class, 'element'); self::assertNotEmpty( $data, @@ -84,13 +84,9 @@ public function testTagCasesGenerateExpectedStructure(): void ); self::assertSame( [ - 'BAR element tag' => [ - TestEnum::BAR, - 'BAR', - ], - 'FOO element tag' => [ - TestEnum::FOO, - 'FOO', + '1 element tag' => [ + BackedInteger::VALUE, + 1 => '1', ], ], $data, diff --git a/tests/Stub/TestBackedEnum.php b/tests/Stub/TestBackedEnum.php deleted file mode 100644 index ef47685..0000000 --- a/tests/Stub/TestBackedEnum.php +++ /dev/null @@ -1,19 +0,0 @@ - + * @return array */ public static function casesParameters(): array { return [ - 'as enum instance' => [ - TestEnum::class, - 'data-test', - false, - 'enum: FOO', - ' data-test="FOO"', - "Should return the 'data-test' attribute value for enum case: FOO.", + 'enum backed integer instance' => [ + BackedInteger::class, + BackedInteger::VALUE, + true, + 'enum: 1', + ' 1="1"', + "Should return the '1' attribute value for enum case: 1.", ], - 'as html' => [ - TestEnum::class, + 'enum backed string instance' => [ + BackedString::class, 'data-test', true, - 'enum: BAR', - ' data-test="BAR"', - "Should return the 'data-test' attribute value for enum case: BAR.", + 'enum: value', + ' data-test="value"', + "Should return the 'data-test' attribute value for enum case: value.", ], - 'attribute as enum instance' => [ - TestEnum::class, - TestEnum::FOO, - true, - 'enum: FOO', - ' FOO="FOO"', - "Should return the 'FOO' attribute value for enum case: FOO.", + 'enum unit instance' => [ + Unit::class, + 'data-test', + false, + 'enum: value', + ' data-test="value"', + "Should return the 'data-test' attribute value for enum case: value.", ], ]; } From d641f3bc1d33378762c2cdc74db38c148e23b330 Mon Sep 17 00:00:00 2001 From: Wilmer Arambula Date: Tue, 3 Feb 2026 20:52:06 -0300 Subject: [PATCH 3/3] refactor(ReflectionHelper): remove private constructor to allow instantiation --- src/ReflectionHelper.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/ReflectionHelper.php b/src/ReflectionHelper.php index 96f326e..d6f1400 100644 --- a/src/ReflectionHelper.php +++ b/src/ReflectionHelper.php @@ -29,8 +29,6 @@ */ final class ReflectionHelper { - private function __construct() {} - /** * Retrieves a property value from a specified class context. *