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); | |||||
} | |||||
} |