52 lines
1.2 KiB
PHP
52 lines
1.2 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace MintyPHP\Tests\Support\Helpers;
|
||
|
|
|
||
|
|
use PHPUnit\Framework\TestCase;
|
||
|
|
|
||
|
|
class ToIntIdsTest extends TestCase
|
||
|
|
{
|
||
|
|
public function testDeduplicatesAndPreservesOrder(): void
|
||
|
|
{
|
||
|
|
$this->assertSame([1, 3, 5], toIntIds([1, 3, 5, 1, 3]));
|
||
|
|
}
|
||
|
|
|
||
|
|
public function testDropsNonPositiveValues(): void
|
||
|
|
{
|
||
|
|
$this->assertSame([2, 4], toIntIds([0, -1, 2, -3, 4]));
|
||
|
|
}
|
||
|
|
|
||
|
|
public function testCoercesNumericStrings(): void
|
||
|
|
{
|
||
|
|
$this->assertSame([1, 2, 3], toIntIds(['1', '2', '3']));
|
||
|
|
}
|
||
|
|
|
||
|
|
public function testIgnoresNonNumericStrings(): void
|
||
|
|
{
|
||
|
|
$this->assertSame([7], toIntIds(['abc', '7', '']));
|
||
|
|
}
|
||
|
|
|
||
|
|
public function testEmptyArrayReturnsEmpty(): void
|
||
|
|
{
|
||
|
|
$this->assertSame([], toIntIds([]));
|
||
|
|
}
|
||
|
|
|
||
|
|
public function testNullAndEmptyStringReturnEmpty(): void
|
||
|
|
{
|
||
|
|
$this->assertSame([], toIntIds(null));
|
||
|
|
$this->assertSame([], toIntIds(''));
|
||
|
|
}
|
||
|
|
|
||
|
|
public function testScalarIsWrappedAsSingleElement(): void
|
||
|
|
{
|
||
|
|
$this->assertSame([42], toIntIds(42));
|
||
|
|
$this->assertSame([42], toIntIds('42'));
|
||
|
|
}
|
||
|
|
|
||
|
|
public function testZeroScalarReturnsEmpty(): void
|
||
|
|
{
|
||
|
|
$this->assertSame([], toIntIds(0));
|
||
|
|
$this->assertSame([], toIntIds('0'));
|
||
|
|
}
|
||
|
|
}
|