1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-12 09:19:40 +01:00
psalm/tests/Type/UnionTest.php
Maximilian Bösing 9d59fbe6bb
feature: introduce literal float methods to Union type
- Added `Psalm\Type\Union#isSingleFloatLiteral`
- Added `Psalm\Type\Union#getSingleFloatLiteral`
- Added `Psalm\Type\Union#hasLiteralFloat`

Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-08-06 21:05:26 +02:00

32 lines
878 B
PHP

<?php
declare(strict_types=1);
namespace Psalm\Tests\Type;
use InvalidArgumentException;
use Psalm\Tests\TestCase;
use Psalm\Type\Atomic\TFloat;
use Psalm\Type\Atomic\TLiteralFloat;
use Psalm\Type\Union;
final class UnionTest extends TestCase
{
public function testWillDetectSingleLiteralFloat(): void
{
$literalFloat = new TLiteralFloat(1.0);
$union = new Union([$literalFloat]);
self::assertTrue($union->isSingleFloatLiteral());
self::assertTrue($union->hasLiteralFloat());
self::assertSame($literalFloat, $union->getSingleFloatLiteral());
}
public function testWillThrowInvalidArgumentExceptionWhenSingleFloatLiteralIsRequestedButNoneExists(): void
{
$this->expectException(InvalidArgumentException::class);
$union = new Union([new TFloat()]);
$union->getSingleFloatLiteral();
}
}