Files
wordpress-theme-aksrt/tests/asset-ledger/BusinessNumberTest.php
T
2026-08-25 05:33:01 +08:00

20 lines
923 B
PHP

<?php
use AKSRT\Finance\BusinessNumber;
use PHPUnit\Framework\TestCase;
final class BusinessNumberTest extends TestCase {
public function test_prefix_is_uppercased_filtered_and_limited(): void {
self::assertSame('AK', BusinessNumber::normalize_prefix('', 'AK'));
self::assertSame('TX_TEST-9', BusinessNumber::normalize_prefix(' tx_测test-9 ', 'TX'));
self::assertSame('ABCDEFGHIJKL', BusinessNumber::normalize_prefix('abcdefghijklmnop', 'AK'));
self::assertSame('TX', BusinessNumber::normalize_prefix('中文', 'TX'));
}
public function test_candidate_uses_supplied_site_time_and_six_digit_random_suffix(): void {
$time = new DateTimeImmutable('2026-08-25 13:14:15', new DateTimeZone('Asia/Shanghai'));
self::assertSame('AK20260825131415000007', BusinessNumber::candidate('ak', $time, 7));
self::assertMatchesRegularExpression('/^TX\d{14}\d{6}$/', BusinessNumber::candidate('TX', $time, 999999));
}
}