File tree Expand file tree Collapse file tree 6 files changed +78
-6
lines changed
Expand file tree Collapse file tree 6 files changed +78
-6
lines changed Original file line number Diff line number Diff line change 1- .idea /
1+ .idea /
2+ vendor /
3+ composer.lock
4+ .phpunit.result.cache
Original file line number Diff line number Diff line change 11# PHP-ENUM
22
3+ php enum implement
4+
5+ require:
6+
7+ ```
8+ php >= 8.0
9+ ```
Original file line number Diff line number Diff line change 44 "type" : " library" ,
55 "license" : " Apache-2.0" ,
66 "require" : {
7- "php" : " ^8.0" ,
7+ "php" : " ^8.0" ,
88 "ext-reflection" : " *"
99 },
10+ "require-dev" : {
11+ "phpunit/phpunit" : " ~9.5.0"
12+ },
1013 "autoload" : {
1114 "psr-4" : {
1215 "LinkCloud\\ Enum\\ " : " src/"
13- },
14- "classmap" : [
15- " stubs/Stringable.php"
16- ]
16+ }
17+ },
18+ "autoload-dev" : {
19+ "psr-4" : {
20+ "LinkCloud\\ Enum\\ Tests\\ " : " tests/"
21+ }
1722 }
1823}
Original file line number Diff line number Diff line change 1+ <?xml version =" 1.0" ?>
2+ <phpunit >
3+ <testsuite name =" Test" >
4+ <directory >./tests</directory >
5+ </testsuite >
6+ <filter >
7+ <whitelist addUncoveredFilesFromWhitelist =" true" >
8+ <directory suffix =" Test.php" >./tests</directory >
9+ </whitelist >
10+ </filter >
11+ </phpunit >
Original file line number Diff line number Diff line change 1+ <?php
2+ namespace LinkCloud \Enum \Tests ;
3+
4+ use PHPUnit \Framework \TestCase ;
5+
6+ class EnumTest extends TestCase
7+ {
8+ public function testEnum ()
9+ {
10+ $ value = TestEnum::byValue (1 );
11+ self ::assertEquals (1 , $ value ->getValue ());
12+ self ::assertEquals ('INTEGER ' , $ value ->getName ());
13+ self ::assertEquals ('整数 ' , $ value ->getMessage ());
14+
15+ $ value = TestEnum::byName ('STRING ' );
16+ self ::assertEquals ('string ' , $ value ->getValue ());
17+ self ::assertEquals ('STRING ' , $ value ->getName ());
18+ self ::assertEquals ('字符串 ' , $ value ->getMessage ());
19+
20+ self ::assertTrue (TestEnum::hasValue ('string ' ));
21+ self ::assertTrue (TestEnum::hasName ('STRING ' ));
22+
23+ $ value = TestEnum::INTEGER ();
24+ self ::assertEquals (1 , $ value ->getValue ());
25+ self ::assertEquals ('INTEGER ' , $ value ->__toString ());
26+ self ::assertEquals ('整数 ' , $ value ->getMessage ());
27+ }
28+ }
Original file line number Diff line number Diff line change 1+ <?php
2+ namespace LinkCloud \Enum \Tests ;
3+
4+ use LinkCloud \Enum \AbstractEnum ;
5+ use LinkCloud \Enum \EnumMessage ;
6+
7+ /**
8+ * @method static TestEnum INTEGER()
9+ * @method static TestEnum STRING()
10+ */
11+ class TestEnum extends AbstractEnum
12+ {
13+ #[EnumMessage('整数 ' )]
14+ public const INTEGER = 1 ;
15+
16+ #[EnumMessage('字符串 ' )]
17+ public const STRING = 'string ' ;
18+ }
You can’t perform that action at this time.
0 commit comments