diff --git a/src/FreeDSx/Ldap/Container.php b/src/FreeDSx/Ldap/Container.php index 824548b0..1e427e81 100644 --- a/src/FreeDSx/Ldap/Container.php +++ b/src/FreeDSx/Ldap/Container.php @@ -94,7 +94,6 @@ private function registerServerClasses(): void private function makeClientProtocolHandler(): ClientProtocolHandler { return new ClientProtocolHandler( - options: $this->clientOptions, clientQueueInstantiator: $this->get(ClientQueueInstantiator::class), protocolHandlerFactory: $this->get(ClientProtocolHandlerFactory::class), ); diff --git a/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler.php b/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler.php index f435850a..41021cda 100644 --- a/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler.php +++ b/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler.php @@ -53,7 +53,6 @@ class ClientProtocolHandler private ?Entry $rootDse = null; public function __construct( - private readonly ClientOptions $options, private readonly ClientQueueInstantiator $clientQueueInstantiator, private readonly ClientProtocolHandlerFactory $protocolHandlerFactory, private readonly ControlBag $controls = new ControlBag(), @@ -123,7 +122,6 @@ public function send( controls: $controls, protocolHandler: $this, queue: $this->queue(), - options: $this->options, ); $messageFrom = $this->protocolHandlerFactory diff --git a/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientBasicHandler.php b/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientBasicHandler.php index 7da890e9..b08e8b0b 100644 --- a/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientBasicHandler.php +++ b/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientBasicHandler.php @@ -34,6 +34,10 @@ */ class ClientBasicHandler implements RequestHandlerInterface, ResponseHandlerInterface { + public function __construct(private readonly ClientQueue $queue) + { + } + /** * RFC 4511, A.1. These are considered result codes that do not indicate an error condition. */ @@ -54,11 +58,10 @@ class ClientBasicHandler implements RequestHandlerInterface, ResponseHandlerInte */ public function handleRequest(ClientProtocolContext $context): ?LdapMessageResponse { - $queue = $context->getQueue(); $message = $context->messageToSend(); - $queue->sendMessage($message); + $this->queue->sendMessage($message); - return $queue->getMessage($message->getMessageId()); + return $this->queue->getMessage($message->getMessageId()); } /** diff --git a/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientExtendedOperationHandler.php b/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientExtendedOperationHandler.php index 7551624a..80236c1c 100644 --- a/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientExtendedOperationHandler.php +++ b/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientExtendedOperationHandler.php @@ -21,6 +21,7 @@ use FreeDSx\Ldap\Operation\Request\ExtendedRequest; use FreeDSx\Ldap\Protocol\Factory\ExtendedResponseFactory; use FreeDSx\Ldap\Protocol\LdapMessageResponse; +use FreeDSx\Ldap\Protocol\Queue\ClientQueue; use FreeDSx\Socket\Exception\ConnectionException; use ReflectionClass; use ReflectionException; @@ -34,9 +35,13 @@ class ClientExtendedOperationHandler extends ClientBasicHandler { private ExtendedResponseFactory $extendedResponseFactory; - public function __construct(ExtendedResponseFactory $extendedResponseFactory = null) - { + public function __construct( + ClientQueue $queue, + ExtendedResponseFactory $extendedResponseFactory = null + ) { $this->extendedResponseFactory = $extendedResponseFactory ?? new ExtendedResponseFactory(); + + parent::__construct($queue); } /** diff --git a/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientProtocolContext.php b/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientProtocolContext.php index 6bc2648b..25d03873 100644 --- a/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientProtocolContext.php +++ b/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientProtocolContext.php @@ -14,7 +14,6 @@ namespace FreeDSx\Ldap\Protocol\ClientProtocolHandler; use FreeDSx\Asn1\Exception\EncoderException; -use FreeDSx\Ldap\ClientOptions; use FreeDSx\Ldap\Control\Control; use FreeDSx\Ldap\Entry\Entry; use FreeDSx\Ldap\Exception\BindException; @@ -41,8 +40,6 @@ class ClientProtocolContext */ private array $controls; - private ClientOptions $options; - private ClientProtocolHandler $protocolHandler; private ClientQueue $clientQueue; @@ -56,13 +53,11 @@ public function __construct( array $controls, ClientProtocolHandler $protocolHandler, ClientQueue $queue, - ClientOptions $options ) { $this->request = $request; $this->controls = $controls; $this->protocolHandler = $protocolHandler; $this->clientQueue = $queue; - $this->options = $options; } public function getRequest(): RequestInterface @@ -78,21 +73,6 @@ public function getControls(): array return $this->controls; } - public function getProtocolHandler(): ClientProtocolHandler - { - return $this->protocolHandler; - } - - public function getQueue(): ClientQueue - { - return $this->clientQueue; - } - - public function getOptions(): ClientOptions - { - return $this->options; - } - public function messageToSend(): LdapMessageRequest { if ($this->sentMessage !== null) { diff --git a/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientSaslBindHandler.php b/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientSaslBindHandler.php index 7f3026eb..26c1c0e8 100644 --- a/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientSaslBindHandler.php +++ b/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientSaslBindHandler.php @@ -49,8 +49,10 @@ class ClientSaslBindHandler implements RequestHandlerInterface private Sasl $sasl; - public function __construct(?Sasl $sasl = null) - { + public function __construct( + private readonly ClientQueue $queue, + ?Sasl $sasl = null + ) { $this->sasl = $sasl ?? new Sasl(); } @@ -77,11 +79,10 @@ public function handleRequest(ClientProtocolContext $context): ?LdapMessageRespo $detectDowngrade = ($request->getMechanism() === ''); $mech = $this->selectSaslMech($request, $context); - $queue = $context->getQueue(); $message = $context->messageToSend(); - $queue->sendMessage($message); + $this->queue->sendMessage($message); - $response = $queue->getMessage($message->getMessageId()); + $response = $this->queue->getMessage($message->getMessageId()); $saslResponse = $response->getResponse(); if (!$saslResponse instanceof BindResponse) { throw new ProtocolException(sprintf( @@ -92,7 +93,12 @@ public function handleRequest(ClientProtocolContext $context): ?LdapMessageRespo if ($saslResponse->getResultCode() !== ResultCode::SASL_BIND_IN_PROGRESS) { return $response; } - $response = $this->processSaslChallenge($request, $queue, $saslResponse, $mech); + $response = $this->processSaslChallenge( + $request, + $this->queue, + $saslResponse, + $mech + ); if ( $detectDowngrade && $response->getResponse() instanceof BindResponse diff --git a/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientSearchHandler.php b/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientSearchHandler.php index 467bee18..40235308 100644 --- a/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientSearchHandler.php +++ b/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientSearchHandler.php @@ -13,6 +13,7 @@ namespace FreeDSx\Ldap\Protocol\ClientProtocolHandler; +use FreeDSx\Ldap\ClientOptions; use FreeDSx\Ldap\Operation\Request\SearchRequest; use FreeDSx\Ldap\Protocol\LdapMessageRequest; use FreeDSx\Ldap\Protocol\LdapMessageResponse; @@ -27,8 +28,11 @@ class ClientSearchHandler extends ClientBasicHandler { use ClientSearchTrait; - public function __construct(private readonly ClientQueue $queue) - { + public function __construct( + private readonly ClientQueue $queue, + private readonly ClientOptions $options, + ) { + parent::__construct($this->queue); } /** @@ -39,7 +43,7 @@ public function handleRequest(ClientProtocolContext $context): ?LdapMessageRespo /** @var SearchRequest $request */ $request = $context->getRequest(); if ($request->getBaseDn() === null) { - $request->setBaseDn($context->getOptions()->getBaseDn() ?? null); + $request->setBaseDn($this->options->getBaseDn() ?? null); } return parent::handleRequest($context); diff --git a/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientSyncHandler.php b/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientSyncHandler.php index 4bcb89f0..f25177f6 100644 --- a/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientSyncHandler.php +++ b/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientSyncHandler.php @@ -14,6 +14,7 @@ namespace FreeDSx\Ldap\Protocol\ClientProtocolHandler; use Closure; +use FreeDSx\Ldap\ClientOptions; use FreeDSx\Ldap\Control\Sync\SyncDoneControl; use FreeDSx\Ldap\Control\Sync\SyncRequestControl; use FreeDSx\Ldap\Exception\RuntimeException; @@ -53,8 +54,11 @@ class ClientSyncHandler extends ClientBasicHandler private ?Closure $cookieHandler = null; - public function __construct(private readonly ClientQueue $queue) - { + public function __construct( + private readonly ClientQueue $queue, + private readonly ClientOptions $options, + ) { + parent::__construct($this->queue); } /** @@ -65,7 +69,7 @@ public function handleRequest(ClientProtocolContext $context): ?LdapMessageRespo /** @var SearchRequest $request */ $request = $context->getRequest(); if ($request->getBaseDn() === null) { - $request->setBaseDn($context->getOptions()->getBaseDn() ?? null); + $request->setBaseDn($this->options->getBaseDn() ?? null); } return parent::handleRequest($context); diff --git a/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientUnbindHandler.php b/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientUnbindHandler.php index 9012782f..61a61ffa 100644 --- a/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientUnbindHandler.php +++ b/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientUnbindHandler.php @@ -15,6 +15,7 @@ use FreeDSx\Asn1\Exception\EncoderException; use FreeDSx\Ldap\Protocol\LdapMessageResponse; +use FreeDSx\Ldap\Protocol\Queue\ClientQueue; use FreeDSx\Socket\Exception\ConnectionException; /** @@ -26,6 +27,10 @@ class ClientUnbindHandler implements RequestHandlerInterface { use MessageCreationTrait; + public function __construct(private readonly ClientQueue $queue) + { + } + /** * {@inheritDoc} * @throws EncoderException @@ -33,10 +38,10 @@ class ClientUnbindHandler implements RequestHandlerInterface */ public function handleRequest(ClientProtocolContext $context): ?LdapMessageResponse { - $queue = $context->getQueue(); $message = $context->messageToSend(); - $queue->sendMessage($message); - $queue->close(); + + $this->queue->sendMessage($message); + $this->queue->close(); return null; } diff --git a/src/FreeDSx/Ldap/Protocol/Factory/ClientProtocolHandlerFactory.php b/src/FreeDSx/Ldap/Protocol/Factory/ClientProtocolHandlerFactory.php index b41a63e0..999aed3d 100644 --- a/src/FreeDSx/Ldap/Protocol/Factory/ClientProtocolHandlerFactory.php +++ b/src/FreeDSx/Ldap/Protocol/Factory/ClientProtocolHandlerFactory.php @@ -21,6 +21,7 @@ use FreeDSx\Ldap\Protocol\ClientProtocolHandler; use FreeDSx\Ldap\Protocol\ClientProtocolHandler\RequestHandlerInterface; use FreeDSx\Ldap\Protocol\ClientProtocolHandler\ResponseHandlerInterface; +use FreeDSx\Ldap\Protocol\Queue\ClientQueue; use FreeDSx\Ldap\Protocol\Queue\ClientQueueInstantiator; /** @@ -39,15 +40,21 @@ public function __construct( public function forRequest(Request\RequestInterface $request): RequestHandlerInterface { if ($request instanceof Request\SyncRequest) { - return new ClientProtocolHandler\ClientSyncHandler($this->queueInstantiator->make()); + return new ClientProtocolHandler\ClientSyncHandler( + queue: $this->queue(), + options: $this->clientOptions, + ); } elseif ($request instanceof Request\SearchRequest) { - return new ClientProtocolHandler\ClientSearchHandler($this->queueInstantiator->make()); + return new ClientProtocolHandler\ClientSearchHandler( + queue: $this->queue(), + options: $this->clientOptions, + ); } elseif ($request instanceof Request\UnbindRequest) { - return new ClientProtocolHandler\ClientUnbindHandler(); + return new ClientProtocolHandler\ClientUnbindHandler($this->queue()); } elseif ($request instanceof Request\SaslBindRequest) { - return new ClientProtocolHandler\ClientSaslBindHandler(); + return new ClientProtocolHandler\ClientSaslBindHandler($this->queue()); } else { - return new ClientProtocolHandler\ClientBasicHandler(); + return new ClientProtocolHandler\ClientBasicHandler($this->queue()); } } @@ -57,18 +64,32 @@ public function forResponse( ): ResponseHandlerInterface { if ($response instanceof Response\SearchResultDone || $response instanceof Response\SearchResultEntry || $response instanceof Response\SearchResultReference) { return $request instanceof Request\SyncRequest - ? new ClientProtocolHandler\ClientSyncHandler($this->queueInstantiator->make()) - : new ClientProtocolHandler\ClientSearchHandler($this->queueInstantiator->make()); + ? new ClientProtocolHandler\ClientSyncHandler( + queue: $this->queue(), + options: $this->clientOptions, + ) + : new ClientProtocolHandler\ClientSearchHandler( + queue: $this->queue(), + options: $this->clientOptions, + ); } elseif ($response instanceof Response\SyncInfoMessage) { - return new ClientProtocolHandler\ClientSyncHandler($this->queueInstantiator->make()); + return new ClientProtocolHandler\ClientSyncHandler( + queue: $this->queue(), + options: $this->clientOptions, + ); } elseif ($response instanceof Operation\LdapResult && $response->getResultCode() === ResultCode::REFERRAL) { return new ClientProtocolHandler\ClientReferralHandler($this->clientOptions); } elseif ($request instanceof Request\ExtendedRequest && $request->getName() === Request\ExtendedRequest::OID_START_TLS) { - return new ClientProtocolHandler\ClientStartTlsHandler($this->queueInstantiator->make()); + return new ClientProtocolHandler\ClientStartTlsHandler($this->queue()); } elseif ($response instanceof Response\ExtendedResponse) { - return new ClientProtocolHandler\ClientExtendedOperationHandler(); + return new ClientProtocolHandler\ClientExtendedOperationHandler($this->queue()); } else { - return new ClientProtocolHandler\ClientBasicHandler(); + return new ClientProtocolHandler\ClientBasicHandler($this->queue()); } } + + private function queue(): ClientQueue + { + return $this->queueInstantiator->make(); + } } diff --git a/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientBasicHandlerSpec.php b/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientBasicHandlerSpec.php index 5143b439..ca04e898 100644 --- a/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientBasicHandlerSpec.php +++ b/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientBasicHandlerSpec.php @@ -37,6 +37,11 @@ class ClientBasicHandlerSpec extends ObjectBehavior { + public function let(ClientQueue $queue): void + { + $this->beConstructedWith($queue); + } + public function it_is_initializable(): void { $this->shouldHaveType(ClientBasicHandler::class); @@ -52,10 +57,11 @@ public function it_should_implement_RequestHandlerInterface(): void $this->shouldBeAnInstanceOf(RequestHandlerInterface::class); } - public function it_should_handle_a_request_and_return_a_response(ClientProtocolContext $context, ClientQueue $queue, ClientProtocolHandler $protocolHandler): void - { + public function it_should_handle_a_request_and_return_a_response( + ClientProtocolContext $context, + ClientQueue $queue, + ): void { $context->messageToSend()->willReturn(new LdapMessageRequest(1, new DeleteRequest('cn=foo'))); - $context->getQueue()->willReturn($queue); $queue->sendMessage(Argument::type(LdapMessageRequest::class))->shouldBeCalledOnce(); $queue->getMessage(1)->willReturn( @@ -78,9 +84,8 @@ public function it_should_handle_a_response(ClientQueue $queue): void )->shouldBeEqualTo($messageFrom); } - public function it_should_handle_a_response_with_non_error_codes(ClientQueue $queue): void + public function it_should_handle_a_response_with_non_error_codes(): void { - $options = new ClientOptions(); $messageRequest = new LdapMessageRequest(1, new CompareRequest('foo', new EqualityFilter('foo', 'bar'))); $messageFrom = new LdapMessageResponse(1, new CompareResponse(ResultCode::COMPARE_FALSE)); @@ -104,7 +109,7 @@ public function it_should_handle_a_response_with_non_error_codes(ClientQueue $qu )->shouldBeEqualTo($messageFrom); } - public function it_should_throw_an_operation_exception_on_errors(ClientQueue $queue): void + public function it_should_throw_an_operation_exception_on_errors(): void { $messageRequest = new LdapMessageRequest(1, new CompareRequest('foo', new EqualityFilter('foo', 'bar'))); $messageFrom = new LdapMessageResponse(1, new CompareResponse(ResultCode::COMPARE_FALSE)); @@ -115,7 +120,7 @@ public function it_should_throw_an_operation_exception_on_errors(ClientQueue $qu )->shouldBeEqualTo($messageFrom); } - public function it_should_throw_a_specific_bind_exception_for_a_bind_response(ClientQueue $queue): void + public function it_should_throw_a_specific_bind_exception_for_a_bind_response(): void { $messageRequest = new LdapMessageRequest(1, new SimpleBindRequest('foo', 'bar')); $messageFrom = new LdapMessageResponse(1, new BindResponse(new LdapResult(ResultCode::INVALID_CREDENTIALS, 'foo', 'message'))); @@ -128,8 +133,6 @@ public function it_should_throw_a_specific_bind_exception_for_a_bind_response(Cl [ $messageRequest, $messageFrom, - $queue, - new ClientOptions(), ] ); } diff --git a/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientExtendedOperationHandlerSpec.php b/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientExtendedOperationHandlerSpec.php index c933cc76..b47bb4f0 100644 --- a/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientExtendedOperationHandlerSpec.php +++ b/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientExtendedOperationHandlerSpec.php @@ -30,9 +30,14 @@ class ClientExtendedOperationHandlerSpec extends ObjectBehavior { - public function let(ExtendedResponseFactory $responseFactory): void - { - $this->beConstructedWith($responseFactory); + public function let( + ClientQueue $queue, + ExtendedResponseFactory $responseFactory + ): void { + $this->beConstructedWith( + $queue, + $responseFactory + ); } public function it_is_initializable(): void @@ -71,7 +76,7 @@ public function it_should_handle_an_extended_response_that_has_a_mapped_class(Cl $context->getRequest()->willReturn($request); $context->messageToSend()->willReturn($extendedRequest); - $context->getQueue()->willReturn($queue); + $this->handleRequest($context)->getResponse()->shouldBeAnInstanceOf(PasswordModifyResponse::class); } } diff --git a/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientProtocolContextSpec.php b/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientProtocolContextSpec.php index 3c80afff..03e4f485 100644 --- a/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientProtocolContextSpec.php +++ b/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientProtocolContextSpec.php @@ -68,14 +68,4 @@ public function it_should_get_the_controls(): void { $this->getControls()->shouldBeEqualTo([]); } - - public function it_should_get_the_options(): void - { - $this->getOptions()->shouldBeLike(new ClientOptions()); - } - - public function it_should_get_the_queue(ClientQueue $queue): void - { - $this->getQueue()->shouldBeEqualTo($queue); - } } diff --git a/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientSaslBindHandlerSpec.php b/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientSaslBindHandlerSpec.php index 25e39933..1bdff106 100644 --- a/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientSaslBindHandlerSpec.php +++ b/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientSaslBindHandlerSpec.php @@ -41,11 +41,13 @@ class ClientSaslBindHandlerSpec extends ObjectBehavior private LdapMessageResponse $saslComplete; - public function let(Sasl $sasl, ClientProtocolContext $context, ClientQueue $queue, ClientProtocolHandler $protocolHandler): void - { + public function let( + Sasl $sasl, + ClientProtocolContext $context, + ClientQueue $queue, + ): void { $queue->sendMessage(Argument::any())->willReturn($queue); $context->getControls()->willReturn([]); - $context->getQueue()->willReturn($queue); $context->getRootDse()->willReturn(Entry::fromArray('', [ 'supportedSaslMechanisms' => ['DIGEST-MD5', 'CRAM-MD5'], ])); @@ -60,7 +62,10 @@ public function let(Sasl $sasl, ClientProtocolContext $context, ClientQueue $que new BindResponse(new LdapResult(ResultCode::SUCCESS), 'foo') ); - $this->beConstructedWith($sasl); + $this->beConstructedWith( + $queue, + $sasl, + ); } public function it_is_initializable(): void diff --git a/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientSearchHandlerSpec.php b/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientSearchHandlerSpec.php index d4453c4c..f332d6cc 100644 --- a/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientSearchHandlerSpec.php +++ b/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientSearchHandlerSpec.php @@ -42,7 +42,10 @@ class ClientSearchHandlerSpec extends ObjectBehavior public function let(ClientQueue $queue): void { - $this->beConstructedWith($queue); + $this->beConstructedWith( + $queue, + new ClientOptions(), + ); } public function it_is_initializable(): void @@ -73,8 +76,6 @@ public function it_should_send_a_request_and_get_a_response( $context->getRequest()->willReturn($request); $context->messageToSend()->willReturn($message); - $context->getQueue()->willReturn($queue); - $context->getOptions()->willReturn(new ClientOptions()); $this->handleRequest($context)->shouldBeEqualTo($response); } @@ -86,6 +87,11 @@ public function it_should_set_a_default_DN_for_a_request_that_has_none( LdapMessageRequest $message, SearchRequest $request ): void { + $this->beConstructedWith( + $queue, + (new ClientOptions()) + ->setBaseDn('cn=foo') + ); $queue->getMessage(1)->shouldBeCalled()->willReturn($response); $queue->sendMessage($message)->shouldBeCalledOnce(); @@ -95,11 +101,6 @@ public function it_should_set_a_default_DN_for_a_request_that_has_none( $context->messageToSend()->willReturn($message); $context->getRequest()->willReturn($request); - $context->getQueue()->willReturn($queue); - $context->getOptions()->willReturn( - (new ClientOptions()) - ->setBaseDn('cn=foo') - ); $request->setBaseDn('cn=foo') ->shouldBeCalledOnce(); diff --git a/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientSyncHandlerSpec.php b/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientSyncHandlerSpec.php index f38718f0..5193373a 100644 --- a/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientSyncHandlerSpec.php +++ b/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientSyncHandlerSpec.php @@ -50,7 +50,10 @@ class ClientSyncHandlerSpec extends ObjectBehavior public function let(ClientQueue $queue): void { - $this->beConstructedWith($queue); + $this->beConstructedWith( + $queue, + new ClientOptions(), + ); } public function it_is_initializable(): void @@ -76,6 +79,12 @@ public function it_should_set_a_default_DN_for_a_request_that_has_none( LdapMessageRequest $message, SyncRequest $request ): void { + $this->beConstructedWith( + $queue, + (new ClientOptions()) + ->setBaseDn('cn=foo') + ); + $queue->getMessage(1)->shouldBeCalled()->willReturn($response); $queue->sendMessage($message)->shouldBeCalledOnce(); @@ -85,11 +94,6 @@ public function it_should_set_a_default_DN_for_a_request_that_has_none( $context->messageToSend()->willReturn($message); $context->getRequest()->willReturn($request); - $context->getQueue()->willReturn($queue); - $context->getOptions()->willReturn( - (new ClientOptions()) - ->setBaseDn('cn=foo') - ); $request->setBaseDn('cn=foo') ->shouldBeCalledOnce(); diff --git a/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientUnbindHandlerSpec.php b/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientUnbindHandlerSpec.php index 60db4c89..cd5af2a5 100644 --- a/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientUnbindHandlerSpec.php +++ b/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandler/ClientUnbindHandlerSpec.php @@ -23,6 +23,11 @@ class ClientUnbindHandlerSpec extends ObjectBehavior { + public function let(ClientQueue $queue): void + { + $this->beConstructedWith($queue); + } + public function it_is_initializable(): void { $this->shouldHaveType(ClientUnbindHandler::class); @@ -33,14 +38,15 @@ public function it_should_implement_RequestHandlerInterface(): void $this->shouldBeAnInstanceOf(RequestHandlerInterface::class); } - public function it_should_send_the_message_and_close_the_queue(ClientProtocolContext $context, ClientQueue $queue): void - { + public function it_should_send_the_message_and_close_the_queue( + ClientProtocolContext $context, + ClientQueue $queue + ): void { $unbind = new LdapMessageRequest(1, new UnbindRequest()); $queue->sendMessage($unbind)->shouldBeCalledOnce(); $queue->close()->shouldBeCalledOnce(); $context->messageToSend()->willReturn($unbind); - $context->getQueue()->willReturn($queue); $this->handleRequest($context)->shouldBeNull(); } diff --git a/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandlerSpec.php b/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandlerSpec.php index 2f3af15c..884542cb 100644 --- a/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandlerSpec.php +++ b/tests/spec/FreeDSx/Ldap/Protocol/ClientProtocolHandlerSpec.php @@ -13,7 +13,6 @@ namespace spec\FreeDSx\Ldap\Protocol; -use FreeDSx\Ldap\ClientOptions; use FreeDSx\Ldap\Entry\Dn; use FreeDSx\Ldap\Entry\Entries; use FreeDSx\Ldap\Entry\Entry; @@ -66,7 +65,6 @@ public function let( ->willReturn(1); $this->beConstructedWith( - new ClientOptions(), $clientQueueInstantiator, $protocolHandlerFactory, );