* @license MIT */ declare(strict_types=1); namespace Test\Unit; use BitBadger\PDODocument\{AutoId, Configuration, DocumentException}; use PHPUnit\Framework\Attributes\TestDox; use PHPUnit\Framework\TestCase; /** * Unit tests for the Configuration class */ #[TestDox('Configuration (Unit tests)')] class ConfigurationTest extends TestCase { #[TestDox('ID field default succeeds')] public function testIdFieldDefaultSucceeds(): void { $this->assertEquals('id', Configuration::$idField, 'Default ID field should be "id"'); } #[TestDox('ID field change succeeds')] public function testIdFieldChangeSucceeds() { try { Configuration::$idField = 'EyeDee'; $this->assertEquals('EyeDee', Configuration::$idField, 'ID field should have been updated'); } finally { Configuration::$idField = 'id'; $this->assertEquals('id', Configuration::$idField, 'Default ID value should have been restored'); } } #[TestDox('Auto ID default succeeds')] public function testAutoIdDefaultSucceeds(): void { $this->assertEquals(AutoId::None, Configuration::$autoId, 'Auto ID should default to None'); } #[TestDox('ID string length default succeeds')] public function testIdStringLengthDefaultSucceeds(): void { $this->assertEquals(16, Configuration::$idStringLength, 'ID string length should default to 16'); } #[TestDox("Db conn fails when no DSN specified")] public function testDbConnFailsWhenNoDSNSpecified(): void { $this->expectException(DocumentException::class); Configuration::useDSN(''); Configuration::dbConn(); } }