Changeset View
Changeset View
Standalone View
Standalone View
src/object/__tests__/PhutilEnumTestCase.php
- This file was added.
| <?php | |||||
| final class PhutilEnumTestCase extends PhutilTestCase { | |||||
| public function testCallStatic() { | |||||
| $enum = PhutilTestEnum::ONE(); | |||||
| $this->assertEqual('one', (string)$enum); | |||||
| $enum = PhutilTestEnum::TWO(); | |||||
| $this->assertEqual('two', (string)$enum); | |||||
| $caught = null; | |||||
| try { | |||||
| PhutilTestEnum::THREE(); | |||||
| } catch (BadMethodCallException $ex) { | |||||
| $caught = $ex; | |||||
| } | |||||
| $this->assertTrue($caught instanceof BadMethodCallException); | |||||
| } | |||||
| public function testSingleton() { | |||||
| $this->assertEqual( | |||||
| PhutilTestEnum::ONE(), | |||||
| PhutilTestEnum::ONE()); | |||||
| } | |||||
| public function testGetKey() { | |||||
| $this->assertEqual('ONE', PhutilTestEnum::ONE()->getKey()); | |||||
| } | |||||
| public function testGetValue() { | |||||
| $this->assertEqual('one', PhutilTestEnum::ONE()->getValue()); | |||||
| } | |||||
| public function testKeys() { | |||||
| $keys = array('ONE', 'TWO'); | |||||
| $this->assertEqual($keys, PhutilTestEnum::keys()); | |||||
| } | |||||
| public function testValues() { | |||||
| $values = array( | |||||
| 'ONE' => PhutilTestEnum::ONE(), | |||||
| 'TWO' => PhutilTestEnum::TWO(), | |||||
| ); | |||||
| $this->assertEqual($values, PhutilTestEnum::values()); | |||||
| } | |||||
| public function testToArray() { | |||||
| $array = array('ONE' => 'one', 'TWO' => 'two'); | |||||
| $this->assertEqual($array, PhutilTestEnum::toArray()); | |||||
| } | |||||
| public function testInvalidImplementation() { | |||||
| $caught = null; | |||||
| try { | |||||
| PhutilInvalidTestEnum::ONE(); | |||||
| } catch (Exception $ex) { | |||||
| $caught = $ex; | |||||
| } | |||||
| $this->assertTrue( | |||||
| $caught instanceof PhutilInvalidEnumImplementationException); | |||||
| } | |||||
| } | |||||