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(), + ]; + } } 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/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/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