Issues (3641)

Facade/ExpandPaymentWithPaymentSelectionTest.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\DataBuilder\PaymentBuilder;
12
use Generated\Shared\Transfer\PaymentMethodTransfer;
13
use Generated\Shared\Transfer\PaymentProviderTransfer;
14
use Generated\Shared\Transfer\PaymentTransfer;
15
use Generated\Shared\Transfer\StoreRelationTransfer;
16
use Spryker\Zed\Payment\PaymentConfig;
17
18
/**
19
 * Auto-generated group annotations
20
 *
21
 * @group SprykerTest
22
 * @group Zed
23
 * @group Payment
24
 * @group Business
25
 * @group Facade
26
 * @group ExpandPaymentWithPaymentSelectionTest
27
 * Add your own group annotations below this line
28
 */
29
class ExpandPaymentWithPaymentSelectionTest extends Unit
30
{
31
    /**
32
     * @var string
33
     */
34
    protected const TEST_PAYMENT_SELECTION = 'TEST_PAYMENT_SELECTION';
35
36
    /**
37
     * @var \SprykerTest\Zed\Payment\PaymentBusinessTester
38
     */
39
    protected $tester;
40
41
    /**
42
     * @var \Spryker\Zed\Kernel\Business\AbstractFacade|\Spryker\Zed\Payment\Business\PaymentFacadeInterface
43
     */
44
    protected $paymentFacade;
45
46
    /**
47
     * @return void
48
     */
49
    public function setUp(): void
50
    {
51
        parent::setUp();
52
53
        $this->paymentFacade = $this->tester->getFacade();
54
    }
55
56
    /**
57
     * @return void
58
     */
59
    public function testExpandPaymentWithPaymentSelectionWorksForPaymentTransferWithNoPaymentSelectionSet(): void
60
    {
61
        // Arrange
62
        $store = $this->tester->haveStore();
63
        $paymentProvider = $this->tester->havePaymentProvider();
64
        $paymentMethod = $this->preparePaymentMethod($paymentProvider);
65
66
        $paymentTransfer = $this->preparePaymentTransfer($paymentMethod, $paymentProvider);
67
68
        // Act
69
        $paymentTransfer = $this->paymentFacade->expandPaymentWithPaymentSelection($paymentTransfer, $store);
0 ignored issues
show
The method expandPaymentWithPaymentSelection() 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

69
        /** @scrutinizer ignore-call */ 
70
        $paymentTransfer = $this->paymentFacade->expandPaymentWithPaymentSelection($paymentTransfer, $store);
Loading history...
70
71
        // Assert
72
        $this->assertNotEmpty($paymentTransfer->getPaymentSelection());
73
    }
74
75
    /**
76
     * @return void
77
     */
78
    public function testExpandPaymentWithPaymentSelectionDoesNothingForPaymentTransferWithPaymentSelectionSet(): void
79
    {
80
        // Arrange
81
        $store = $this->tester->haveStore();
82
        $paymentProvider = $this->tester->havePaymentProvider();
83
        $paymentMethod = $this->preparePaymentMethod($paymentProvider);
84
85
        $paymentTransfer = $this->preparePaymentTransfer($paymentMethod, $paymentProvider, [
86
            PaymentTransfer::PAYMENT_SELECTION => static::TEST_PAYMENT_SELECTION,
87
        ]);
88
89
        // Act
90
        $paymentTransfer = $this->paymentFacade->expandPaymentWithPaymentSelection($paymentTransfer, $store);
91
92
        // Assert
93
        $this->assertEquals(static::TEST_PAYMENT_SELECTION, $paymentTransfer->getPaymentSelection());
94
    }
95
96
    /**
97
     * @return void
98
     */
99
    public function testExpandPaymentWithPaymentSelectionWorksForPaymentTransferWithForeignPaymentMethodAndNoPaymentSelectionSet(): void
100
    {
101
        // Arrange
102
        $store = $this->tester->haveStore();
103
        $paymentProvider = $this->tester->havePaymentProvider();
104
        $paymentMethod = $this->preparePaymentMethod($paymentProvider, [
105
            PaymentMethodTransfer::IS_FOREIGN => true,
106
        ]);
107
108
        $paymentTransfer = $this->preparePaymentTransfer($paymentMethod, $paymentProvider);
109
110
        // Act
111
        $paymentTransfer = $this->paymentFacade->expandPaymentWithPaymentSelection($paymentTransfer, $store);
112
113
        // Assert
114
        $this->assertStringContainsString(PaymentConfig::PAYMENT_FOREIGN_PROVIDER, $paymentTransfer->getPaymentSelection());
115
    }
116
117
    /**
118
     * @param \Generated\Shared\Transfer\PaymentProviderTransfer $paymentProvider
119
     * @param array $seed
120
     *
121
     * @return \Generated\Shared\Transfer\PaymentMethodTransfer
122
     */
123
    protected function preparePaymentMethod(PaymentProviderTransfer $paymentProvider, array $seed = []): PaymentMethodTransfer
124
    {
125
        return $this->tester->havePaymentMethod(array_merge($seed, [
126
            PaymentMethodTransfer::ID_PAYMENT_PROVIDER => $paymentProvider->getIdPaymentProvider(),
127
            PaymentMethodTransfer::STORE_RELATION => (new StoreRelationTransfer())->addIdStores(1),
128
        ]));
129
    }
130
131
    /**
132
     * @param \Generated\Shared\Transfer\PaymentMethodTransfer $paymentMethod
133
     * @param \Generated\Shared\Transfer\PaymentProviderTransfer $paymentProvider
134
     * @param array<string, mixed> $seed
135
     *
136
     * @return \Generated\Shared\Transfer\PaymentTransfer
137
     */
138
    protected function preparePaymentTransfer(
139
        PaymentMethodTransfer $paymentMethod,
140
        PaymentProviderTransfer $paymentProvider,
141
        array $seed = []
142
    ): PaymentTransfer {
143
        return (new PaymentBuilder(array_merge($seed, [
144
            PaymentTransfer::PAYMENT_PROVIDER => $paymentProvider->getPaymentProviderKey(),
145
            PaymentTransfer::PAYMENT_METHOD => $paymentMethod->getName(),
146
        ])))->build();
147
    }
148
}
149