From cfa46e477bb2ed572eee13bb696edc65afc54bbd Mon Sep 17 00:00:00 2001 From: DariusIII Date: Wed, 24 Jun 2026 16:56:10 +0200 Subject: [PATCH] Add missing test --- tests/Unit/ManticoreClientFactoryTest.php | 106 ++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 tests/Unit/ManticoreClientFactoryTest.php diff --git a/tests/Unit/ManticoreClientFactoryTest.php b/tests/Unit/ManticoreClientFactoryTest.php new file mode 100644 index 000000000..03168c201 --- /dev/null +++ b/tests/Unit/ManticoreClientFactoryTest.php @@ -0,0 +1,106 @@ + 'manticore', + 'port' => 9308, + ]); + + $this->assertSame('manticore', $config['host']); + $this->assertSame(9308, $config['port']); + $this->assertArrayNotHasKey('username', $config); + $this->assertArrayNotHasKey('password', $config); + $this->assertArrayNotHasKey('headers', $config); + } + + #[Test] + public function it_adds_basic_auth_when_username_and_password_are_configured(): void + { + $config = ManticoreClientFactory::clientConfig([ + 'host' => 'manticore', + 'port' => 9308, + 'username' => 'search_user', + 'password' => 'secret', + ]); + + $this->assertSame('search_user', $config['username']); + $this->assertSame('secret', $config['password']); + } + + #[Test] + public function bearer_token_auth_takes_precedence_over_basic_auth(): void + { + $config = ManticoreClientFactory::clientConfig([ + 'host' => 'manticore', + 'port' => 9308, + 'username' => 'search_user', + 'password' => 'secret', + 'token' => 'token-value', + ]); + + $this->assertArrayNotHasKey('username', $config); + $this->assertArrayNotHasKey('password', $config); + $this->assertSame(['Authorization: Bearer token-value'], $config['headers']); + } + + #[Test] + public function it_parses_multiple_hosts_and_https_transport(): void + { + $config = ManticoreClientFactory::clientConfig([ + 'host' => 'fallback', + 'port' => 9308, + 'scheme' => 'http', + 'hosts' => 'manticore-a:9308,https://manticore-b:9443/search', + 'retries' => 3, + 'token' => 'token-value', + ]); + + $this->assertSame(3, $config['retries']); + $this->assertCount(2, $config['connections']); + $this->assertSame('manticore-a', $config['connections'][0]['host']); + $this->assertSame(9308, $config['connections'][0]['port']); + $this->assertSame('manticore-b', $config['connections'][1]['host']); + $this->assertSame(9443, $config['connections'][1]['port']); + $this->assertSame('Https', $config['connections'][1]['transport']); + $this->assertSame('/search', $config['connections'][1]['path']); + $this->assertSame(['Authorization: Bearer token-value'], $config['connections'][1]['headers']); + } + + #[Test] + public function it_builds_guzzle_options_for_basic_or_bearer_auth(): void + { + $basic = ManticoreClientFactory::guzzleOptions([ + 'username' => 'search_user', + 'password' => 'secret', + ], [ + 'timeout' => 10, + ]); + + $this->assertSame(['search_user', 'secret'], $basic['auth']); + $this->assertSame(10, $basic['timeout']); + + $bearer = ManticoreClientFactory::guzzleOptions([ + 'username' => 'search_user', + 'password' => 'secret', + 'token' => 'token-value', + ], [ + 'headers' => ['Content-Type' => 'text/plain'], + ]); + + $this->assertArrayNotHasKey('auth', $bearer); + $this->assertSame('Bearer token-value', $bearer['headers']['Authorization']); + $this->assertSame('text/plain', $bearer['headers']['Content-Type']); + } +}