diff --git a/src/Middleware/Push/AdapterPushHandler.php b/src/Middleware/Push/AdapterPushHandler.php index cfb07fa6..c4ebc90c 100644 --- a/src/Middleware/Push/AdapterPushHandler.php +++ b/src/Middleware/Push/AdapterPushHandler.php @@ -4,17 +4,20 @@ namespace Yiisoft\Queue\Middleware\Push; +use Yiisoft\Queue\Adapter\AdapterInterface; +use Yiisoft\Queue\Message\MessageInterface; + /** * @internal */ final class AdapterPushHandler implements MessageHandlerPushInterface { - public function handlePush(PushRequest $request): PushRequest + public function __construct( + private readonly AdapterInterface $adapter, + ) {} + + public function handlePush(MessageInterface $message): MessageInterface { - return $request->withMessage( - $request->getAdapter()->push( - $request->getMessage(), - ), - ); + return $this->adapter->push($message); } } diff --git a/src/Middleware/Push/Implementation/IdMiddleware.php b/src/Middleware/Push/Implementation/IdMiddleware.php index cd086d96..241ab647 100644 --- a/src/Middleware/Push/Implementation/IdMiddleware.php +++ b/src/Middleware/Push/Implementation/IdMiddleware.php @@ -5,22 +5,22 @@ namespace Yiisoft\Queue\Middleware\Push\Implementation; use Yiisoft\Queue\Message\IdEnvelope; -use Yiisoft\Queue\Middleware\Push\MiddlewarePushInterface; -use Yiisoft\Queue\Middleware\Push\PushRequest; +use Yiisoft\Queue\Message\MessageInterface; use Yiisoft\Queue\Middleware\Push\MessageHandlerPushInterface; +use Yiisoft\Queue\Middleware\Push\MiddlewarePushInterface; /** * A middleware for message ID setting. */ final class IdMiddleware implements MiddlewarePushInterface { - public function processPush(PushRequest $request, MessageHandlerPushInterface $handler): PushRequest + public function processPush(MessageInterface $message, MessageHandlerPushInterface $handler): MessageInterface { - $meta = $request->getMessage()->getMetadata(); + $meta = $message->getMetadata(); if (empty($meta[IdEnvelope::MESSAGE_ID_KEY])) { - $request = $request->withMessage(new IdEnvelope($request->getMessage(), uniqid('yii3-message-', true))); + $message = new IdEnvelope($message, uniqid('yii3-message-', true)); } - return $handler->handlePush($request); + return $handler->handlePush($message); } } diff --git a/src/Middleware/Push/MessageHandlerPushInterface.php b/src/Middleware/Push/MessageHandlerPushInterface.php index 8db45bff..a3c4dfbc 100644 --- a/src/Middleware/Push/MessageHandlerPushInterface.php +++ b/src/Middleware/Push/MessageHandlerPushInterface.php @@ -4,7 +4,9 @@ namespace Yiisoft\Queue\Middleware\Push; +use Yiisoft\Queue\Message\MessageInterface; + interface MessageHandlerPushInterface { - public function handlePush(PushRequest $request): PushRequest; + public function handlePush(MessageInterface $message): MessageInterface; } diff --git a/src/Middleware/Push/MiddlewareFactoryPush.php b/src/Middleware/Push/MiddlewareFactoryPush.php index 0cb151fc..19e5da12 100644 --- a/src/Middleware/Push/MiddlewareFactoryPush.php +++ b/src/Middleware/Push/MiddlewareFactoryPush.php @@ -10,6 +10,7 @@ use Yiisoft\Definitions\Exception\InvalidConfigException; use Yiisoft\Definitions\Helpers\DefinitionValidator; use Yiisoft\Injector\Injector; +use Yiisoft\Queue\Message\MessageInterface; use Yiisoft\Queue\Middleware\CallableFactory; use Yiisoft\Queue\Middleware\InvalidCallableConfigurationException; use Yiisoft\Queue\Middleware\InvalidMiddlewareDefinitionException; @@ -36,16 +37,16 @@ public function __construct( * * - A middleware object. * - A name of a middleware class. The middleware instance will be obtained from container and executed. - * - A callable with `function(ServerRequestInterface $request, RequestHandlerInterface $handler): - * ResponseInterface` signature. + * - A callable with `function(MessageInterface $message, MessageHandlerPushInterface $handler): + * MessageInterface` signature. * - A controller handler action in format `[TestController::class, 'index']`. `TestController` instance will * be created and `index()` method will be executed. * - A function returning a middleware. The middleware returned will be executed. * * For handler action and callable * typed parameters are automatically injected using dependency injection container. - * Current request and handler could be obtained by type-hinting for {@see ServerRequestInterface} - * and {@see RequestHandlerInterface}. + * Current message and handler could be obtained by type-hinting for {@see MessageInterface} + * and {@see MessageHandlerPushInterface}. * * @throws InvalidMiddlewareDefinitionException * @@ -96,15 +97,15 @@ public function __construct( $this->callback = $callback; } - public function processPush(PushRequest $request, MessageHandlerPushInterface $handler): PushRequest + public function processPush(MessageInterface $message, MessageHandlerPushInterface $handler): MessageInterface { - $response = (new Injector($this->container))->invoke($this->callback, [$request, $handler]); - if ($response instanceof PushRequest) { + $response = (new Injector($this->container))->invoke($this->callback, [$message, $handler]); + if ($response instanceof MessageInterface) { return $response; } if ($response instanceof MiddlewarePushInterface) { - return $response->processPush($request, $handler); + return $response->processPush($message, $handler); } throw new InvalidMiddlewareDefinitionException($this->callback); diff --git a/src/Middleware/Push/MiddlewarePushInterface.php b/src/Middleware/Push/MiddlewarePushInterface.php index 99cc85ca..ee21645a 100644 --- a/src/Middleware/Push/MiddlewarePushInterface.php +++ b/src/Middleware/Push/MiddlewarePushInterface.php @@ -4,7 +4,9 @@ namespace Yiisoft\Queue\Middleware\Push; +use Yiisoft\Queue\Message\MessageInterface; + interface MiddlewarePushInterface { - public function processPush(PushRequest $request, MessageHandlerPushInterface $handler): PushRequest; + public function processPush(MessageInterface $message, MessageHandlerPushInterface $handler): MessageInterface; } diff --git a/src/Middleware/Push/MiddlewarePushStack.php b/src/Middleware/Push/MiddlewarePushStack.php index a72a373e..97972461 100644 --- a/src/Middleware/Push/MiddlewarePushStack.php +++ b/src/Middleware/Push/MiddlewarePushStack.php @@ -5,6 +5,7 @@ namespace Yiisoft\Queue\Middleware\Push; use Closure; +use Yiisoft\Queue\Message\MessageInterface; final class MiddlewarePushStack implements MessageHandlerPushInterface { @@ -26,14 +27,14 @@ public function __construct( private readonly MessageHandlerPushInterface $finishHandler, ) {} - public function handlePush(PushRequest $request): PushRequest + public function handlePush(MessageInterface $message): MessageInterface { if ($this->stack === null) { $this->build(); } /** @psalm-suppress PossiblyNullReference */ - return $this->stack->handlePush($request); + return $this->stack->handlePush($message); } private function build(): void @@ -60,13 +61,13 @@ public function __construct( private readonly MessageHandlerPushInterface $handler, ) {} - public function handlePush(PushRequest $request): PushRequest + public function handlePush(MessageInterface $message): MessageInterface { if ($this->middleware === null) { $this->middleware = ($this->middlewareFactory)(); } - return $this->middleware->processPush($request, $this->handler); + return $this->middleware->processPush($message, $this->handler); } }; } diff --git a/src/Middleware/Push/PushMiddlewareDispatcher.php b/src/Middleware/Push/PushMiddlewareDispatcher.php index 86532550..9a8379a8 100644 --- a/src/Middleware/Push/PushMiddlewareDispatcher.php +++ b/src/Middleware/Push/PushMiddlewareDispatcher.php @@ -5,6 +5,7 @@ namespace Yiisoft\Queue\Middleware\Push; use Closure; +use Yiisoft\Queue\Message\MessageInterface; final class PushMiddlewareDispatcher { @@ -27,20 +28,20 @@ public function __construct( } /** - * Dispatch request through middleware to get response. + * Dispatch message through middleware to get response. * - * @param PushRequest $request Request to pass to middleware. + * @param MessageInterface $message Message to pass to middleware. * @param MessageHandlerPushInterface $finishHandler Handler to use in case no middleware produced a response. */ public function dispatch( - PushRequest $request, + MessageInterface $message, MessageHandlerPushInterface $finishHandler, - ): PushRequest { + ): MessageInterface { if ($this->stack === null) { $this->stack = new MiddlewarePushStack($this->buildMiddlewares(), $finishHandler); } - return $this->stack->handlePush($request); + return $this->stack->handlePush($message); } /** diff --git a/src/Middleware/Push/PushRequest.php b/src/Middleware/Push/PushRequest.php deleted file mode 100644 index 88786876..00000000 --- a/src/Middleware/Push/PushRequest.php +++ /dev/null @@ -1,42 +0,0 @@ -message; - } - - public function getAdapter(): AdapterInterface - { - return $this->adapter; - } - - public function withMessage(MessageInterface $message): self - { - $instance = clone $this; - $instance->message = $message; - - return $instance; - } - - public function withAdapter(AdapterInterface $adapter): self - { - $instance = clone $this; - $instance->adapter = $adapter; - - return $instance; - } -} diff --git a/src/Queue.php b/src/Queue.php index b3507557..553b4f13 100644 --- a/src/Queue.php +++ b/src/Queue.php @@ -13,7 +13,6 @@ use Yiisoft\Queue\Middleware\Push\MessageHandlerPushInterface; use Yiisoft\Queue\Middleware\Push\MiddlewarePushInterface; use Yiisoft\Queue\Middleware\Push\PushMiddlewareDispatcher; -use Yiisoft\Queue\Middleware\Push\PushRequest; use Yiisoft\Queue\Worker\WorkerInterface; use Yiisoft\Queue\Message\IdEnvelope; use Yiisoft\Queue\Provider\QueueProviderInterface; @@ -38,7 +37,7 @@ public function __construct( ) { $this->name = StringNormalizer::normalize($name); $this->middlewareDefinitions = $middlewareDefinitions; - $this->adapterPushHandler = new AdapterPushHandler(); + $this->adapterPushHandler = new AdapterPushHandler($this->adapter); } public function getName(): string @@ -55,10 +54,10 @@ public function push( ['handlerName' => $message->getHandlerName()], ); - $request = new PushRequest($message, $this->adapter); - $message = $this->pushMiddlewareDispatcher - ->dispatch($request, $this->createPushHandler(...$middlewareDefinitions)) - ->getMessage(); + $message = $this->pushMiddlewareDispatcher->dispatch( + $message, + $this->createPushHandler(...$middlewareDefinitions), + ); /** @var string $messageId */ $messageId = $message->getMetadata()[IdEnvelope::MESSAGE_ID_KEY] ?? 'null'; @@ -145,11 +144,11 @@ public function __construct( private readonly array $middlewares, ) {} - public function handlePush(PushRequest $request): PushRequest + public function handlePush(MessageInterface $message): MessageInterface { return $this->dispatcher ->withMiddlewares($this->middlewares) - ->dispatch($request, $this->adapterPushHandler); + ->dispatch($message, $this->adapterPushHandler); } }; } diff --git a/tests/Integration/Support/TestMiddleware.php b/tests/Integration/Support/TestMiddleware.php index 81f55e4f..1686d8c6 100644 --- a/tests/Integration/Support/TestMiddleware.php +++ b/tests/Integration/Support/TestMiddleware.php @@ -5,25 +5,23 @@ namespace Yiisoft\Queue\Tests\Integration\Support; use Yiisoft\Queue\Message\Message; +use Yiisoft\Queue\Message\MessageInterface; use Yiisoft\Queue\Middleware\Consume\ConsumeRequest; use Yiisoft\Queue\Middleware\Consume\MessageHandlerConsumeInterface; use Yiisoft\Queue\Middleware\Consume\MiddlewareConsumeInterface; use Yiisoft\Queue\Middleware\Push\MessageHandlerPushInterface; use Yiisoft\Queue\Middleware\Push\MiddlewarePushInterface; -use Yiisoft\Queue\Middleware\Push\PushRequest; final class TestMiddleware implements MiddlewarePushInterface, MiddlewareConsumeInterface { public function __construct(private readonly string $stage) {} - public function processPush(PushRequest $request, MessageHandlerPushInterface $handler): PushRequest + public function processPush(MessageInterface $message, MessageHandlerPushInterface $handler): MessageInterface { - $message = $request->getMessage(); $stack = $message->getData(); $stack[] = $this->stage; - $messageNew = new Message($message->getHandlerName(), $stack); - return $handler->handlePush($request->withMessage($messageNew)); + return $handler->handlePush(new Message($message->getHandlerName(), $stack)); } public function processConsume(ConsumeRequest $request, MessageHandlerConsumeInterface $handler): ConsumeRequest diff --git a/tests/Unit/Middleware/Push/AdapterPushHandlerTest.php b/tests/Unit/Middleware/Push/AdapterPushHandlerTest.php index db2158ea..e22d160c 100644 --- a/tests/Unit/Middleware/Push/AdapterPushHandlerTest.php +++ b/tests/Unit/Middleware/Push/AdapterPushHandlerTest.php @@ -7,21 +7,19 @@ use PHPUnit\Framework\TestCase; use Yiisoft\Queue\Message\Message; use Yiisoft\Queue\Middleware\Push\AdapterPushHandler; -use Yiisoft\Queue\Middleware\Push\PushRequest; use Yiisoft\Queue\Tests\App\FakeAdapter; final class AdapterPushHandlerTest extends TestCase { public function testHandlePushUsesAdapter(): void { - $handler = new AdapterPushHandler(); $adapter = new FakeAdapter(); + $handler = new AdapterPushHandler($adapter); $message = new Message('handler', 'data'); - $request = new PushRequest($message, $adapter); - $result = $handler->handlePush($request); + $result = $handler->handlePush($message); - self::assertSame($message, $result->getMessage()); + self::assertSame($message, $result); self::assertSame([$message], $adapter->pushMessages); } } diff --git a/tests/Unit/Middleware/Push/Implementation/IdMiddlewareTest.php b/tests/Unit/Middleware/Push/Implementation/IdMiddlewareTest.php index 071b8892..febf238f 100644 --- a/tests/Unit/Middleware/Push/Implementation/IdMiddlewareTest.php +++ b/tests/Unit/Middleware/Push/Implementation/IdMiddlewareTest.php @@ -9,15 +9,12 @@ use Yiisoft\Queue\Message\Message; use Yiisoft\Queue\Middleware\Push\Implementation\IdMiddleware; use Yiisoft\Queue\Middleware\Push\MessageHandlerPushInterface; -use Yiisoft\Queue\Middleware\Push\PushRequest; -use Yiisoft\Queue\Stubs\StubAdapter; final class IdMiddlewareTest extends TestCase { public function testWithId(): void { $message = new Message('test', null, [IdEnvelope::MESSAGE_ID_KEY => 'test-id']); - $originalRequest = new PushRequest($message, new StubAdapter()); $handler = $this->createMock(MessageHandlerPushInterface::class); $handler->expects($this->once()) @@ -25,19 +22,18 @@ public function testWithId(): void ->willReturnArgument(0); $middleware = new IdMiddleware(); - $finalRequest = $middleware->processPush($originalRequest, $handler); + $result = $middleware->processPush($message, $handler); - $this->assertSame($originalRequest, $finalRequest); - $this->assertNotInstanceOf(IdEnvelope::class, $finalRequest->getMessage()); - $this->assertEquals('test-id', $finalRequest->getMessage()->getMetadata()[IdEnvelope::MESSAGE_ID_KEY]); - $this->assertSame($originalRequest->getMessage()->getData(), $finalRequest->getMessage()->getData()); - $this->assertSame($originalRequest->getMessage()->getHandlerName(), $finalRequest->getMessage()->getHandlerName()); + $this->assertSame($message, $result); + $this->assertNotInstanceOf(IdEnvelope::class, $result); + $this->assertEquals('test-id', $result->getMetadata()[IdEnvelope::MESSAGE_ID_KEY]); + $this->assertSame($message->getData(), $result->getData()); + $this->assertSame($message->getHandlerName(), $result->getHandlerName()); } public function testWithoutId(): void { $message = new Message('test', null); - $originalRequest = new PushRequest($message, new StubAdapter()); $handler = $this->createMock(MessageHandlerPushInterface::class); $handler->expects($this->once()) @@ -45,12 +41,12 @@ public function testWithoutId(): void ->willReturnArgument(0); $middleware = new IdMiddleware(); - $finalRequest = $middleware->processPush($originalRequest, $handler); + $result = $middleware->processPush($message, $handler); - $this->assertInstanceOf(IdEnvelope::class, $finalRequest->getMessage()); - $this->assertNotSame($originalRequest, $finalRequest); - $this->assertNotEmpty($finalRequest->getMessage()->getMetadata()[IdEnvelope::MESSAGE_ID_KEY] ?? null); - $this->assertSame($originalRequest->getMessage()->getData(), $finalRequest->getMessage()->getData()); - $this->assertSame($originalRequest->getMessage()->getHandlerName(), $finalRequest->getMessage()->getHandlerName()); + $this->assertInstanceOf(IdEnvelope::class, $result); + $this->assertNotSame($message, $result); + $this->assertNotEmpty($result->getMetadata()[IdEnvelope::MESSAGE_ID_KEY] ?? null); + $this->assertSame($message->getData(), $result->getData()); + $this->assertSame($message->getHandlerName(), $result->getHandlerName()); } } diff --git a/tests/Unit/Middleware/Push/MiddlewareDispatcherTest.php b/tests/Unit/Middleware/Push/MiddlewareDispatcherTest.php index 301540a3..0dafe901 100644 --- a/tests/Unit/Middleware/Push/MiddlewareDispatcherTest.php +++ b/tests/Unit/Middleware/Push/MiddlewareDispatcherTest.php @@ -10,11 +10,11 @@ use Yiisoft\Test\Support\Container\SimpleContainer; use Yiisoft\Queue\Adapter\AdapterInterface; use Yiisoft\Queue\Message\Message; +use Yiisoft\Queue\Message\MessageInterface; use Yiisoft\Queue\Middleware\CallableFactory; use Yiisoft\Queue\Middleware\Push\MessageHandlerPushInterface; use Yiisoft\Queue\Middleware\Push\MiddlewareFactoryPush; use Yiisoft\Queue\Middleware\Push\PushMiddlewareDispatcher; -use Yiisoft\Queue\Middleware\Push\PushRequest; use Yiisoft\Queue\Tests\App\FakeAdapter; use Yiisoft\Queue\Tests\Unit\Middleware\Push\Support\TestCallableMiddleware; use Yiisoft\Queue\Tests\Unit\Middleware\Push\Support\TestMiddleware; @@ -23,89 +23,74 @@ final class MiddlewareDispatcherTest extends TestCase { public function testCallableMiddlewareCalled(): void { - $request = $this->getPushRequest(); + $message = $this->getMessage(); $dispatcher = $this->createDispatcher()->withMiddlewares( [ - static function (PushRequest $request, AdapterInterface $adapter): PushRequest { - /** @var FakeAdapter $adapter */ - return $request - ->withMessage(new Message('test', 'New closure test data')) - ->withAdapter($adapter->withChannel('closure-channel')); + static function (MessageInterface $message, MessageHandlerPushInterface $handler): MessageInterface { + return new Message('test', 'New closure test data'); }, ], ); - $request = $dispatcher->dispatch($request, $this->getRequestHandler()); - $this->assertSame('New closure test data', $request->getMessage()->getData()); - /** - * @psalm-suppress NoInterfaceProperties - * @psalm-suppress PossiblyNullPropertyFetch - */ - $this->assertSame('closure-channel', $request->getAdapter()->channel); + $result = $dispatcher->dispatch($message, $this->getRequestHandler()); + $this->assertSame('New closure test data', $result->getData()); } public function testArrayMiddlewareCallableDefinition(): void { - $request = $this->getPushRequest(); + $message = $this->getMessage(); $container = $this->createContainer( [ TestCallableMiddleware::class => new TestCallableMiddleware(), ], ); $dispatcher = $this->createDispatcher($container)->withMiddlewares([[TestCallableMiddleware::class, 'index']]); - $request = $dispatcher->dispatch($request, $this->getRequestHandler()); - $this->assertSame('New test data', $request->getMessage()->getData()); + $result = $dispatcher->dispatch($message, $this->getRequestHandler()); + $this->assertSame('New test data', $result->getData()); } public function testFactoryArrayDefinition(): void { - $request = $this->getPushRequest(); + $message = $this->getMessage(); $container = $this->createContainer(); $definition = [ 'class' => TestMiddleware::class, '__construct()' => ['message' => 'New test data from the definition'], ]; $dispatcher = $this->createDispatcher($container)->withMiddlewares([$definition]); - $request = $dispatcher->dispatch($request, $this->getRequestHandler()); - $this->assertSame('New test data from the definition', $request->getMessage()->getData()); + $result = $dispatcher->dispatch($message, $this->getRequestHandler()); + $this->assertSame('New test data from the definition', $result->getData()); } public function testMiddlewareFullStackCalled(): void { - $request = $this->getPushRequest(); + $message = $this->getMessage(); - $middleware1 = static function (PushRequest $request, MessageHandlerPushInterface $handler): PushRequest { - $request = $request->withMessage(new Message($request->getMessage()->getHandlerName(), 'new test data')); - - return $handler->handlePush($request); + $middleware1 = static function (MessageInterface $message, MessageHandlerPushInterface $handler): MessageInterface { + return $handler->handlePush(new Message($message->getHandlerName(), 'new test data')); }; - $middleware2 = static function (PushRequest $request, MessageHandlerPushInterface $handler): PushRequest { - /** @var FakeAdapter $adapter */ - $adapter = $request->getAdapter(); - $request = $request->withAdapter($adapter->withChannel('new channel')); - - return $handler->handlePush($request); + $middleware2 = static function (MessageInterface $message, MessageHandlerPushInterface $handler): MessageInterface { + return $handler->handlePush($message); }; $dispatcher = $this->createDispatcher()->withMiddlewares([$middleware1, $middleware2]); - $request = $dispatcher->dispatch($request, $this->getRequestHandler()); - $this->assertSame('new test data', $request->getMessage()->getData()); - $this->assertSame('new channel', $request->getAdapter()->channel); + $result = $dispatcher->dispatch($message, $this->getRequestHandler()); + $this->assertSame('new test data', $result->getData()); } public function testMiddlewareStackInterrupted(): void { - $request = $this->getPushRequest(); + $message = $this->getMessage(); - $middleware1 = static fn(PushRequest $request, MessageHandlerPushInterface $handler): PushRequest => $request->withMessage(new Message($request->getMessage()->getHandlerName(), 'first')); - $middleware2 = static fn(PushRequest $request, MessageHandlerPushInterface $handler): PushRequest => $request->withMessage(new Message($request->getMessage()->getHandlerName(), 'second')); + $middleware1 = static fn(MessageInterface $message, MessageHandlerPushInterface $handler): MessageInterface => new Message($message->getHandlerName(), 'first'); + $middleware2 = static fn(MessageInterface $message, MessageHandlerPushInterface $handler): MessageInterface => new Message($message->getHandlerName(), 'second'); $dispatcher = $this->createDispatcher()->withMiddlewares([$middleware1, $middleware2]); - $request = $dispatcher->dispatch($request, $this->getRequestHandler()); - $this->assertSame('first', $request->getMessage()->getData()); + $result = $dispatcher->dispatch($message, $this->getRequestHandler()); + $this->assertSame('first', $result->getData()); } public static function dataHasMiddlewares(): array @@ -133,7 +118,7 @@ public function testImmutability(): void public function testResetStackOnWithMiddlewares(): void { - $request = $this->getPushRequest(); + $message = $this->getMessage(); $container = $this->createContainer( [ TestCallableMiddleware::class => new TestCallableMiddleware(), @@ -144,20 +129,20 @@ public function testResetStackOnWithMiddlewares(): void $dispatcher = $this ->createDispatcher($container) ->withMiddlewares([[TestCallableMiddleware::class, 'index']]); - $dispatcher->dispatch($request, $this->getRequestHandler()); + $dispatcher->dispatch($message, $this->getRequestHandler()); $dispatcher = $dispatcher->withMiddlewares([TestMiddleware::class]); - $request = $dispatcher->dispatch($request, $this->getRequestHandler()); + $result = $dispatcher->dispatch($message, $this->getRequestHandler()); - self::assertSame('New middleware test data', $request->getMessage()->getData()); + self::assertSame('New middleware test data', $result->getData()); } private function getRequestHandler(): MessageHandlerPushInterface { return new class implements MessageHandlerPushInterface { - public function handlePush(PushRequest $request): PushRequest + public function handlePush(MessageInterface $message): MessageInterface { - return $request; + return $message; } }; } @@ -178,8 +163,8 @@ private function createContainer(array $instances = []): ContainerInterface return new SimpleContainer($instances); } - private function getPushRequest(): PushRequest + private function getMessage(): MessageInterface { - return new PushRequest(new Message('handler', 'data'), new FakeAdapter()); + return new Message('handler', 'data'); } } diff --git a/tests/Unit/Middleware/Push/MiddlewareFactoryTest.php b/tests/Unit/Middleware/Push/MiddlewareFactoryTest.php index c5cfcede..dfa81afd 100644 --- a/tests/Unit/Middleware/Push/MiddlewareFactoryTest.php +++ b/tests/Unit/Middleware/Push/MiddlewareFactoryTest.php @@ -10,13 +10,13 @@ use Yiisoft\Test\Support\Container\SimpleContainer; use Yiisoft\Queue\Adapter\AdapterInterface; use Yiisoft\Queue\Message\Message; +use Yiisoft\Queue\Message\MessageInterface; use Yiisoft\Queue\Middleware\CallableFactory; use Yiisoft\Queue\Middleware\InvalidMiddlewareDefinitionException; use Yiisoft\Queue\Middleware\Push\MessageHandlerPushInterface; use Yiisoft\Queue\Middleware\Push\MiddlewareFactoryPush; use Yiisoft\Queue\Middleware\Push\MiddlewareFactoryPushInterface; use Yiisoft\Queue\Middleware\Push\MiddlewarePushInterface; -use Yiisoft\Queue\Middleware\Push\PushRequest; use Yiisoft\Queue\Tests\App\FakeAdapter; use Yiisoft\Queue\Tests\Unit\Middleware\Push\Support\InvalidController; use Yiisoft\Queue\Tests\Unit\Middleware\Push\Support\TestCallableMiddleware; @@ -38,9 +38,9 @@ public function testCreateCallableFromArray(): void self::assertSame( 'New test data', $middleware->processPush( - $this->getPushRequest(), + $this->getMessage(), $this->createMock(MessageHandlerPushInterface::class), - )->getMessage()->getData(), + )->getData(), ); } @@ -48,16 +48,16 @@ public function testCreateFromClosureResponse(): void { $container = $this->getContainer([TestCallableMiddleware::class => new TestCallableMiddleware()]); $middleware = $this->getMiddlewareFactory($container)->createPushMiddleware( - static function (): PushRequest { - return new PushRequest(new Message('test', 'test data'), new FakeAdapter()); + static function (): MessageInterface { + return new Message('test', 'test data'); }, ); self::assertSame( 'test data', $middleware->processPush( - $this->getPushRequest(), + $this->getMessage(), $this->createMock(MessageHandlerPushInterface::class), - )->getMessage()->getData(), + )->getData(), ); } @@ -72,9 +72,9 @@ static function (): MiddlewarePushInterface { self::assertSame( 'New middleware test data', $middleware->processPush( - $this->getPushRequest(), + $this->getMessage(), $this->createMock(MessageHandlerPushInterface::class), - )->getMessage()->getData(), + )->getData(), ); } @@ -86,9 +86,9 @@ public function testCreateWithUseParamsMiddleware(): void self::assertSame( 'New middleware test data', $middleware->processPush( - $this->getPushRequest(), + $this->getMessage(), $this->getRequestHandler(), - )->getMessage()->getData(), + )->getData(), ); } @@ -96,14 +96,13 @@ public function testCreateWithTestCallableMiddleware(): void { $container = $this->getContainer([TestCallableMiddleware::class => new TestCallableMiddleware()]); $middleware = $this->getMiddlewareFactory($container)->createPushMiddleware([TestCallableMiddleware::class, 'index']); - $request = $this->getPushRequest(); self::assertSame( 'New test data', $middleware->processPush( - $request, + $this->getMessage(), $this->getRequestHandler(), - )->getMessage()->getData(), + )->getData(), ); } @@ -137,7 +136,7 @@ public function testInvalidMiddlewareWithWrongController(): void $this->expectException(InvalidMiddlewareDefinitionException::class); $middleware->processPush( - $this->getPushRequest(), + $this->getMessage(), $this->createMock(MessageHandlerPushInterface::class), ); } @@ -157,15 +156,15 @@ private function getContainer(array $instances = []): ContainerInterface private function getRequestHandler(): MessageHandlerPushInterface { return new class implements MessageHandlerPushInterface { - public function handlePush(PushRequest $request): PushRequest + public function handlePush(MessageInterface $message): MessageInterface { - return $request; + return $message; } }; } - private function getPushRequest(): PushRequest + private function getMessage(): MessageInterface { - return new PushRequest(new Message('handler', 'data'), new FakeAdapter()); + return new Message('handler', 'data'); } } diff --git a/tests/Unit/Middleware/Push/PushRequestTest.php b/tests/Unit/Middleware/Push/PushRequestTest.php deleted file mode 100644 index 2c1533e5..00000000 --- a/tests/Unit/Middleware/Push/PushRequestTest.php +++ /dev/null @@ -1,22 +0,0 @@ -assertNotSame($pushRequest, $pushRequest->withAdapter(new FakeAdapter())); - $this->assertNotSame($pushRequest, $pushRequest->withMessage($message)); - } -} diff --git a/tests/Unit/Middleware/Push/Support/TestCallableMiddleware.php b/tests/Unit/Middleware/Push/Support/TestCallableMiddleware.php index 035ed999..369b0947 100644 --- a/tests/Unit/Middleware/Push/Support/TestCallableMiddleware.php +++ b/tests/Unit/Middleware/Push/Support/TestCallableMiddleware.php @@ -5,12 +5,12 @@ namespace Yiisoft\Queue\Tests\Unit\Middleware\Push\Support; use Yiisoft\Queue\Message\Message; -use Yiisoft\Queue\Middleware\Push\PushRequest; +use Yiisoft\Queue\Message\MessageInterface; final class TestCallableMiddleware { - public function index(PushRequest $request): PushRequest + public function index(MessageInterface $message): MessageInterface { - return $request->withMessage(new Message('test', 'New test data')); + return new Message('test', 'New test data'); } } diff --git a/tests/Unit/Middleware/Push/Support/TestMiddleware.php b/tests/Unit/Middleware/Push/Support/TestMiddleware.php index 3321c047..4d35b3f0 100644 --- a/tests/Unit/Middleware/Push/Support/TestMiddleware.php +++ b/tests/Unit/Middleware/Push/Support/TestMiddleware.php @@ -5,16 +5,16 @@ namespace Yiisoft\Queue\Tests\Unit\Middleware\Push\Support; use Yiisoft\Queue\Message\Message; +use Yiisoft\Queue\Message\MessageInterface; use Yiisoft\Queue\Middleware\Push\MessageHandlerPushInterface; use Yiisoft\Queue\Middleware\Push\MiddlewarePushInterface; -use Yiisoft\Queue\Middleware\Push\PushRequest; final class TestMiddleware implements MiddlewarePushInterface { public function __construct(private readonly string $message = 'New middleware test data') {} - public function processPush(PushRequest $request, MessageHandlerPushInterface $handler): PushRequest + public function processPush(MessageInterface $message, MessageHandlerPushInterface $handler): MessageInterface { - return $request->withMessage(new Message('test', $this->message)); + return new Message('test', $this->message); } }