* @license MIT */ declare(strict_types=1); namespace Test\Unit\Mapper; use BitBadger\PDODocument\{Configuration, DocumentException, Mode}; use BitBadger\PDODocument\Mapper\ExistsMapper; use PHPUnit\Framework\Attributes\TestDox; use PHPUnit\Framework\TestCase; /** * Unit tests for the ExistsMapper class */ #[TestDox('Exists Mapper (Unit tests)')] class ExistsMapperTest extends TestCase { #[TestDox('Map succeeds for PostgreSQL')] public function testMapSucceedsForPostgreSQL(): void { try { Configuration::overrideMode(Mode::PgSQL); $this->assertFalse((new ExistsMapper())->map([false, 'nope']), 'Result should have been false'); } finally { Configuration::overrideMode(null); } } #[TestDox('Map succeeds for SQLite')] public function testMapSucceedsForSQLite(): void { try { Configuration::overrideMode(Mode::SQLite); $this->assertTrue((new ExistsMapper())->map([1, 'yep']), 'Result should have been true'); } finally { Configuration::overrideMode(null); } } public function testMapFailsWhenModeNotSet(): void { $this->expectException(DocumentException::class); Configuration::overrideMode(null); (new ExistsMapper())->map(['0']); } }