Skip to content

Commit 5bf29c7

Browse files
authored
fix: Pass logger to ClientBuilder (#241)
1 parent 3f36df4 commit 5bf29c7

File tree

3 files changed

+22
-10
lines changed

3 files changed

+22
-10
lines changed

src/ClientBuilder.php

+8-4
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
use Laudis\Neo4j\Formatter\OGMFormatter;
3131
use Laudis\Neo4j\Formatter\SummarizedResultFormatter;
3232
use Laudis\Neo4j\Types\CypherMap;
33+
use Psr\Log\LoggerInterface;
3334

3435
/**
3536
* Immutable factory for creating a client.
@@ -58,16 +59,19 @@ public function __construct(
5859
/**
5960
* Creates a client builder with default configurations and an OGMFormatter.
6061
*
61-
* @pure
62-
*
6362
* @return ClientBuilder<SummarizedResult<CypherMap<OGMTypes>>>
6463
*/
65-
public static function create(): ClientBuilder
64+
public static function create(?string $logLevel = null, ?LoggerInterface $logger = null): ClientBuilder
6665
{
66+
$configuration = DriverConfiguration::default();
67+
if ($logLevel !== null && $logger !== null) {
68+
$configuration = $configuration->withLogger($logLevel, $logger);
69+
}
70+
6771
return new self(
6872
SessionConfiguration::default(),
6973
TransactionConfiguration::default(),
70-
new DriverSetupManager(SummarizedResultFormatter::create(), DriverConfiguration::default())
74+
new DriverSetupManager(SummarizedResultFormatter::create(), $configuration)
7175
);
7276
}
7377

src/DriverFactory.php

+1-2
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
use Laudis\Neo4j\Http\HttpDriver;
2727
use Laudis\Neo4j\Neo4j\Neo4jDriver;
2828
use Psr\Http\Message\UriInterface;
29-
use Psr\Log\LoggerInterface;
3029

3130
/**
3231
* Factory for creating drivers directly.
@@ -46,7 +45,7 @@ final class DriverFactory
4645
* : DriverInterface<OGMResults>
4746
* )
4847
*/
49-
public static function create(string|UriInterface $uri, ?DriverConfiguration $configuration = null, ?AuthenticateInterface $authenticate = null, ?FormatterInterface $formatter = null, ?string $logLevel = null, ?LoggerInterface $logger = null): DriverInterface
48+
public static function create(string|UriInterface $uri, ?DriverConfiguration $configuration = null, ?AuthenticateInterface $authenticate = null, ?FormatterInterface $formatter = null): DriverInterface
5049
{
5150
if (is_string($uri)) {
5251
$uri = Uri::create($uri);

tests/Integration/ClientBuilderTest.php

+13-4
Original file line numberDiff line numberDiff line change
@@ -15,33 +15,42 @@
1515

1616
use Laudis\Neo4j\Client;
1717
use Laudis\Neo4j\ClientBuilder;
18+
use Laudis\Neo4j\Common\Neo4jLogger;
1819
use Laudis\Neo4j\Databags\DriverConfiguration;
1920
use Laudis\Neo4j\Databags\SessionConfiguration;
2021
use Laudis\Neo4j\Databags\SslConfiguration;
2122
use Laudis\Neo4j\Databags\TransactionConfiguration;
2223
use Laudis\Neo4j\Enum\SslMode;
2324
use PHPUnit\Framework\TestCase;
25+
use Psr\Log\LoggerInterface;
26+
use Psr\Log\LogLevel;
2427

2528
class ClientBuilderTest extends TestCase
2629
{
2730
public function testGetClient(): void
2831
{
32+
$logger = $this->createMock(LoggerInterface::class);
2933
$sslConfig = SslConfiguration::default()->withVerifyPeer(false)->withMode(SslMode::FROM_URL());
3034
$driverconfig = DriverConfiguration::default()
3135
->withSslConfiguration($sslConfig)
3236
->withMaxPoolSize(4096)
33-
->withAcquireConnectionTimeout(2.5);
37+
->withAcquireConnectionTimeout(2.5)
38+
->withLogger(LogLevel::DEBUG, $logger);
3439
$sessionConfig = SessionConfiguration::default()->withDatabase('neo4j');
3540
$transactionConfig = TransactionConfiguration::default()->withTimeout(120.0);
36-
$client = ClientBuilder::create()
41+
$client = ClientBuilder::create(LogLevel::DEBUG, $logger)
3742
->withDefaultDriverConfiguration($driverconfig)
3843
->withDefaultSessionConfiguration($sessionConfig)
3944
->withDefaultTransactionConfiguration($transactionConfig)
4045
->build();
4146

4247
self::assertInstanceOf(Client::class, $client);
43-
self::assertEquals($driverconfig, $client->getDriverSetups()->getDriverConfiguration());
44-
self::assertEquals($sslConfig, $client->getDriverSetups()->getDriverConfiguration()->getSslConfiguration());
48+
49+
$driverConfigurationFromClient = $client->getDriverSetups()->getDriverConfiguration();
50+
self::assertInstanceOf(Neo4jLogger::class, $driverConfigurationFromClient->getLogger());
51+
52+
self::assertEquals($driverconfig, $driverConfigurationFromClient);
53+
self::assertEquals($sslConfig, $driverConfigurationFromClient->getSslConfiguration());
4554
self::assertEquals($sessionConfig, $client->getDefaultSessionConfiguration());
4655
self::assertEquals($transactionConfig, $client->getDefaultTransactionConfiguration());
4756
}

0 commit comments

Comments
 (0)