Files
shlink/module/Core/test/Functions/FunctionsTest.php
T

49 lines
1.5 KiB
PHP
Raw Normal View History

2023-01-03 13:45:39 +01:00
<?php
declare(strict_types=1);
namespace ShlinkioTest\Shlink\Core\Functions;
2023-01-14 15:19:47 +01:00
use BackedEnum;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\Attributes\Test;
2023-01-03 13:45:39 +01:00
use PHPUnit\Framework\TestCase;
use Shlinkio\Shlink\Core\Config\EnvVars;
use Shlinkio\Shlink\Core\Model\DeviceType;
use Shlinkio\Shlink\Core\ShortUrl\Model\OrderableField;
use Shlinkio\Shlink\Core\Visit\Model\VisitType;
2023-11-29 12:34:13 +01:00
use function array_map;
2023-01-03 13:45:39 +01:00
use function Shlinkio\Shlink\Core\enumValues;
class FunctionsTest extends TestCase
{
/**
2023-01-14 15:19:47 +01:00
* @param class-string<BackedEnum> $enum
2023-01-03 13:45:39 +01:00
*/
#[Test, DataProvider('provideEnums')]
2023-01-03 13:45:39 +01:00
public function enumValuesReturnsExpectedValueForEnum(string $enum, array $expectedValues): void
{
self::assertEquals($expectedValues, enumValues($enum));
}
2023-02-09 09:32:38 +01:00
public static function provideEnums(): iterable
2023-01-03 13:45:39 +01:00
{
2023-11-29 12:34:13 +01:00
yield EnvVars::class => [
EnvVars::class,
array_map(static fn (EnvVars $envVar) => $envVar->value, EnvVars::cases()),
];
2023-01-03 13:45:39 +01:00
yield VisitType::class => [
VisitType::class,
2023-11-29 12:34:13 +01:00
array_map(static fn (VisitType $envVar) => $envVar->value, VisitType::cases()),
2023-01-03 13:45:39 +01:00
];
yield DeviceType::class => [
DeviceType::class,
2023-11-29 12:34:13 +01:00
array_map(static fn (DeviceType $envVar) => $envVar->value, DeviceType::cases()),
2023-01-03 13:45:39 +01:00
];
yield OrderableField::class => [
OrderableField::class,
2023-11-29 12:34:13 +01:00
array_map(static fn (OrderableField $envVar) => $envVar->value, OrderableField::cases()),
2023-01-03 13:45:39 +01:00
];
}
}