Skip to content

Commit a03689e

Browse files
Dan LIDan LI
authored andcommitted
补充测试用例&readme
1 parent 3785fff commit a03689e

File tree

6 files changed

+78
-6
lines changed

6 files changed

+78
-6
lines changed

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
1-
.idea/
1+
.idea/
2+
vendor/
3+
composer.lock
4+
.phpunit.result.cache

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,9 @@
11
# PHP-ENUM
22

3+
php enum implement
4+
5+
require:
6+
7+
```
8+
php >= 8.0
9+
```

composer.json

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,20 @@
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
}

phpunit.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
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>

tests/EnumTest.php

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
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+
}

tests/TestEnum.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
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+
}

0 commit comments

Comments
 (0)