1
0
Fork 0
doom-wad-php/tests/Unit/Texture/PNamesParserTest.php
2026-04-22 16:41:48 +02:00

25 lines
794 B
PHP

<?php
use Doom\Texture\PNamesParser;
test('parses PNAMES lump names', function (): void {
$data = pack('V', 3)
. pack('a8', 'BROWN1')
. pack('a8', 'STARTAN3')
. pack('a8', 'BIGDOOR2');
$pNames = PNamesParser::parseBytes($data);
expect($pNames)->toHaveCount(3);
expect($pNames)->toBe(['BROWN1', 'STARTAN3', 'BIGDOOR2']);
expect($pNames[1] ?? null)->toBe('STARTAN3');
expect($pNames[10] ?? null)->toBeNull();
expect(array_search('BIGDOOR2', $pNames, true))->toBe(2);
expect(array_search('MISSING', $pNames, true))->toBeFalse();
});
test('throws on truncated PNAMES lump', function (): void {
$data = pack('V', 2) . pack('a8', 'ONLYONE');
expect(fn () => PNamesParser::parseBytes($data))->toThrow(RuntimeException::class);
});