getProperty('_instances'); $prop->setAccessible(true); $prop->setValue(null, []); $ref = new ReflectionClass(Config::class); $prop = $ref->getProperty('config'); $prop->setAccessible(true); $prop->setValue(null, null); } public function testDefaultConnectionReturnsPdoConnection(): void { $this->assertInstanceOf(PdoConnection::class, Database::instance()); } public function testInstanceIsCachedPerConnectionName(): void { $this->assertSame(Database::instance('default'), Database::instance('default')); } public function testDifferentConnectionNamesAreDistinctInstances(): void { Config::set('db', [ 'default' => ['host' => 'db', 'dbname' => 'a'], 'second' => ['host' => 'db', 'dbname' => 'b'], ]); $this->assertNotSame(Database::instance('default'), Database::instance('second')); } public function testUnknownConnectionNameThrows(): void { $this->expectException(MyException::class); Database::instance('nonexistent'); } }