Passed
Pull Request — master (#213)
by Ruslan
18:45
created

testPaymentMethodAddedMessageIsSuccessfullyHandled()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 35
Code Lines 19

Duplication

Lines 0
Ratio 0 %

Importance

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