diff --git a/README.md b/README.md index d87b1fc..e5edd2f 100644 --- a/README.md +++ b/README.md @@ -41,10 +41,12 @@ to the require section of your `composer.json` file. ```php use yii2mod\enum\helpers\BaseEnum; -class BooleanEnum extends BaseEnum +class PostStatus extends BaseEnum { - const YES = 1; - const NO = 0; + const PENDING = 0; + const APPROVED = 1; + const REJECTED = 2; + const POSTPONED = 3; /** * @var string message category @@ -53,21 +55,26 @@ class BooleanEnum extends BaseEnum */ public static $messageCategory = 'app'; + /** + * @var array + */ public static $list = [ - self::YES => 'Yes', - self::NO => 'No' + self::PENDING => 'Pending', + self::APPROVED => 'Approved', + self::REJECTED => 'Rejected', + self::POSTPONED => 'Postponed', ]; } ``` ## Usage ```php -BooleanEnum::getConstantsByValue() // [1 => 'YES', 0 => 'NO'] -BooleanEnum::getConstantsByName() // ['YES' => 1, 'NO' => 0] -BooleanEnum::isValidName(1) // false -BooleanEnum::isValidName('YES') // true -BooleanEnum::isValidValue(1) // true -BooleanEnum::isValidValue('Yes') // false -BooleanEnum::listData() // [1 => 'Yes', 0 => 'No'] -BooleanEnum::getLabel(1) // Yes -BooleanEnum::getValueByName('Yes') // 1 +PostStatus::getConstantsByValue() // ['PENDING', 'APPROVED', 'REJECTED', 'POSTPONED'] +PostStatus::getConstantsByName() // ['PENDING' => 0, 'APPROVED' => 1, 'REJECTED' => 2, 'POSTPONED' => 3] +PostStatus::isValidName(1) // false +PostStatus::isValidName('APPROVED') // true +PostStatus::isValidValue(1) // true +PostStatus::isValidValue('Approved') // false +PostStatus::listData() // ['Pending', 'Approved', 'Rejected', 'Postponed'] +PostStatus::getLabel(1) // Approved +PostStatus::getValueByName('Approved') // 1 ``` diff --git a/tests/EnumTest.php b/tests/EnumTest.php index 887f275..b72266d 100644 --- a/tests/EnumTest.php +++ b/tests/EnumTest.php @@ -2,7 +2,7 @@ namespace yii2mod\enum\tests; -use yii2mod\enum\tests\data\BooleanEnum; +use yii2mod\enum\tests\data\PostStatus; /** * Class EnumTest @@ -13,27 +13,27 @@ class EnumTest extends TestCase { public function testEnumMethods() { - $this->assertEquals([1 => 'YES', 0 => 'NO'], BooleanEnum::getConstantsByValue()); - $this->assertEquals(['YES' => 1, 'NO' => 0], BooleanEnum::getConstantsByName()); - $this->assertEquals([1 => 'Yes', 0 => 'No'], BooleanEnum::listData()); - $this->assertEquals('Yes', BooleanEnum::getLabel(1)); - $this->assertEquals('1', BooleanEnum::getValueByName('Yes')); + $this->assertEquals(['PENDING', 'APPROVED', 'REJECTED', 'POSTPONED'], PostStatus::getConstantsByValue()); + $this->assertEquals(['PENDING' => 0, 'APPROVED' => 1, 'REJECTED' => 2, 'POSTPONED' => 3], PostStatus::getConstantsByName()); + $this->assertEquals(['Pending', 'Approved', 'Rejected', 'Postponed'], PostStatus::listData()); + $this->assertEquals('Pending', PostStatus::getLabel(PostStatus::PENDING)); + $this->assertEquals(1, PostStatus::getValueByName('Approved')); } public function testValidation() { - $this->assertFalse(BooleanEnum::isValidName(1)); - $this->assertTrue(BooleanEnum::isValidName('YES')); - $this->assertTrue(BooleanEnum::isValidValue(1)); - $this->assertFalse(BooleanEnum::isValidValue('YES')); + $this->assertFalse(PostStatus::isValidName(1)); + $this->assertTrue(PostStatus::isValidName('APPROVED')); + $this->assertTrue(PostStatus::isValidValue(1)); + $this->assertFalse(PostStatus::isValidValue('APPROVED')); } public function testCreateByName() { - $enum = BooleanEnum::createByName('YES'); + $enum = PostStatus::createByName('APPROVED'); - $this->assertEquals(BooleanEnum::YES, $enum->getValue()); - $this->assertTrue(array_key_exists($enum->getName(), BooleanEnum::getConstantsByName())); + $this->assertEquals(PostStatus::APPROVED, $enum->getValue()); + $this->assertTrue(array_key_exists($enum->getName(), PostStatus::getConstantsByName())); } /** @@ -41,15 +41,15 @@ public function testCreateByName() */ public function testFailedCreateByName() { - BooleanEnum::createByName('not existing name'); + PostStatus::createByName('not existing name'); } public function testCreateByValue() { - $enum = BooleanEnum::createByValue(BooleanEnum::YES); + $enum = PostStatus::createByValue(PostStatus::APPROVED); - $this->assertEquals(BooleanEnum::YES, $enum->getValue()); - $this->assertTrue(array_key_exists($enum->getName(), BooleanEnum::getConstantsByName())); + $this->assertEquals(PostStatus::APPROVED, $enum->getValue()); + $this->assertTrue(array_key_exists($enum->getName(), PostStatus::getConstantsByName())); } /** @@ -57,6 +57,6 @@ public function testCreateByValue() */ public function testFailedCreateByValue() { - BooleanEnum::createByValue('not existing value'); + PostStatus::createByValue('not existing value'); } } diff --git a/tests/data/BooleanEnum.php b/tests/data/BooleanEnum.php deleted file mode 100644 index e7c0578..0000000 --- a/tests/data/BooleanEnum.php +++ /dev/null @@ -1,28 +0,0 @@ - 'Yes', - self::NO => 'No', - ]; -} diff --git a/tests/data/PostStatus.php b/tests/data/PostStatus.php new file mode 100644 index 0000000..85ab855 --- /dev/null +++ b/tests/data/PostStatus.php @@ -0,0 +1,28 @@ + 'Pending', + self::APPROVED => 'Approved', + self::REJECTED => 'Rejected', + self::POSTPONED => 'Postponed', + ]; +}