From fe4f606eeccd3d4924c309d1442e946ea0971f33 Mon Sep 17 00:00:00 2001 From: upgrader Date: Mon, 27 Jan 2025 12:10:29 +0000 Subject: [PATCH 1/3] Applied release group `ACP-4499 MessageBroker's publishing/consuming is idle by default.`, RG link https://api.release.spryker.com/release-group/5704 --- composer.lock | 69 ++++++++++--------- .../Zed/MessageBroker/MessageBrokerConfig.php | 15 ++++ .../MessageBrokerDependencyProvider.php | 11 +++ 3 files changed, 61 insertions(+), 34 deletions(-) diff --git a/composer.lock b/composer.lock index 310c7ee5fa..2f088d9fbc 100644 --- a/composer.lock +++ b/composer.lock @@ -28604,23 +28604,24 @@ }, { "name": "spryker/kernel-app", - "version": "1.3.0", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/spryker/kernel-app.git", - "reference": "3dd9df5a35e9c9f40063573d92e7e13b256a4fa9" + "reference": "52a490d6e9d95af28f74202163b9bdf8aa941869" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/kernel-app/zipball/3dd9df5a35e9c9f40063573d92e7e13b256a4fa9", - "reference": "3dd9df5a35e9c9f40063573d92e7e13b256a4fa9", + "url": "https://api.github.com/repos/spryker/kernel-app/zipball/52a490d6e9d95af28f74202163b9bdf8aa941869", + "reference": "52a490d6e9d95af28f74202163b9bdf8aa941869", "shasum": "" }, "require": { "php": ">=8.2", "spryker/guzzle": "^2.0.0", "spryker/kernel": "^3.30.0", - "spryker/message-broker-extension": "^1.0.0", + "spryker/message-broker-extension": "^1.3.0", + "spryker/propel-orm": "^1.0.0", "spryker/symfony": "^3.17.0", "spryker/transfer": "^3.27.0", "spryker/util-encoding": "^2.0.0" @@ -28653,9 +28654,9 @@ ], "description": "KernelApp module", "support": { - "source": "https://github.com/spryker/kernel-app/tree/1.3.0" + "source": "https://github.com/spryker/kernel-app/tree/1.4.0" }, - "time": "2024-11-28T12:12:52+00:00" + "time": "2025-01-22T12:05:10+00:00" }, { "name": "spryker/kernel-app-extension", @@ -29273,23 +29274,23 @@ }, { "name": "spryker/message-broker", - "version": "1.14.0", + "version": "1.15.0", "source": { "type": "git", "url": "https://github.com/spryker/message-broker.git", - "reference": "7bf69d90174665baec48bdbdecee55643a020080" + "reference": "a7c699c484fef9e9e31dffacacb0bd75e6e0d708" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/message-broker/zipball/7bf69d90174665baec48bdbdecee55643a020080", - "reference": "7bf69d90174665baec48bdbdecee55643a020080", + "url": "https://api.github.com/repos/spryker/message-broker/zipball/a7c699c484fef9e9e31dffacacb0bd75e6e0d708", + "reference": "a7c699c484fef9e9e31dffacacb0bd75e6e0d708", "shasum": "" }, "require": { "php": ">=8.2", "spryker/kernel": "^3.30.0", "spryker/log": "^3.0.0", - "spryker/message-broker-extension": "^1.2.0", + "spryker/message-broker-extension": "^1.3.0", "spryker/monolog": "^2.0.0", "spryker/symfony": "^3.10.0", "spryker/transfer": "^3.25.0", @@ -29328,9 +29329,9 @@ ], "description": "MessageBroker module", "support": { - "source": "https://github.com/spryker/message-broker/tree/1.14.0" + "source": "https://github.com/spryker/message-broker/tree/1.15.0" }, - "time": "2024-12-20T10:28:18+00:00" + "time": "2025-01-22T12:05:10+00:00" }, { "name": "spryker/message-broker-aws", @@ -29439,20 +29440,20 @@ }, { "name": "spryker/message-broker-extension", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/spryker/message-broker-extension.git", - "reference": "c7fee41058388c635c07fd3787b451a2736340d1" + "reference": "7e29bd3033704e8b03ff3ebb0600129ff7c5ebd3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/message-broker-extension/zipball/c7fee41058388c635c07fd3787b451a2736340d1", - "reference": "c7fee41058388c635c07fd3787b451a2736340d1", + "url": "https://api.github.com/repos/spryker/message-broker-extension/zipball/7e29bd3033704e8b03ff3ebb0600129ff7c5ebd3", + "reference": "7e29bd3033704e8b03ff3ebb0600129ff7c5ebd3", "shasum": "" }, "require": { - "php": ">=8.0" + "php": ">=8.2" }, "require-dev": { "spryker/code-sniffer": "*", @@ -29480,9 +29481,9 @@ ], "description": "MessageBrokerExtension module", "support": { - "source": "https://github.com/spryker/message-broker-extension/tree/1.2.0" + "source": "https://github.com/spryker/message-broker-extension/tree/1.3.0" }, - "time": "2023-07-21T13:09:09+00:00" + "time": "2025-01-22T12:05:10+00:00" }, { "name": "spryker/messenger", @@ -33656,16 +33657,16 @@ }, { "name": "spryker/product", - "version": "6.45.1", + "version": "6.46.0", "source": { "type": "git", "url": "https://github.com/spryker/product.git", - "reference": "cb0bbda00163fce4607548ce2cb8300347514a8c" + "reference": "6796e8278ecddf19ae11ea086db8950cfe997d46" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/product/zipball/cb0bbda00163fce4607548ce2cb8300347514a8c", - "reference": "cb0bbda00163fce4607548ce2cb8300347514a8c", + "url": "https://api.github.com/repos/spryker/product/zipball/6796e8278ecddf19ae11ea086db8950cfe997d46", + "reference": "6796e8278ecddf19ae11ea086db8950cfe997d46", "shasum": "" }, "require": { @@ -33676,7 +33677,7 @@ "spryker/key-builder": "^1.0.0", "spryker/locale": "^3.0.0 || ^4.0.0", "spryker/log": "^3.0.0", - "spryker/message-broker": "^1.0.0", + "spryker/message-broker": "^1.15.0", "spryker/message-broker-extension": "^1.0.0", "spryker/product-extension": "^1.5.0", "spryker/propel-orm": "^1.0.0", @@ -33716,9 +33717,9 @@ ], "description": "Product module", "support": { - "source": "https://github.com/spryker/product/tree/6.45.1" + "source": "https://github.com/spryker/product/tree/6.46.0" }, - "time": "2024-12-19T12:15:45+00:00" + "time": "2025-01-22T12:05:10+00:00" }, { "name": "spryker/product-abstract-data-feed", @@ -62301,16 +62302,16 @@ }, { "name": "spryker/testify", - "version": "3.57.0", + "version": "3.58.1", "source": { "type": "git", "url": "https://github.com/spryker/testify.git", - "reference": "ce3236d47e23d427e6e4972bcd93b998f1e8e829" + "reference": "d05f6ccc7f580492f9cf47b1aca296cc6a0d03fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/testify/zipball/ce3236d47e23d427e6e4972bcd93b998f1e8e829", - "reference": "ce3236d47e23d427e6e4972bcd93b998f1e8e829", + "url": "https://api.github.com/repos/spryker/testify/zipball/d05f6ccc7f580492f9cf47b1aca296cc6a0d03fb", + "reference": "d05f6ccc7f580492f9cf47b1aca296cc6a0d03fb", "shasum": "" }, "require": { @@ -62372,9 +62373,9 @@ ], "description": "Testify module", "support": { - "source": "https://github.com/spryker/testify/tree/3.57.0" + "source": "https://github.com/spryker/testify/tree/3.58.1" }, - "time": "2024-11-18T13:28:47+00:00" + "time": "2025-01-22T12:05:10+00:00" }, { "name": "spryker/testify-backend-api", diff --git a/src/Pyz/Zed/MessageBroker/MessageBrokerConfig.php b/src/Pyz/Zed/MessageBroker/MessageBrokerConfig.php index f252f61d03..436e0be642 100644 --- a/src/Pyz/Zed/MessageBroker/MessageBrokerConfig.php +++ b/src/Pyz/Zed/MessageBroker/MessageBrokerConfig.php @@ -28,4 +28,19 @@ public function getDefaultWorkerChannels(): array 'tax-commands', ]; } + + /** + * Specification: + * - Returns system worker channels used to retrieve service messages. + * + * @api + * + * @return list + */ + public function getSystemWorkerChannels(): array + { + return [ + 'app-events', + ]; + } } diff --git a/src/Pyz/Zed/MessageBroker/MessageBrokerDependencyProvider.php b/src/Pyz/Zed/MessageBroker/MessageBrokerDependencyProvider.php index 0e9df68d1b..6e0a50b522 100644 --- a/src/Pyz/Zed/MessageBroker/MessageBrokerDependencyProvider.php +++ b/src/Pyz/Zed/MessageBroker/MessageBrokerDependencyProvider.php @@ -10,6 +10,7 @@ namespace Pyz\Zed\MessageBroker; use Spryker\Zed\Asset\Communication\Plugin\MessageBroker\AssetMessageHandlerPlugin; +use Spryker\Zed\KernelApp\Communication\Plugin\MessageBroker\ActiveAppFilterMessageChannelPlugin; use Spryker\Zed\MessageBroker\Communication\Plugin\MessageBroker\CorrelationIdMessageAttributeProviderPlugin; use Spryker\Zed\MessageBroker\Communication\Plugin\MessageBroker\TenantActorMessageAttributeProviderPlugin; use Spryker\Zed\MessageBroker\Communication\Plugin\MessageBroker\TimestampMessageAttributeProviderPlugin; @@ -91,4 +92,14 @@ public function getMiddlewarePlugins(): array new ValidationMiddlewarePlugin(), ]; } + + /** + * @return array<\Spryker\Zed\MessageBrokerExtension\Dependency\Plugin\FilterMessageChannelPluginInterface> + */ + public function getFilterMessageChannelPlugins(): array + { + return [ + new ActiveAppFilterMessageChannelPlugin(), + ]; + } } From 418408b7367b75ea7d4460a6eea6c8c12de4cab1 Mon Sep 17 00:00:00 2001 From: Anton Zubariev Date: Mon, 27 Jan 2025 16:19:05 +0100 Subject: [PATCH 2/3] ACP-4499: Test fixes --- .../Business/SendMessageTest.php | 1 + .../Asset/Communication/AssetMessageTest.php | 3 + .../Presentation/PaymentMethodMessageCest.php | 5 + .../InitializeProductExportMessageTest.php | 1 + .../Communication/AddReviewsMessageTest.php | 1 + .../_support/Helper/MessageBrokerHelper.php | 28 ++++ .../_support/PaymentPresentationTester.php | 1 + .../SearchHttpCommunicationTester.php | 3 +- .../_support/TaxAppCommunicationTester.php | 1 + .../PyzTest/Zed/MessageBroker/codeception.yml | 21 +-- .../Communication/TaxAppConfigMessageTest.php | 108 ++++++++++++++ .../Zed/TaxApp/_data/tax_app.databuilder.xml | 32 ++++ .../Zed/TaxApp/_support/TaxAppTester.php | 140 ++++++++++++++++++ tests/PyzTest/Zed/TaxApp/codeception.yml | 35 +++++ 14 files changed, 370 insertions(+), 10 deletions(-) create mode 100644 tests/PyzTest/Zed/MessageBroker/_support/Helper/MessageBrokerHelper.php create mode 100644 tests/PyzTest/Zed/TaxApp/Communication/TaxAppConfigMessageTest.php create mode 100644 tests/PyzTest/Zed/TaxApp/_data/tax_app.databuilder.xml create mode 100644 tests/PyzTest/Zed/TaxApp/_support/TaxAppTester.php create mode 100644 tests/PyzTest/Zed/TaxApp/codeception.yml diff --git a/tests/PyzTest/Zed/MessageBroker/Business/SendMessageTest.php b/tests/PyzTest/Zed/MessageBroker/Business/SendMessageTest.php index 30771aa6be..edfcc7b380 100644 --- a/tests/PyzTest/Zed/MessageBroker/Business/SendMessageTest.php +++ b/tests/PyzTest/Zed/MessageBroker/Business/SendMessageTest.php @@ -52,6 +52,7 @@ public function testCheckAttributesBeforeSendingMessage(): void // Arrange $messageSenderPlugin = $this->createMock(MessageSenderPluginInterface::class); + $this->tester->setupMessageBrokerPlugins(); $this->tester->setMessageToSenderChannelNameMap(MessageBrokerTestMessageTransfer::class, static::CHANNEL_NAME); $this->tester->setChannelToTransportMap(static::CHANNEL_NAME, $messageSenderPlugin->getTransportName()); diff --git a/tests/PyzTest/Zed/MessageBroker/MessageHandlers/Asset/Communication/AssetMessageTest.php b/tests/PyzTest/Zed/MessageBroker/MessageHandlers/Asset/Communication/AssetMessageTest.php index 305924dfb9..adb0668165 100644 --- a/tests/PyzTest/Zed/MessageBroker/MessageHandlers/Asset/Communication/AssetMessageTest.php +++ b/tests/PyzTest/Zed/MessageBroker/MessageHandlers/Asset/Communication/AssetMessageTest.php @@ -52,6 +52,7 @@ public function testAssetAddedMessageIsSuccessfullyHandled(): void // Act $this->tester->setupMessageBroker($assetAddedTransfer::class, $channelName); + $this->tester->setupMessageBrokerPlugins(); $messageBrokerFacade = $this->tester->getLocator()->messageBroker()->facade(); $messageBrokerFacade->sendMessage($assetAddedTransfer); $messageBrokerFacade->startWorker($this->tester->buildMessageBrokerWorkerConfigTransfer([$channelName], 1)); @@ -73,6 +74,7 @@ public function testAssetUpdatedMessageIsSuccessfullyHandled(): void $slotName = 'header-top'; $this->tester->setupMessageBroker(AssetAddedTransfer::class, $channelName); + $this->tester->setupMessageBrokerPlugins(); $messageBrokerFacade = $this->tester->getLocator()->messageBroker()->facade(); $messageBrokerWorkerConfigTransfer = $this->tester->buildMessageBrokerWorkerConfigTransfer([$channelName], 1); $messageBrokerFacade->sendMessage( @@ -110,6 +112,7 @@ public function testAssetDeletedMessageIsSuccessfullyHandled(): void $assetUuid = Uuid::uuid4()->toString(); $this->tester->setupMessageBroker(AssetAddedTransfer::class, $channelName); + $this->tester->setupMessageBrokerPlugins(); $messageBrokerFacade = $this->tester->getLocator()->messageBroker()->facade(); $messageBrokerWorkerConfigTransfer = $this->tester->buildMessageBrokerWorkerConfigTransfer([$channelName], 1); $messageBrokerFacade->sendMessage( diff --git a/tests/PyzTest/Zed/MessageBroker/MessageHandlers/PaymentMethod/Presentation/PaymentMethodMessageCest.php b/tests/PyzTest/Zed/MessageBroker/MessageHandlers/PaymentMethod/Presentation/PaymentMethodMessageCest.php index 1f63dc5240..2b10d4ffd4 100644 --- a/tests/PyzTest/Zed/MessageBroker/MessageHandlers/PaymentMethod/Presentation/PaymentMethodMessageCest.php +++ b/tests/PyzTest/Zed/MessageBroker/MessageHandlers/PaymentMethod/Presentation/PaymentMethodMessageCest.php @@ -13,6 +13,7 @@ use Generated\Shared\Transfer\DeletePaymentMethodTransfer; use PyzTest\Zed\MessageBroker\PageObject\PaymentMethodPage; use PyzTest\Zed\MessageBroker\PaymentMethodPresentationTester; +use Spryker\Zed\MessageBroker\MessageBrokerDependencyProvider; /** * Auto-generated group annotations @@ -56,6 +57,8 @@ public function testAddPaymentMethodMessageIsSuccessfullyHandled(PaymentMethodPr // Act $channelName = 'payment-method-commands'; $I->setupMessageBroker(AddPaymentMethodTransfer::class, $channelName); + $I->setDependency(MessageBrokerDependencyProvider::PLUGINS_EXTERNAL_VALIDATOR, []); + $I->setDependency(MessageBrokerDependencyProvider::PLUGINS_FILTER_MESSAGE_CHANNEL, []); $messageBrokerFacade->sendMessage( $I->haveAddPaymentMethodTransfer( [ @@ -97,6 +100,8 @@ public function testPaymentMethodRemovedMessageIsSuccessfullyHandled(PaymentMeth $channelName = 'payment-method-commands'; $I->setupMessageBroker(AddPaymentMethodTransfer::class, $channelName); + $I->setDependency(MessageBrokerDependencyProvider::PLUGINS_EXTERNAL_VALIDATOR, []); + $I->setDependency(MessageBrokerDependencyProvider::PLUGINS_FILTER_MESSAGE_CHANNEL, []); $messageBrokerFacade->sendMessage( $I->haveAddPaymentMethodTransfer( [ diff --git a/tests/PyzTest/Zed/MessageBroker/MessageHandlers/Product/Communication/InitializeProductExportMessageTest.php b/tests/PyzTest/Zed/MessageBroker/MessageHandlers/Product/Communication/InitializeProductExportMessageTest.php index 228600923d..94f5677893 100644 --- a/tests/PyzTest/Zed/MessageBroker/MessageHandlers/Product/Communication/InitializeProductExportMessageTest.php +++ b/tests/PyzTest/Zed/MessageBroker/MessageHandlers/Product/Communication/InitializeProductExportMessageTest.php @@ -66,6 +66,7 @@ public function testInitializeProductExportMessageIsSuccessfullyHandled(): void // Act $this->tester->setupMessageBroker(InitializeProductExportTransfer::class, $channelName); + $this->tester->setupMessageBrokerPlugins(); $messageBrokerFacade = $this->tester->getLocator()->messageBroker()->facade(); $messageBrokerFacade->sendMessage( $this->tester->buildInitializeProductExportTransfer(), diff --git a/tests/PyzTest/Zed/MessageBroker/MessageHandlers/ProductReview/Communication/AddReviewsMessageTest.php b/tests/PyzTest/Zed/MessageBroker/MessageHandlers/ProductReview/Communication/AddReviewsMessageTest.php index 8b33f108a0..b1e7e2df47 100644 --- a/tests/PyzTest/Zed/MessageBroker/MessageHandlers/ProductReview/Communication/AddReviewsMessageTest.php +++ b/tests/PyzTest/Zed/MessageBroker/MessageHandlers/ProductReview/Communication/AddReviewsMessageTest.php @@ -44,6 +44,7 @@ public function testAddReviewsMessageIsSuccessfullyHandled(): void // Act $this->tester->setupMessageBroker($addReviewsTransfer::class, $channelName); + $this->tester->setupMessageBrokerPlugins(); $messageBrokerFacade = $this->tester->getLocator()->messageBroker()->facade(); $messageBrokerFacade->sendMessage($addReviewsTransfer); $messageBrokerFacade->startWorker($this->tester->buildMessageBrokerWorkerConfigTransfer([$channelName], 1)); diff --git a/tests/PyzTest/Zed/MessageBroker/_support/Helper/MessageBrokerHelper.php b/tests/PyzTest/Zed/MessageBroker/_support/Helper/MessageBrokerHelper.php new file mode 100644 index 0000000000..5660f742d6 --- /dev/null +++ b/tests/PyzTest/Zed/MessageBroker/_support/Helper/MessageBrokerHelper.php @@ -0,0 +1,28 @@ +getDependencyProviderHelper()->setDependency(MessageBrokerDependencyProvider::PLUGINS_EXTERNAL_VALIDATOR, []); + $this->getDependencyProviderHelper()->setDependency(MessageBrokerDependencyProvider::PLUGINS_FILTER_MESSAGE_CHANNEL, []); + } +} diff --git a/tests/PyzTest/Zed/MessageBroker/_support/PaymentPresentationTester.php b/tests/PyzTest/Zed/MessageBroker/_support/PaymentPresentationTester.php index 3a8e9fbfb1..3e8c0805f4 100644 --- a/tests/PyzTest/Zed/MessageBroker/_support/PaymentPresentationTester.php +++ b/tests/PyzTest/Zed/MessageBroker/_support/PaymentPresentationTester.php @@ -94,6 +94,7 @@ public function handlePaymentMessageTransfer(TransferInterface $paymentMessageTr { $channelName = 'payment-commands'; $this->setupMessageBroker($paymentMessageTransfer::class, $channelName); + $this->setupMessageBrokerPlugins(); $messageBrokerFacade = $this->getLocator()->messageBroker()->facade(); $messageBrokerFacade->sendMessage($paymentMessageTransfer); $messageBrokerFacade->startWorker( diff --git a/tests/PyzTest/Zed/MessageBroker/_support/SearchHttpCommunicationTester.php b/tests/PyzTest/Zed/MessageBroker/_support/SearchHttpCommunicationTester.php index 12e9173a7b..bb1b30b8dc 100644 --- a/tests/PyzTest/Zed/MessageBroker/_support/SearchHttpCommunicationTester.php +++ b/tests/PyzTest/Zed/MessageBroker/_support/SearchHttpCommunicationTester.php @@ -41,7 +41,7 @@ class SearchHttpCommunicationTester extends Actor /** * @return void */ - public function assertSearchHttpConfigExists(): void + public function assertSearchHttpConfigExistsForStore(): void { $searchHttpConfigEntity = $this->getSearchHttpConfigEntity(); @@ -99,6 +99,7 @@ public function handleSearchMessage(TransferInterface $searchMessageTransfer): v { $channelName = 'search-commands'; $this->setupMessageBroker($searchMessageTransfer::class, $channelName); + $this->setupMessageBrokerPlugins(); $messageBrokerFacade = $this->getLocator()->messageBroker()->facade(); $messageBrokerFacade->sendMessage($searchMessageTransfer); $messageBrokerFacade->startWorker( diff --git a/tests/PyzTest/Zed/MessageBroker/_support/TaxAppCommunicationTester.php b/tests/PyzTest/Zed/MessageBroker/_support/TaxAppCommunicationTester.php index 62987027f5..85c1a16183 100644 --- a/tests/PyzTest/Zed/MessageBroker/_support/TaxAppCommunicationTester.php +++ b/tests/PyzTest/Zed/MessageBroker/_support/TaxAppCommunicationTester.php @@ -119,6 +119,7 @@ public function handleTaxAppMessage(TransferInterface $configureTaxAppMessage): { $channelName = 'tax-commands'; $this->setupMessageBroker($configureTaxAppMessage::class, $channelName); + $this->setupMessageBrokerPlugins(); $messageBrokerFacade = $this->getLocator()->messageBroker()->facade(); $messageBrokerFacade->sendMessage($configureTaxAppMessage); $messageBrokerFacade->startWorker( diff --git a/tests/PyzTest/Zed/MessageBroker/codeception.yml b/tests/PyzTest/Zed/MessageBroker/codeception.yml index 388a2cb990..fcc28a6b16 100644 --- a/tests/PyzTest/Zed/MessageBroker/codeception.yml +++ b/tests/PyzTest/Zed/MessageBroker/codeception.yml @@ -31,6 +31,7 @@ suites: - \SprykerTest\Shared\Testify\Helper\DependencyHelper - \SprykerTest\Service\Container\Helper\ContainerHelper - \SprykerTest\Shared\Store\Helper\StoreDependencyHelper + - \PyzTest\Zed\MessageBroker\Helper\MessageBrokerHelper AssetCommunication: path: MessageHandlers/Asset/Communication @@ -54,6 +55,7 @@ suites: - \SprykerTest\Shared\Testify\Helper\DependencyHelper - \SprykerTest\Service\Container\Helper\ContainerHelper - \SprykerTest\Shared\Store\Helper\StoreDependencyHelper + - \PyzTest\Zed\MessageBroker\Helper\MessageBrokerHelper PaymentPresentation: path: MessageHandlers/Payment/Presentation @@ -81,6 +83,7 @@ suites: - \SprykerTest\Shared\Currency\Helper\CurrencyDataHelper - \SprykerTest\Zed\Sales\Helper\BusinessHelper - \SprykerTest\Shared\Store\Helper\StoreDataHelper + - \PyzTest\Zed\MessageBroker\Helper\MessageBrokerHelper PaymentMethodPresentation: path: MessageHandlers/PaymentMethod/Presentation @@ -134,6 +137,7 @@ suites: - \SprykerTest\Shared\Testify\Helper\DependencyHelper - \SprykerTest\Service\Container\Helper\ContainerHelper - \SprykerTest\Shared\Store\Helper\StoreDependencyHelper + - \PyzTest\Zed\MessageBroker\Helper\MessageBrokerHelper ProductReviewCommunication: path: MessageHandlers/ProductReview/Communication @@ -159,6 +163,7 @@ suites: - \SprykerTest\Shared\Testify\Helper\DependencyHelper - \SprykerTest\Service\Container\Helper\ContainerHelper - \SprykerTest\Shared\Store\Helper\StoreDependencyHelper + - \PyzTest\Zed\MessageBroker\Helper\MessageBrokerHelper SearchHttpCommunication: path: MessageHandlers/SearchHttp/Communication @@ -176,6 +181,7 @@ suites: - \SprykerTest\Zed\MessageBroker\Helper\InMemoryMessageBrokerHelper - \SprykerTest\Zed\MessageBroker\Helper\MessageBrokerHelper - \SprykerTest\Shared\Propel\Helper\TransactionHelper + - \PyzTest\Zed\MessageBroker\Helper\MessageBrokerHelper TaxAppCommunication: path: MessageHandlers/TaxApp/Communication @@ -185,20 +191,17 @@ suites: - Asserts - \PyzTest\Shared\Testify\Helper\Environment - \SprykerTest\Shared\Config\Helper\ConfigInit - - \SprykerTest\Shared\Testify\Helper\LocatorHelper: - projectNamespaces: [ 'Pyz' ] + - \SprykerTest\Shared\Testify\Helper\LocatorHelper: + projectNamespaces: ['Pyz'] + - \SprykerTest\Shared\Propel\Helper\ConnectionHelper - \SprykerTest\Shared\Testify\Helper\ConfigHelper - - \SprykerTest\Zed\Testify\Helper\Business\BusinessHelper - \SprykerTest\Zed\Testify\Helper\Business\DependencyProviderHelper - - \SprykerTest\Shared\Propel\Helper\ConnectionHelper - - \SprykerTest\Shared\Propel\Helper\TransactionHelper - \SprykerTest\Zed\MessageBroker\Helper\InMemoryMessageBrokerHelper - \SprykerTest\Zed\MessageBroker\Helper\MessageBrokerHelper - - \SprykerTest\Zed\ProductReview\Helper\ProductReviewHelper - - \SprykerTest\Shared\Product\Helper\ProductDataHelper - - \SprykerTest\Shared\Testify\Helper\DataCleanupHelper - \SprykerTest\Shared\Store\Helper\StoreDataHelper - \SprykerTest\Shared\Store\Helper\StoreReferenceHelper + - \SprykerTest\Shared\Store\Helper\StoreDependencyHelper - \SprykerTest\Shared\Testify\Helper\DependencyHelper - \SprykerTest\Service\Container\Helper\ContainerHelper - - \SprykerTest\Shared\Store\Helper\StoreDependencyHelper + - \SprykerTest\Shared\Propel\Helper\TransactionHelper + - \PyzTest\Zed\MessageBroker\Helper\MessageBrokerHelper diff --git a/tests/PyzTest/Zed/TaxApp/Communication/TaxAppConfigMessageTest.php b/tests/PyzTest/Zed/TaxApp/Communication/TaxAppConfigMessageTest.php new file mode 100644 index 0000000000..1080e3b1f4 --- /dev/null +++ b/tests/PyzTest/Zed/TaxApp/Communication/TaxAppConfigMessageTest.php @@ -0,0 +1,108 @@ +tester->getAllowedStore(); + $this->tester->setStoreReferenceData([$storeTransfer->getName() => static::STORE_REFERENCE]); + + $configureTaxAppTransfer = $this->tester->buildConfigureTaxAppTransfer([ + MessageAttributesTransfer::STORE_REFERENCE => static::STORE_REFERENCE, + MessageAttributesTransfer::TENANT_IDENTIFIER => static::TENANT_IDENTIFIER, + MessageAttributesTransfer::EMITTER => 'test', + ]); + + // Act + $this->tester->handleTaxAppMessage($configureTaxAppTransfer); + + // Assert + $this->tester->assertTaxAppConfigExistsForStore($storeTransfer); + } + + /** + * @return void + */ + protected function testDeleteTaxAppMessageIsSuccessfullyHandled(): void + { + // Arrange + $storeTransfer = $this->tester->getAllowedStore(); + $this->tester->setStoreReferenceData([$storeTransfer->getName() => static::STORE_REFERENCE]); + + $emitter = 'test'; + $this->createDummyTaxAppConfig($storeTransfer, $emitter); + + $deleteTaxAppTransfer = $this->tester->buildDeleteTaxAppTransfer([ + MessageAttributesTransfer::STORE_REFERENCE => static::STORE_REFERENCE, + MessageAttributesTransfer::TENANT_IDENTIFIER => static::TENANT_IDENTIFIER, + MessageAttributesTransfer::EMITTER => $emitter, + ]); + + // Act + $this->tester->handleTaxAppMessage($deleteTaxAppTransfer); + + // Assert + $this->tester->assertTaxAppConfigIsRemovedForStore($storeTransfer); + } + + /** + * @param \Generated\Shared\Transfer\StoreTransfer $storeTransfer + * @param string $emitter + * + * @return void + */ + protected function createDummyTaxAppConfig(StoreTransfer $storeTransfer, string $emitter): void + { + $this->tester->removeTaxAppConfigForStore($storeTransfer); + $this->tester->handleTaxAppMessage( + $this->tester->buildConfigureTaxAppTransfer([ + MessageAttributesTransfer::STORE_REFERENCE => static::STORE_REFERENCE, + MessageAttributesTransfer::TENANT_IDENTIFIER => static::TENANT_IDENTIFIER, + MessageAttributesTransfer::EMITTER => $emitter, + ]), + ); + } +} diff --git a/tests/PyzTest/Zed/TaxApp/_data/tax_app.databuilder.xml b/tests/PyzTest/Zed/TaxApp/_data/tax_app.databuilder.xml new file mode 100644 index 0000000000..39919a6d22 --- /dev/null +++ b/tests/PyzTest/Zed/TaxApp/_data/tax_app.databuilder.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/PyzTest/Zed/TaxApp/_support/TaxAppTester.php b/tests/PyzTest/Zed/TaxApp/_support/TaxAppTester.php new file mode 100644 index 0000000000..9d8649a7d5 --- /dev/null +++ b/tests/PyzTest/Zed/TaxApp/_support/TaxAppTester.php @@ -0,0 +1,140 @@ +getLocator()->store()->facade()->isDynamicStoreEnabled(); + } + + /** + * @param \Generated\Shared\Transfer\StoreTransfer $storeTransfer + * + * @return void + */ + public function assertTaxAppConfigExistsForStore(StoreTransfer $storeTransfer): void + { + $taxAppConfigEntity = $this->getTaxAppConfigEntity($storeTransfer); + + $this->assertNotNull($taxAppConfigEntity); + } + + /** + * @param \Generated\Shared\Transfer\StoreTransfer $storeTransfer + * + * @return void + */ + public function assertTaxAppConfigIsRemovedForStore(StoreTransfer $storeTransfer): void + { + $taxAppConfigEntity = $this->getTaxAppConfigEntity($storeTransfer); + + $this->assertNull($taxAppConfigEntity); + } + + /** + * @param array $messageAttributeSeedData + * + * @return \Generated\Shared\Transfer\ConfigureTaxAppTransfer + */ + public function buildConfigureTaxAppTransfer(array $messageAttributeSeedData = []): ConfigureTaxAppTransfer + { + return (new ConfigureTaxAppBuilder()) + ->withMessageAttributes($messageAttributeSeedData) + ->withApiUrls() + ->build(); + } + + /** + * @param array $messageAttributeSeedData + * + * @return \Generated\Shared\Transfer\DeleteTaxAppTransfer + */ + public function buildDeleteTaxAppTransfer(array $messageAttributeSeedData = []): DeleteTaxAppTransfer + { + return (new DeleteTaxAppBuilder()) + ->withMessageAttributes($messageAttributeSeedData) + ->build(); + } + + /** + * @param \Generated\Shared\Transfer\StoreTransfer $storeTransfer + * + * @return void + */ + public function removeTaxAppConfigForStore(StoreTransfer $storeTransfer): void + { + (new SpyTaxAppConfigQuery()) + ->filterByFkStore($storeTransfer->getIdStore()) + ->delete(); + } + + /** + * @param \Spryker\Shared\Kernel\Transfer\TransferInterface $configureTaxAppMessage + * + * @return void + */ + public function handleTaxAppMessage(TransferInterface $configureTaxAppMessage): void + { + $channelName = 'tax-commands'; + $this->setupMessageBroker($configureTaxAppMessage::class, $channelName); + $this->setupMessageBrokerPlugins(); + $messageBrokerFacade = $this->getLocator()->messageBroker()->facade(); + $messageBrokerFacade->sendMessage($configureTaxAppMessage); + $messageBrokerFacade->startWorker( + $this->buildMessageBrokerWorkerConfigTransfer([$channelName], 1), + ); + $this->resetInMemoryMessages(); + } + + /** + * @param \Generated\Shared\Transfer\StoreTransfer $storeTransfer + * + * @return \Orm\Zed\TaxApp\Persistence\SpyTaxAppConfig|null + */ + protected function getTaxAppConfigEntity(StoreTransfer $storeTransfer): ?SpyTaxAppConfig + { + return (new SpyTaxAppConfigQuery()) + ->filterByFkStore($storeTransfer->getIdStore()) + ->findOne(); + } +} diff --git a/tests/PyzTest/Zed/TaxApp/codeception.yml b/tests/PyzTest/Zed/TaxApp/codeception.yml new file mode 100644 index 0000000000..0b5ae8dbbd --- /dev/null +++ b/tests/PyzTest/Zed/TaxApp/codeception.yml @@ -0,0 +1,35 @@ +namespace: PyzTest\Zed\TaxApp + +paths: + tests: . + data: _data + support: _support + output: _output + +coverage: + enabled: true + remote: false + whitelist: + include: + - '../../../../src/*' + +suites: + Communication: + path: Communication + actor: TaxAppTester + modules: + enabled: + - Asserts + - \PyzTest\Shared\Testify\Helper\Environment + - \SprykerTest\Shared\Config\Helper\ConfigInit + - \SprykerTest\Shared\Testify\Helper\LocatorHelper: + projectNamespaces: ['Pyz'] + - \SprykerTest\Shared\Propel\Helper\ConnectionHelper + - \SprykerTest\Shared\Testify\Helper\ConfigHelper + - \SprykerTest\Zed\Testify\Helper\Business\DependencyProviderHelper + - \SprykerTest\Zed\MessageBroker\Helper\InMemoryMessageBrokerHelper + - \SprykerTest\Zed\MessageBroker\Helper\MessageBrokerHelper + - \SprykerTest\Shared\Store\Helper\StoreDataHelper + - \SprykerTest\Shared\Store\Helper\StoreReferenceHelper + - \SprykerTest\Shared\Propel\Helper\TransactionHelper + - \PyzTest\Zed\MessageBroker\Helper\MessageBrokerHelper From 73cfd71017206726451b0e1f00d77d953db51ca9 Mon Sep 17 00:00:00 2001 From: Anton Zubariev Date: Mon, 27 Jan 2025 16:42:27 +0100 Subject: [PATCH 3/3] ACP-4499: Test fixes --- .../SearchEndpointMessageTest.php | 2 +- .../Communication/TaxAppConfigMessageTest.php | 108 -------------- .../Zed/TaxApp/_data/tax_app.databuilder.xml | 32 ---- .../Zed/TaxApp/_support/TaxAppTester.php | 140 ------------------ tests/PyzTest/Zed/TaxApp/codeception.yml | 35 ----- 5 files changed, 1 insertion(+), 316 deletions(-) delete mode 100644 tests/PyzTest/Zed/TaxApp/Communication/TaxAppConfigMessageTest.php delete mode 100644 tests/PyzTest/Zed/TaxApp/_data/tax_app.databuilder.xml delete mode 100644 tests/PyzTest/Zed/TaxApp/_support/TaxAppTester.php delete mode 100644 tests/PyzTest/Zed/TaxApp/codeception.yml diff --git a/tests/PyzTest/Zed/MessageBroker/MessageHandlers/SearchHttp/Communication/SearchEndpointMessageTest.php b/tests/PyzTest/Zed/MessageBroker/MessageHandlers/SearchHttp/Communication/SearchEndpointMessageTest.php index 311f164c28..34514cda56 100644 --- a/tests/PyzTest/Zed/MessageBroker/MessageHandlers/SearchHttp/Communication/SearchEndpointMessageTest.php +++ b/tests/PyzTest/Zed/MessageBroker/MessageHandlers/SearchHttp/Communication/SearchEndpointMessageTest.php @@ -44,7 +44,7 @@ public function testSearchEndpointAvailableMessageIsSuccessfullyHandled(): void $this->tester->handleSearchMessage($searchEndpointAvailableTransfer); // Assert - $this->tester->assertSearchHttpConfigExists(); + $this->tester->assertSearchHttpConfigExistsForStore(); } /** diff --git a/tests/PyzTest/Zed/TaxApp/Communication/TaxAppConfigMessageTest.php b/tests/PyzTest/Zed/TaxApp/Communication/TaxAppConfigMessageTest.php deleted file mode 100644 index 1080e3b1f4..0000000000 --- a/tests/PyzTest/Zed/TaxApp/Communication/TaxAppConfigMessageTest.php +++ /dev/null @@ -1,108 +0,0 @@ -tester->getAllowedStore(); - $this->tester->setStoreReferenceData([$storeTransfer->getName() => static::STORE_REFERENCE]); - - $configureTaxAppTransfer = $this->tester->buildConfigureTaxAppTransfer([ - MessageAttributesTransfer::STORE_REFERENCE => static::STORE_REFERENCE, - MessageAttributesTransfer::TENANT_IDENTIFIER => static::TENANT_IDENTIFIER, - MessageAttributesTransfer::EMITTER => 'test', - ]); - - // Act - $this->tester->handleTaxAppMessage($configureTaxAppTransfer); - - // Assert - $this->tester->assertTaxAppConfigExistsForStore($storeTransfer); - } - - /** - * @return void - */ - protected function testDeleteTaxAppMessageIsSuccessfullyHandled(): void - { - // Arrange - $storeTransfer = $this->tester->getAllowedStore(); - $this->tester->setStoreReferenceData([$storeTransfer->getName() => static::STORE_REFERENCE]); - - $emitter = 'test'; - $this->createDummyTaxAppConfig($storeTransfer, $emitter); - - $deleteTaxAppTransfer = $this->tester->buildDeleteTaxAppTransfer([ - MessageAttributesTransfer::STORE_REFERENCE => static::STORE_REFERENCE, - MessageAttributesTransfer::TENANT_IDENTIFIER => static::TENANT_IDENTIFIER, - MessageAttributesTransfer::EMITTER => $emitter, - ]); - - // Act - $this->tester->handleTaxAppMessage($deleteTaxAppTransfer); - - // Assert - $this->tester->assertTaxAppConfigIsRemovedForStore($storeTransfer); - } - - /** - * @param \Generated\Shared\Transfer\StoreTransfer $storeTransfer - * @param string $emitter - * - * @return void - */ - protected function createDummyTaxAppConfig(StoreTransfer $storeTransfer, string $emitter): void - { - $this->tester->removeTaxAppConfigForStore($storeTransfer); - $this->tester->handleTaxAppMessage( - $this->tester->buildConfigureTaxAppTransfer([ - MessageAttributesTransfer::STORE_REFERENCE => static::STORE_REFERENCE, - MessageAttributesTransfer::TENANT_IDENTIFIER => static::TENANT_IDENTIFIER, - MessageAttributesTransfer::EMITTER => $emitter, - ]), - ); - } -} diff --git a/tests/PyzTest/Zed/TaxApp/_data/tax_app.databuilder.xml b/tests/PyzTest/Zed/TaxApp/_data/tax_app.databuilder.xml deleted file mode 100644 index 39919a6d22..0000000000 --- a/tests/PyzTest/Zed/TaxApp/_data/tax_app.databuilder.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/PyzTest/Zed/TaxApp/_support/TaxAppTester.php b/tests/PyzTest/Zed/TaxApp/_support/TaxAppTester.php deleted file mode 100644 index 9d8649a7d5..0000000000 --- a/tests/PyzTest/Zed/TaxApp/_support/TaxAppTester.php +++ /dev/null @@ -1,140 +0,0 @@ -getLocator()->store()->facade()->isDynamicStoreEnabled(); - } - - /** - * @param \Generated\Shared\Transfer\StoreTransfer $storeTransfer - * - * @return void - */ - public function assertTaxAppConfigExistsForStore(StoreTransfer $storeTransfer): void - { - $taxAppConfigEntity = $this->getTaxAppConfigEntity($storeTransfer); - - $this->assertNotNull($taxAppConfigEntity); - } - - /** - * @param \Generated\Shared\Transfer\StoreTransfer $storeTransfer - * - * @return void - */ - public function assertTaxAppConfigIsRemovedForStore(StoreTransfer $storeTransfer): void - { - $taxAppConfigEntity = $this->getTaxAppConfigEntity($storeTransfer); - - $this->assertNull($taxAppConfigEntity); - } - - /** - * @param array $messageAttributeSeedData - * - * @return \Generated\Shared\Transfer\ConfigureTaxAppTransfer - */ - public function buildConfigureTaxAppTransfer(array $messageAttributeSeedData = []): ConfigureTaxAppTransfer - { - return (new ConfigureTaxAppBuilder()) - ->withMessageAttributes($messageAttributeSeedData) - ->withApiUrls() - ->build(); - } - - /** - * @param array $messageAttributeSeedData - * - * @return \Generated\Shared\Transfer\DeleteTaxAppTransfer - */ - public function buildDeleteTaxAppTransfer(array $messageAttributeSeedData = []): DeleteTaxAppTransfer - { - return (new DeleteTaxAppBuilder()) - ->withMessageAttributes($messageAttributeSeedData) - ->build(); - } - - /** - * @param \Generated\Shared\Transfer\StoreTransfer $storeTransfer - * - * @return void - */ - public function removeTaxAppConfigForStore(StoreTransfer $storeTransfer): void - { - (new SpyTaxAppConfigQuery()) - ->filterByFkStore($storeTransfer->getIdStore()) - ->delete(); - } - - /** - * @param \Spryker\Shared\Kernel\Transfer\TransferInterface $configureTaxAppMessage - * - * @return void - */ - public function handleTaxAppMessage(TransferInterface $configureTaxAppMessage): void - { - $channelName = 'tax-commands'; - $this->setupMessageBroker($configureTaxAppMessage::class, $channelName); - $this->setupMessageBrokerPlugins(); - $messageBrokerFacade = $this->getLocator()->messageBroker()->facade(); - $messageBrokerFacade->sendMessage($configureTaxAppMessage); - $messageBrokerFacade->startWorker( - $this->buildMessageBrokerWorkerConfigTransfer([$channelName], 1), - ); - $this->resetInMemoryMessages(); - } - - /** - * @param \Generated\Shared\Transfer\StoreTransfer $storeTransfer - * - * @return \Orm\Zed\TaxApp\Persistence\SpyTaxAppConfig|null - */ - protected function getTaxAppConfigEntity(StoreTransfer $storeTransfer): ?SpyTaxAppConfig - { - return (new SpyTaxAppConfigQuery()) - ->filterByFkStore($storeTransfer->getIdStore()) - ->findOne(); - } -} diff --git a/tests/PyzTest/Zed/TaxApp/codeception.yml b/tests/PyzTest/Zed/TaxApp/codeception.yml deleted file mode 100644 index 0b5ae8dbbd..0000000000 --- a/tests/PyzTest/Zed/TaxApp/codeception.yml +++ /dev/null @@ -1,35 +0,0 @@ -namespace: PyzTest\Zed\TaxApp - -paths: - tests: . - data: _data - support: _support - output: _output - -coverage: - enabled: true - remote: false - whitelist: - include: - - '../../../../src/*' - -suites: - Communication: - path: Communication - actor: TaxAppTester - modules: - enabled: - - Asserts - - \PyzTest\Shared\Testify\Helper\Environment - - \SprykerTest\Shared\Config\Helper\ConfigInit - - \SprykerTest\Shared\Testify\Helper\LocatorHelper: - projectNamespaces: ['Pyz'] - - \SprykerTest\Shared\Propel\Helper\ConnectionHelper - - \SprykerTest\Shared\Testify\Helper\ConfigHelper - - \SprykerTest\Zed\Testify\Helper\Business\DependencyProviderHelper - - \SprykerTest\Zed\MessageBroker\Helper\InMemoryMessageBrokerHelper - - \SprykerTest\Zed\MessageBroker\Helper\MessageBrokerHelper - - \SprykerTest\Shared\Store\Helper\StoreDataHelper - - \SprykerTest\Shared\Store\Helper\StoreReferenceHelper - - \SprykerTest\Shared\Propel\Helper\TransactionHelper - - \PyzTest\Zed\MessageBroker\Helper\MessageBrokerHelper