From 068ea478b4889f3d21a5b933ec0c92df0f981431 Mon Sep 17 00:00:00 2001 From: exaby73 Date: Fri, 22 Nov 2024 12:39:00 +0530 Subject: [PATCH 1/5] refactor: Update method signature in DriverFactory to remove unused parameters --- src/DriverFactory.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DriverFactory.php b/src/DriverFactory.php index 673351eb..057e1edc 100644 --- a/src/DriverFactory.php +++ b/src/DriverFactory.php @@ -46,7 +46,7 @@ final class DriverFactory * : DriverInterface * ) */ - public static function create(string|UriInterface $uri, ?DriverConfiguration $configuration = null, ?AuthenticateInterface $authenticate = null, ?FormatterInterface $formatter = null, ?string $logLevel = null, ?LoggerInterface $logger = null): DriverInterface + public static function create(string|UriInterface $uri, ?DriverConfiguration $configuration = null, ?AuthenticateInterface $authenticate = null, ?FormatterInterface $formatter = null): DriverInterface { if (is_string($uri)) { $uri = Uri::create($uri); From e68f21580f78333fc1156e75b2cfc85b009949d6 Mon Sep 17 00:00:00 2001 From: exaby73 Date: Fri, 22 Nov 2024 12:39:11 +0530 Subject: [PATCH 2/5] feat: Add optional logging support to ClientBuilder --- src/ClientBuilder.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/ClientBuilder.php b/src/ClientBuilder.php index cf515701..0365bddc 100644 --- a/src/ClientBuilder.php +++ b/src/ClientBuilder.php @@ -13,6 +13,7 @@ namespace Laudis\Neo4j; +use Psr\Log\LoggerInterface; use function in_array; use Laudis\Neo4j\Authentication\Authenticate; @@ -58,16 +59,18 @@ public function __construct( /** * Creates a client builder with default configurations and an OGMFormatter. * - * @pure - * * @return ClientBuilder>> */ - public static function create(): ClientBuilder + public static function create(?string $logLevel, ?LoggerInterface $logger): ClientBuilder { + $configuration = DriverConfiguration::default(); + if ($logLevel !== null && $logger !== null) { + $configuration = $configuration->withLogger($logLevel, $logger); + } return new self( SessionConfiguration::default(), TransactionConfiguration::default(), - new DriverSetupManager(SummarizedResultFormatter::create(), DriverConfiguration::default()) + new DriverSetupManager(SummarizedResultFormatter::create(), $configuration) ); } From 5952458e7171f6dc34884e65f9ffe94c273f97f2 Mon Sep 17 00:00:00 2001 From: exaby73 Date: Fri, 22 Nov 2024 12:39:58 +0530 Subject: [PATCH 3/5] fix: Update default values for optional parameters --- src/ClientBuilder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ClientBuilder.php b/src/ClientBuilder.php index 0365bddc..4d4328e5 100644 --- a/src/ClientBuilder.php +++ b/src/ClientBuilder.php @@ -61,7 +61,7 @@ public function __construct( * * @return ClientBuilder>> */ - public static function create(?string $logLevel, ?LoggerInterface $logger): ClientBuilder + public static function create(?string $logLevel = null, ?LoggerInterface $logger = null): ClientBuilder { $configuration = DriverConfiguration::default(); if ($logLevel !== null && $logger !== null) { From 6318519a06db92a16dcac67450174f18fee8e315 Mon Sep 17 00:00:00 2001 From: exaby73 Date: Fri, 22 Nov 2024 12:42:23 +0530 Subject: [PATCH 4/5] style: Remove unnecessary import of LoggerInterface --- src/ClientBuilder.php | 3 ++- src/DriverFactory.php | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ClientBuilder.php b/src/ClientBuilder.php index 4d4328e5..cde9c86e 100644 --- a/src/ClientBuilder.php +++ b/src/ClientBuilder.php @@ -13,7 +13,6 @@ namespace Laudis\Neo4j; -use Psr\Log\LoggerInterface; use function in_array; use Laudis\Neo4j\Authentication\Authenticate; @@ -31,6 +30,7 @@ use Laudis\Neo4j\Formatter\OGMFormatter; use Laudis\Neo4j\Formatter\SummarizedResultFormatter; use Laudis\Neo4j\Types\CypherMap; +use Psr\Log\LoggerInterface; /** * Immutable factory for creating a client. @@ -67,6 +67,7 @@ public static function create(?string $logLevel = null, ?LoggerInterface $logger if ($logLevel !== null && $logger !== null) { $configuration = $configuration->withLogger($logLevel, $logger); } + return new self( SessionConfiguration::default(), TransactionConfiguration::default(), diff --git a/src/DriverFactory.php b/src/DriverFactory.php index 057e1edc..85d7f3b4 100644 --- a/src/DriverFactory.php +++ b/src/DriverFactory.php @@ -26,7 +26,6 @@ use Laudis\Neo4j\Http\HttpDriver; use Laudis\Neo4j\Neo4j\Neo4jDriver; use Psr\Http\Message\UriInterface; -use Psr\Log\LoggerInterface; /** * Factory for creating drivers directly. From d8047d26bc58ccb90ffd2af8affb1d1f252d75ab Mon Sep 17 00:00:00 2001 From: exaby73 Date: Fri, 22 Nov 2024 12:53:47 +0530 Subject: [PATCH 5/5] test: Add logging capability to ClientBuilderTest --- tests/Integration/ClientBuilderTest.php | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/tests/Integration/ClientBuilderTest.php b/tests/Integration/ClientBuilderTest.php index 2b8c4991..248b569a 100644 --- a/tests/Integration/ClientBuilderTest.php +++ b/tests/Integration/ClientBuilderTest.php @@ -15,33 +15,42 @@ use Laudis\Neo4j\Client; use Laudis\Neo4j\ClientBuilder; +use Laudis\Neo4j\Common\Neo4jLogger; use Laudis\Neo4j\Databags\DriverConfiguration; use Laudis\Neo4j\Databags\SessionConfiguration; use Laudis\Neo4j\Databags\SslConfiguration; use Laudis\Neo4j\Databags\TransactionConfiguration; use Laudis\Neo4j\Enum\SslMode; use PHPUnit\Framework\TestCase; +use Psr\Log\LoggerInterface; +use Psr\Log\LogLevel; class ClientBuilderTest extends TestCase { public function testGetClient(): void { + $logger = $this->createMock(LoggerInterface::class); $sslConfig = SslConfiguration::default()->withVerifyPeer(false)->withMode(SslMode::FROM_URL()); $driverconfig = DriverConfiguration::default() ->withSslConfiguration($sslConfig) ->withMaxPoolSize(4096) - ->withAcquireConnectionTimeout(2.5); + ->withAcquireConnectionTimeout(2.5) + ->withLogger(LogLevel::DEBUG, $logger); $sessionConfig = SessionConfiguration::default()->withDatabase('neo4j'); $transactionConfig = TransactionConfiguration::default()->withTimeout(120.0); - $client = ClientBuilder::create() + $client = ClientBuilder::create(LogLevel::DEBUG, $logger) ->withDefaultDriverConfiguration($driverconfig) ->withDefaultSessionConfiguration($sessionConfig) ->withDefaultTransactionConfiguration($transactionConfig) ->build(); self::assertInstanceOf(Client::class, $client); - self::assertEquals($driverconfig, $client->getDriverSetups()->getDriverConfiguration()); - self::assertEquals($sslConfig, $client->getDriverSetups()->getDriverConfiguration()->getSslConfiguration()); + + $driverConfigurationFromClient = $client->getDriverSetups()->getDriverConfiguration(); + self::assertInstanceOf(Neo4jLogger::class, $driverConfigurationFromClient->getLogger()); + + self::assertEquals($driverconfig, $driverConfigurationFromClient); + self::assertEquals($sslConfig, $driverConfigurationFromClient->getSslConfiguration()); self::assertEquals($sessionConfig, $client->getDefaultSessionConfiguration()); self::assertEquals($transactionConfig, $client->getDefaultTransactionConfiguration()); }