* @license http://www.opensource.org/licenses/mit-license.html MIT License * @version 5.2 * @link https://git.timshomepage.net/timw4mail/HummingBirdAnimeClient */ namespace Aviat\Ion\Tests; /** * @internal */ final class EnumTest extends IonTestCase { public $enum; protected $expectedConstList = [ 'FOO' => 'bar', 'BAR' => 'foo', 'FOOBAR' => 'baz', ]; protected function setUp(): void { parent::setUp(); $this->enum = new TestEnum(); } public function testStaticGetConstList() { $actual = TestEnum::getConstList(); $this->assertSame($this->expectedConstList, $actual); } public function testGetConstList() { $actual = $this->enum->getConstList(); $this->assertSame($this->expectedConstList, $actual); } public static function dataIsValid() { return [ 'Valid' => [ 'value' => 'baz', 'expected' => TRUE, 'static' => FALSE, ], 'ValidStatic' => [ 'value' => 'baz', 'expected' => TRUE, 'static' => TRUE, ], 'Invalid' => [ 'value' => 'foobar', 'expected' => FALSE, 'static' => FALSE, ], 'InvalidStatic' => [ 'value' => 'foobar', 'expected' => FALSE, 'static' => TRUE, ], ]; } #[\PHPUnit\Framework\Attributes\DataProvider('dataIsValid')] public function testIsValid(mixed $value, mixed $expected, mixed $static) { $actual = ($static) ? TestEnum::isValid($value) : $this->enum->isValid($value); $this->assertSame($expected, $actual); } }