Files
tez-utils-str/tests/CaseConverterTest.php
2026-07-26 17:18:28 +02:00

145 lines
4.5 KiB
PHP

<?php
declare(strict_types=1);
namespace Tez\Utils\Tests\Str;
use PHPUnit\Framework\TestCase;
use Tez\Utils\Str\CaseConverter;
final class CaseConverterTest extends TestCase
{
// -------------------------------------------------------------------------
// toSnake
// -------------------------------------------------------------------------
public function testCamelToSnake(): void
{
self::assertSame('user_profile_name', CaseConverter::toSnake('userProfileName'));
}
public function testPascalToSnake(): void
{
self::assertSame('user_profile_name', CaseConverter::toSnake('UserProfileName'));
}
public function testKebabToSnake(): void
{
self::assertSame('user_profile_name', CaseConverter::toSnake('user-profile-name'));
}
public function testScreamingSnakeToSnake(): void
{
self::assertSame('user_profile_name', CaseConverter::toSnake('USER_PROFILE_NAME'));
}
public function testSnakeToSnakeIsIdempotent(): void
{
self::assertSame('user_profile_name', CaseConverter::toSnake('user_profile_name'));
}
// -------------------------------------------------------------------------
// toCamel
// -------------------------------------------------------------------------
public function testSnakeToCamel(): void
{
self::assertSame('userProfileName', CaseConverter::toCamel('user_profile_name'));
}
public function testKebabToCamel(): void
{
self::assertSame('userProfileName', CaseConverter::toCamel('user-profile-name'));
}
public function testPascalToCamel(): void
{
self::assertSame('userProfileName', CaseConverter::toCamel('UserProfileName'));
}
public function testCamelToCamelIsIdempotent(): void
{
self::assertSame('userProfileName', CaseConverter::toCamel('userProfileName'));
}
// -------------------------------------------------------------------------
// toPascal
// -------------------------------------------------------------------------
public function testSnakeToPascal(): void
{
self::assertSame('UserProfileName', CaseConverter::toPascal('user_profile_name'));
}
public function testKebabToPascal(): void
{
self::assertSame('UserProfileName', CaseConverter::toPascal('user-profile-name'));
}
public function testCamelToPascal(): void
{
self::assertSame('UserProfileName', CaseConverter::toPascal('userProfileName'));
}
// -------------------------------------------------------------------------
// toKebab
// -------------------------------------------------------------------------
public function testPascalToKebab(): void
{
self::assertSame('user-profile-name', CaseConverter::toKebab('UserProfileName'));
}
public function testSnakeToKebab(): void
{
self::assertSame('user-profile-name', CaseConverter::toKebab('user_profile_name'));
}
public function testCamelToKebab(): void
{
self::assertSame('user-profile-name', CaseConverter::toKebab('userProfileName'));
}
// -------------------------------------------------------------------------
// toScreamingSnake
// -------------------------------------------------------------------------
public function testCamelToScreamingSnake(): void
{
self::assertSame('USER_ID', CaseConverter::toScreamingSnake('userId'));
}
public function testKebabToScreamingSnake(): void
{
self::assertSame('USER_PROFILE_NAME', CaseConverter::toScreamingSnake('user-profile-name'));
}
public function testSnakeToScreamingSnake(): void
{
self::assertSame('USER_PROFILE_NAME', CaseConverter::toScreamingSnake('user_profile_name'));
}
// -------------------------------------------------------------------------
// Special cases
// -------------------------------------------------------------------------
public function testSingleWord(): void
{
self::assertSame('name', CaseConverter::toSnake('name'));
self::assertSame('name', CaseConverter::toCamel('name'));
self::assertSame('Name', CaseConverter::toPascal('name'));
self::assertSame('NAME', CaseConverter::toScreamingSnake('name'));
}
public function testAcronymInPascal(): void
{
self::assertSame('html_parser', CaseConverter::toSnake('HTMLParser'));
}
public function testEmptyString(): void
{
self::assertSame('', CaseConverter::toCamel(''));
self::assertSame('', CaseConverter::toSnake(''));
}
}