Issues (3641)

Business/Facade/GetPaymentMethodCollectionTest.php (1 issue)

1
<?php
2
3
/**
4
 * Copyright © 2016-present Spryker Systems GmbH. All rights reserved.
5
 * Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
6
 */
7
8
namespace SprykerTest\Zed\Payment\Business\Facade;
9
10
use Codeception\Test\Unit;
11
use Generated\Shared\Transfer\PaymentMethodConditionsTransfer;
12
use Generated\Shared\Transfer\PaymentMethodCriteriaTransfer;
13
use Generated\Shared\Transfer\PaymentMethodTransfer;
14
15
/**
16
 * Auto-generated group annotations
17
 *
18
 * @group SprykerTest
19
 * @group Zed
20
 * @group Payment
21
 * @group Business
22
 * @group Facade
23
 * @group GetPaymentMethodCollectionTest
24
 * Add your own group annotations below this line
25
 */
26
class GetPaymentMethodCollectionTest extends Unit
27
{
28
    /**
29
     * @var string
30
     */
31
    protected const PAYMENT_PROVIDER = 'Spryker';
32
33
    /**
34
     * @var string
35
     */
36
    protected const PAYMENT_METHOD_KEY = 'SprykerCreditCard';
37
38
    /**
39
     * @var string
40
     */
41
    protected const PAYMENT_METHOD_NAME = 'Spryker Credit Card';
42
43
    /**
44
     * @var \SprykerTest\Zed\Payment\PaymentBusinessTester
45
     */
46
    protected $tester;
47
48
    /**
49
     * @var \Spryker\Zed\Payment\Business\PaymentFacadeInterface|\Spryker\Zed\Kernel\Business\AbstractFacade
50
     */
51
    protected $paymentFacade;
52
53
    /**
54
     * @return void
55
     */
56
    protected function setUp(): void
57
    {
58
        parent::setUp();
59
        $this->tester->ensurePaymentProviderTableIsEmpty();
60
61
        $this->paymentFacade = $this->tester->getFacade();
62
    }
63
64
    /**
65
     * @return void
66
     */
67
    protected function tearDown(): void
68
    {
69
        parent::tearDown();
70
71
        $this->tester->ensurePaymentProviderTableIsEmpty();
72
    }
73
74
    /**
75
     * @return void
76
     */
77
    public function testGetPaymentMethodCollectionReturnsCollectionWithPersistedPaymentMethods(): void
78
    {
79
        // Arrange
80
        $paymentProviderTransfer = $this->tester->havePaymentProvider();
81
        $this->tester->havePaymentMethod([
82
            PaymentMethodTransfer::ID_PAYMENT_PROVIDER => $paymentProviderTransfer->getIdPaymentProvider(),
83
        ]);
84
        $this->tester->havePaymentMethod([
85
            PaymentMethodTransfer::ID_PAYMENT_PROVIDER => $paymentProviderTransfer->getIdPaymentProvider(),
86
        ]);
87
88
        $paymentMethodCriteriaTransfer = (new PaymentMethodCriteriaTransfer())->setPaymentMethodConditions(new PaymentMethodConditionsTransfer());
89
90
        // Act
91
        $paymentMethodCollectionTransfer = $this->paymentFacade->getPaymentMethodCollection($paymentMethodCriteriaTransfer);
0 ignored issues
show
The method getPaymentMethodCollection() does not exist on Spryker\Zed\Kernel\Business\AbstractFacade. It seems like you code against a sub-type of Spryker\Zed\Kernel\Business\AbstractFacade such as Spryker\Zed\Payment\Business\PaymentFacade. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

91
        /** @scrutinizer ignore-call */ 
92
        $paymentMethodCollectionTransfer = $this->paymentFacade->getPaymentMethodCollection($paymentMethodCriteriaTransfer);
Loading history...
92
93
        // Assert
94
        $this->assertCount(2, $paymentMethodCollectionTransfer->getPaymentMethods());
95
    }
96
97
    /**
98
     * @return void
99
     */
100
    public function testGetPaymentMethodCollectionReturnsCollectionWithPaymentMethodByNames(): void
101
    {
102
        // Arrange
103
        $paymentProviderTransfer = $this->tester->havePaymentProvider();
104
        $this->tester->havePaymentMethod([
105
            PaymentMethodTransfer::ID_PAYMENT_PROVIDER => $paymentProviderTransfer->getIdPaymentProvider(),
106
        ]);
107
        $this->tester->havePaymentMethod([
108
            PaymentMethodTransfer::NAME => static::PAYMENT_METHOD_NAME,
109
            PaymentMethodTransfer::PAYMENT_METHOD_KEY => static::PAYMENT_METHOD_KEY,
110
            PaymentMethodTransfer::ID_PAYMENT_PROVIDER => $paymentProviderTransfer->getIdPaymentProvider(),
111
        ]);
112
113
        $paymentMethodConditionsTransfer = (new PaymentMethodConditionsTransfer())
114
            ->addName(static::PAYMENT_METHOD_NAME);
115
        $paymentMethodCriteriaTransfer = (new PaymentMethodCriteriaTransfer())->setPaymentMethodConditions($paymentMethodConditionsTransfer);
116
117
        // Act
118
        $paymentMethodCollectionTransfer = $this->paymentFacade->getPaymentMethodCollection($paymentMethodCriteriaTransfer);
119
120
        // Assert
121
        $this->assertCount(1, $paymentMethodCollectionTransfer->getPaymentMethods());
122
    }
123
124
    /**
125
     * @return void
126
     */
127
    public function testGetPaymentMethodCollectionReturnsCollectionWithPaymentMethodByPaymentMethodKey(): void
128
    {
129
        // Arrange
130
        $paymentProviderTransfer = $this->tester->havePaymentProvider();
131
        $this->tester->havePaymentMethod([
132
            PaymentMethodTransfer::ID_PAYMENT_PROVIDER => $paymentProviderTransfer->getIdPaymentProvider(),
133
        ]);
134
        $this->tester->havePaymentMethod([
135
            PaymentMethodTransfer::NAME => static::PAYMENT_METHOD_NAME,
136
            PaymentMethodTransfer::PAYMENT_METHOD_KEY => static::PAYMENT_METHOD_KEY,
137
            PaymentMethodTransfer::ID_PAYMENT_PROVIDER => $paymentProviderTransfer->getIdPaymentProvider(),
138
        ]);
139
140
        $paymentMethodConditionsTransfer = (new PaymentMethodConditionsTransfer())
141
            ->addPaymentMethodKey(static::PAYMENT_METHOD_KEY);
142
        $paymentMethodCriteriaTransfer = (new PaymentMethodCriteriaTransfer())->setPaymentMethodConditions($paymentMethodConditionsTransfer);
143
144
        // Act
145
        $paymentMethodCollectionTransfer = $this->paymentFacade->getPaymentMethodCollection($paymentMethodCriteriaTransfer);
146
147
        // Assert
148
        $this->assertCount(1, $paymentMethodCollectionTransfer->getPaymentMethods());
149
    }
150
151
    /**
152
     * @return void
153
     */
154
    public function testGetPaymentMethodCollectionReturnsCollectionWithPaymentMethodByNamesAndPaymentMethodKey(): void
155
    {
156
        // Arrange
157
        $paymentProviderTransfer = $this->tester->havePaymentProvider();
158
        $this->tester->havePaymentMethod([
159
            PaymentMethodTransfer::ID_PAYMENT_PROVIDER => $paymentProviderTransfer->getIdPaymentProvider(),
160
        ]);
161
        $this->tester->havePaymentMethod([
162
            PaymentMethodTransfer::NAME => static::PAYMENT_METHOD_NAME,
163
            PaymentMethodTransfer::PAYMENT_METHOD_KEY => static::PAYMENT_METHOD_KEY,
164
            PaymentMethodTransfer::ID_PAYMENT_PROVIDER => $paymentProviderTransfer->getIdPaymentProvider(),
165
        ]);
166
167
        $paymentMethodConditionsTransfer = (new PaymentMethodConditionsTransfer())
168
            ->addName(static::PAYMENT_METHOD_NAME)
169
            ->addPaymentMethodKey(static::PAYMENT_METHOD_KEY);
170
        $paymentMethodCriteriaTransfer = (new PaymentMethodCriteriaTransfer())->setPaymentMethodConditions($paymentMethodConditionsTransfer);
171
172
        // Act
173
        $paymentMethodCollectionTransfer = $this->paymentFacade->getPaymentMethodCollection($paymentMethodCriteriaTransfer);
174
175
        // Assert
176
        $this->assertCount(1, $paymentMethodCollectionTransfer->getPaymentMethods());
177
    }
178
179
    /**
180
     * @return void
181
     */
182
    public function testGetPaymentMethodCollectionReturnsCollectionWithNoPaymentMethodByNamesAndPaymentMethodKey(): void
183
    {
184
        // Arrange
185
        $paymentProviderTransfer = $this->tester->havePaymentProvider();
186
        $this->tester->havePaymentMethod([
187
            PaymentMethodTransfer::ID_PAYMENT_PROVIDER => $paymentProviderTransfer->getIdPaymentProvider(),
188
        ]);
189
        $this->tester->havePaymentMethod([
190
            PaymentMethodTransfer::ID_PAYMENT_PROVIDER => $paymentProviderTransfer->getIdPaymentProvider(),
191
        ]);
192
193
        $paymentMethodConditionsTransfer = (new PaymentMethodConditionsTransfer())
194
            ->addName(static::PAYMENT_METHOD_NAME)
195
            ->addPaymentMethodKey(static::PAYMENT_METHOD_KEY);
196
        $paymentMethodCriteriaTransfer = (new PaymentMethodCriteriaTransfer())->setPaymentMethodConditions($paymentMethodConditionsTransfer);
197
198
        // Act
199
        $paymentMethodCollectionTransfer = $this->paymentFacade->getPaymentMethodCollection($paymentMethodCriteriaTransfer);
200
201
        // Assert
202
        $this->assertCount(0, $paymentMethodCollectionTransfer->getPaymentMethods());
203
    }
204
205
    /**
206
     * @return void
207
     */
208
    public function testGetPaymentMethodCollectionReturnsCollectionWithPaymentMethodHavingCorrectProperties(): void
209
    {
210
        // Arrange
211
        $paymentProviderTransfer = $this->tester->havePaymentProvider();
212
        $paymentMethodTransfer = $this->tester->havePaymentMethod([
213
            PaymentMethodTransfer::ID_PAYMENT_PROVIDER => $paymentProviderTransfer->getIdPaymentProvider(),
214
        ]);
215
        $paymentMethodCriteriaTransfer = (new PaymentMethodCriteriaTransfer())->setPaymentMethodConditions(new PaymentMethodConditionsTransfer());
216
217
        // Act
218
        $paymentMethodCollectionTransfer = $this->paymentFacade->getPaymentMethodCollection($paymentMethodCriteriaTransfer);
219
220
        // Assert
221
        $this->assertSame($paymentMethodTransfer->getIdPaymentMethod(), $paymentMethodCollectionTransfer->getPaymentMethods()->offsetGet(0)->getIdPaymentMethod());
222
        $this->assertSame($paymentMethodTransfer->getName(), $paymentMethodCollectionTransfer->getPaymentMethods()->offsetGet(0)->getName());
223
        $this->assertSame($paymentMethodTransfer->getPaymentMethodKey(), $paymentMethodCollectionTransfer->getPaymentMethods()->offsetGet(0)->getPaymentMethodKey());
224
        $this->assertSame($paymentMethodTransfer->getIdPaymentProvider(), $paymentMethodCollectionTransfer->getPaymentMethods()->offsetGet(0)->getIdPaymentProvider());
225
        $this->assertSame($paymentMethodTransfer->getIsActive(), $paymentMethodCollectionTransfer->getPaymentMethods()->offsetGet(0)->getIsActive());
226
        $this->assertCount(0, $paymentMethodCollectionTransfer->getPaymentMethods()->offsetGet(0)->getStoreRelation()->getStores());
227
    }
228
}
229