aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/vendor/dasprid/enum/test/AbstractEnumTest.php
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-01-09 10:55:03 +0100
committerCharles <sircharlesaze@gmail.com>2020-01-09 13:09:38 +0100
commit04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa (patch)
tree5c691241355c943a3c68ddb06b8cf8c60aa11319 /srcs/phpmyadmin/vendor/dasprid/enum/test/AbstractEnumTest.php
parent7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff)
downloadft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.gz
ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.bz2
ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.zip
phpmyadmin working
Diffstat (limited to 'srcs/phpmyadmin/vendor/dasprid/enum/test/AbstractEnumTest.php')
-rw-r--r--srcs/phpmyadmin/vendor/dasprid/enum/test/AbstractEnumTest.php121
1 files changed, 121 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/vendor/dasprid/enum/test/AbstractEnumTest.php b/srcs/phpmyadmin/vendor/dasprid/enum/test/AbstractEnumTest.php
new file mode 100644
index 0000000..ddba7d3
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/dasprid/enum/test/AbstractEnumTest.php
@@ -0,0 +1,121 @@
+<?php
+declare(strict_types = 1);
+
+namespace DASPRiD\EnumTest;
+
+use DASPRiD\Enum\AbstractEnum;
+use DASPRiD\Enum\Exception\CloneNotSupportedException;
+use DASPRiD\Enum\Exception\IllegalArgumentException;
+use DASPRiD\Enum\Exception\MismatchException;
+use DASPRiD\Enum\Exception\SerializeNotSupportedException;
+use DASPRiD\Enum\Exception\UnserializeNotSupportedException;
+use PHPUnit\Framework\TestCase;
+use ReflectionClass;
+
+final class AbstractEnumTest extends TestCase
+{
+ public function setUp()
+ {
+ $reflectionClass = new ReflectionClass(AbstractEnum::class);
+
+ $constantsProperty = $reflectionClass->getProperty('constants');
+ $constantsProperty->setAccessible(true);
+ $constantsProperty->setValue([]);
+
+ $valuesProperty = $reflectionClass->getProperty('values');
+ $valuesProperty->setAccessible(true);
+ $valuesProperty->setValue([]);
+
+ $allValuesLoadedProperty = $reflectionClass->getProperty('allValuesLoaded');
+ $allValuesLoadedProperty->setAccessible(true);
+ $allValuesLoadedProperty->setValue([]);
+ }
+
+ public function testToString() : void
+ {
+ $weekday = WeekDay::FRIDAY();
+ self::assertSame('FRIDAY', (string) $weekday);
+ }
+
+ public function testName() : void
+ {
+ $this->assertSame('WEDNESDAY', WeekDay::WEDNESDAY()->name());
+ }
+
+ public function testOrdinal() : void
+ {
+ $this->assertSame(2, WeekDay::WEDNESDAY()->ordinal());
+ }
+
+ public function testSameInstanceIsReturned() : void
+ {
+ self::assertSame(WeekDay::FRIDAY(), WeekDay::FRIDAY());
+ }
+
+ public static function testValueOf() : void
+ {
+ self::assertSame(WeekDay::FRIDAY(), WeekDay::valueOf('FRIDAY'));
+ }
+
+ public function testValueOfInvalidConstant() : void
+ {
+ $this->expectException(IllegalArgumentException::class);
+ WeekDay::valueOf('CATURDAY');
+ }
+
+ public function testExceptionOnCloneAttempt() : void
+ {
+ $this->expectException(CloneNotSupportedException::class);
+ clone WeekDay::FRIDAY();
+ }
+
+ public function testExceptionOnSerializeAttempt() : void
+ {
+ $this->expectException(SerializeNotSupportedException::class);
+ serialize(WeekDay::FRIDAY());
+ }
+
+ public function testExceptionOnUnserializeAttempt() : void
+ {
+ $this->expectException(UnserializeNotSupportedException::class);
+ unserialize('O:24:"DASPRiD\\EnumTest\\WeekDay":0:{}');
+ }
+
+ public function testReturnValueOfValuesIsSortedByOrdinal() : void
+ {
+ // Initialize some week days out of order
+ WeekDay::SATURDAY();
+ WeekDay::TUESDAY();
+
+ $ordinals = array_values(array_map(function (WeekDay $weekDay) : int {
+ return $weekDay->ordinal();
+ }, WeekDay::values()));
+
+ self::assertSame([0, 1, 2, 3, 4, 5, 6], $ordinals);
+
+ $cachedOrdinals = array_values(array_map(function (WeekDay $weekDay) : int {
+ return $weekDay->ordinal();
+ }, WeekDay::values()));
+ $this->assertSame($ordinals, $cachedOrdinals);
+ }
+
+ public function testCompareTo() : void
+ {
+ $this->assertSame(-4, WeekDay::WEDNESDAY()->compareTo(WeekDay::SUNDAY()));
+ $this->assertSame(4, WeekDay::SUNDAY()->compareTo(WeekDay::WEDNESDAY()));
+ $this->assertSame(0, WeekDay::WEDNESDAY()->compareTo(WeekDay::WEDNESDAY()));
+ }
+
+ public function testCompareToWrongEnum() : void
+ {
+ $this->expectException(MismatchException::class);
+ WeekDay::MONDAY()->compareTo(Planet::EARTH());
+ }
+
+ public function testParameterizedEnum() : void
+ {
+ $planet = Planet::EARTH();
+ $this->assertSame(5.976e+24, $planet->mass());
+ $this->assertSame(6.37814e6, $planet->radius());
+ }
+}