testPaymentMethodRemovedMessageIsSuccessfullyHandled()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 50
Code Lines 29

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 29
c 0
b 0
f 0
dl 0
loc 50
rs 9.456
cc 1
nc 1
nop 1
1
<?php
2
3
/**
4
 * This file is part of the Spryker Commerce OS.
5
 * For full license information, please view the LICENSE file that was distributed with this source code.
6
 */
7
8
declare(strict_types = 1);
9
10
namespace PyzTest\Zed\MessageBroker\MessageHandlers\PaymentMethod\Presentation;
11
12
use Generated\Shared\Transfer\AddPaymentMethodTransfer;
0 ignored issues
show
Bug introduced by
The type Generated\Shared\Transfer\AddPaymentMethodTransfer was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
13
use Generated\Shared\Transfer\DeletePaymentMethodTransfer;
0 ignored issues
show
Bug introduced by
The type Generated\Shared\Transfe...tePaymentMethodTransfer was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
14
use PyzTest\Zed\MessageBroker\PageObject\PaymentMethodPage;
15
use PyzTest\Zed\MessageBroker\PaymentMethodPresentationTester;
16
use Spryker\Zed\MessageBroker\MessageBrokerDependencyProvider;
17
18
/**
19
 * Auto-generated group annotations
20
 *
21
 * @group PyzTest
22
 * @group Zed
23
 * @group MessageBroker
24
 * @group MessageHandlers
25
 * @group PaymentMethod
26
 * @group Presentation
27
 * @group PaymentMethodMessageCest
28
 * Add your own group annotations below this line
29
 */
30
class PaymentMethodMessageCest
31
{
32
    /**
33
     * @var string
34
     */
35
    protected const PAYMENT_METHOD_NAME = 'payment-method-name';
36
37
    /**
38
     * @var string
39
     */
40
    protected const PROVIDER_NAME = 'provider-name';
41
42
    /**
43
     * @param \PyzTest\Zed\MessageBroker\PaymentMethodPresentationTester $I
44
     *
45
     * @return void
46
     */
47
    public function testAddPaymentMethodMessageIsSuccessfullyHandled(PaymentMethodPresentationTester $I): void
48
    {
49
        // Arrange
50
        $messageBrokerFacade = $I->getLocator()->messageBroker()->facade();
51
52
        $paymentMethodKey = $I->generatePaymentMethodKey(
53
            static::PROVIDER_NAME,
54
            static::PAYMENT_METHOD_NAME,
55
        );
56
57
        // Act
58
        $channelName = 'payment-method-commands';
59
        $I->setupMessageBroker(AddPaymentMethodTransfer::class, $channelName);
60
        $I->setDependency(MessageBrokerDependencyProvider::PLUGINS_EXTERNAL_VALIDATOR, []);
61
        $I->setDependency(MessageBrokerDependencyProvider::PLUGINS_FILTER_MESSAGE_CHANNEL, []);
62
        $messageBrokerFacade->sendMessage(
63
            $I->haveAddPaymentMethodTransfer(
64
                [
65
                    DeletePaymentMethodTransfer::NAME => static::PAYMENT_METHOD_NAME,
66
                    DeletePaymentMethodTransfer::PROVIDER_NAME => static::PROVIDER_NAME,
67
                ],
68
            ),
69
        );
70
        $messageBrokerFacade->startWorker($I->buildMessageBrokerWorkerConfigTransfer([$channelName], 1));
71
72
        // Assert
73
        $I->amZed();
74
        $I->amLoggedInUser();
75
76
        $I->amOnPage(PaymentMethodPage::PAYMENT_METHOD_PAGE_URL);
77
        $I->wait(10);
78
79
        $I->canSee(static::PAYMENT_METHOD_NAME);
80
        $I->canSee(static::PROVIDER_NAME);
81
        $I->canSee($paymentMethodKey);
82
83
        $I->cleanupPaymentMethodByPaymentMethodKey($paymentMethodKey);
84
    }
85
86
    /**
87
     * @param \PyzTest\Zed\MessageBroker\PaymentMethodPresentationTester $I
88
     *
89
     * @return void
90
     */
91
    public function testPaymentMethodRemovedMessageIsSuccessfullyHandled(PaymentMethodPresentationTester $I): void
92
    {
93
        // Arrange
94
        $messageBrokerFacade = $I->getLocator()->messageBroker()->facade();
95
96
        $paymentMethodKey = $I->generatePaymentMethodKey(
97
            static::PROVIDER_NAME,
98
            static::PAYMENT_METHOD_NAME,
99
        );
100
101
        $channelName = 'payment-method-commands';
102
        $I->setupMessageBroker(AddPaymentMethodTransfer::class, $channelName);
103
        $I->setDependency(MessageBrokerDependencyProvider::PLUGINS_EXTERNAL_VALIDATOR, []);
104
        $I->setDependency(MessageBrokerDependencyProvider::PLUGINS_FILTER_MESSAGE_CHANNEL, []);
105
        $messageBrokerFacade->sendMessage(
106
            $I->haveAddPaymentMethodTransfer(
107
                [
108
                    DeletePaymentMethodTransfer::NAME => static::PAYMENT_METHOD_NAME,
109
                    DeletePaymentMethodTransfer::PROVIDER_NAME => static::PROVIDER_NAME,
110
                ],
111
            ),
112
        );
113
        $messageBrokerWorkerConfigTransfer = $I->buildMessageBrokerWorkerConfigTransfer([$channelName], 1);
114
        $messageBrokerFacade->startWorker($messageBrokerWorkerConfigTransfer);
115
        $I->resetInMemoryMessages();
116
117
        // Act
118
        $I->setupMessageBroker(DeletePaymentMethodTransfer::class, $channelName);
119
        $messageBrokerFacade->sendMessage(
120
            $I->haveDeletePaymentMethodTransfer(
121
                [
122
                    DeletePaymentMethodTransfer::NAME => static::PAYMENT_METHOD_NAME,
123
                    DeletePaymentMethodTransfer::PROVIDER_NAME => static::PROVIDER_NAME,
124
                ],
125
            ),
126
        );
127
        $messageBrokerFacade->startWorker($messageBrokerWorkerConfigTransfer);
128
129
        // Assert
130
        $I->amZed();
131
        $I->amLoggedInUser();
132
133
        $I->amOnPage(PaymentMethodPage::PAYMENT_METHOD_PAGE_URL);
134
        $I->wait(10);
135
136
        $I->cantSee(static::PAYMENT_METHOD_NAME);
137
        $I->cantSee(static::PROVIDER_NAME);
138
        $I->cantSee($paymentMethodKey);
139
140
        $I->cleanupPaymentMethodByPaymentMethodKey($paymentMethodKey);
141
    }
142
}
143