createConfigFromString("host=localhost:5432 user=user database=test"); self::assertSame("localhost", $config->getHost()); self::assertSame(5432, $config->getPort()); self::assertSame("user", $config->getUser()); self::assertSame("", $config->getPassword()); self::assertSame("test", $config->getDatabase()); } public function testBasicSyntax(): void { $config = $this->createConfigFromString("host=localhost port=5432 user=user pass=test db=test"); self::assertSame("localhost", $config->getHost()); self::assertSame(5432, $config->getPort()); self::assertSame("user", $config->getUser()); self::assertSame("test", $config->getPassword()); self::assertSame("test", $config->getDatabase()); } public function testAlternativeSyntax(): void { $config = $this->createConfigFromString("host=localhost;port=3306;user=user;password=test;db=test"); self::assertSame("localhost", $config->getHost()); self::assertSame(3306, $config->getPort()); self::assertSame("user", $config->getUser()); self::assertSame("test", $config->getPassword()); self::assertSame("test", $config->getDatabase()); } public function testInvalidString(): void { $this->expectException(\ValueError::class); $this->expectExceptionMessage("Empty key name in connection string"); $this->createConfigFromString("invalid =connection string"); } }