Issues (3641)

Processor/CartsRestApiResourceTest.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\Glue\CartsRestApi\Processor;
9
10
use Codeception\Test\Unit;
11
use Generated\Shared\DataBuilder\QuoteBuilder;
12
use Generated\Shared\Transfer\CustomerTransfer;
13
use Generated\Shared\Transfer\DiscountTransfer;
14
use Generated\Shared\Transfer\QuoteTransfer;
15
use Spryker\Glue\GlueApplication\Rest\JsonApi\RestResourceBuilder;
16
use Spryker\Glue\GlueApplication\Rest\Request\Data\RestRequestInterface;
17
18
/**
19
 * Auto-generated group annotations
20
 *
21
 * @group SprykerTest
22
 * @group Glue
23
 * @group CartsRestApi
24
 * @group Processor
25
 * @group CartsRestApiResourceTest
26
 * Add your own group annotations below this line
27
 */
28
class CartsRestApiResourceTest extends Unit
29
{
30
    /**
31
     * @uses \Spryker\Glue\GlueApplication\Plugin\Application\GlueApplicationApplicationPlugin::SERVICE_RESOURCE_BUILDER
32
     *
33
     * @var string
34
     */
35
    protected const SERVICE_RESOURCE_BUILDER = 'resource_builder';
36
37
    /**
38
     * @var \SprykerTest\Glue\CartsRestApi\CartsRestApiTester
39
     */
40
    protected $tester;
41
42
    /**
43
     * @var \Spryker\Glue\CartsRestApi\CartsRestApiResourceInterface
44
     */
45
    protected $cartsRestApiResource;
46
47
    /**
48
     * @return void
49
     */
50
    public function _before(): void
51
    {
52
        parent::_before();
53
54
        $this->tester->getContainer()->set(
55
            static::SERVICE_RESOURCE_BUILDER,
56
            new RestResourceBuilder(),
0 ignored issues
show
Deprecated Code introduced by
The class Spryker\Glue\GlueApplica...Api\RestResourceBuilder has been deprecated: Will be removed without replacement. ( Ignorable by Annotation )

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

56
            /** @scrutinizer ignore-deprecated */ new RestResourceBuilder(),
Loading history...
57
        );
58
    }
59
60
    /**
61
     * @return void
62
     */
63
    public function setUp(): void
64
    {
65
        parent::setUp();
66
67
        $this->cartsRestApiResource = $this->tester->getLocator()->cartsRestApi()->resource();
68
    }
69
70
    /**
71
     * @dataProvider getCreateCartRestResponseDataProvider
72
     *
73
     * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
74
     *
75
     * @return void
76
     */
77
    public function testCreateCartRestResponseWillCreateAFullCartsResource(QuoteTransfer $quoteTransfer): void
78
    {
79
        // Act
80
        $actualCartsRestResponse = $this->cartsRestApiResource
81
            ->createCartRestResponse($quoteTransfer, $this->getMockRestRequest());
82
83
        // Assert
84
        $actualCartsRestResource = current($actualCartsRestResponse->getResources());
85
        $this->tester->assertCartsResource($actualCartsRestResource, $quoteTransfer);
86
    }
87
88
    /**
89
     * @dataProvider getCreateCartRestResponseDataProvider
90
     *
91
     * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
92
     *
93
     * @return void
94
     */
95
    public function testCreateGuestCartRestResponseWillCreateAFullCartsResource(QuoteTransfer $quoteTransfer): void
96
    {
97
        // Act
98
        $actualCartsRestResponse = $this->cartsRestApiResource
99
            ->createGuestCartRestResponse($quoteTransfer, $this->getMockRestRequest());
100
101
        // Assert
102
        $actualCartsRestResource = current($actualCartsRestResponse->getResources());
103
        $this->tester->assertGuestCartsResource($actualCartsRestResource, $quoteTransfer);
104
    }
105
106
    /**
107
     * @return \PHPUnit\Framework\MockObject\MockObject|\Spryker\Glue\GlueApplication\Rest\Request\Data\RestRequestInterface
108
     */
109
    protected function getMockRestRequest(): RestRequestInterface
110
    {
111
        return $this->getMockBuilder(RestRequestInterface::class)->getMock();
112
    }
113
114
    /**
115
     * @return array
116
     */
117
    public function getCreateCartRestResponseDataProvider(): array
118
    {
119
        return [
120
            [(new QuoteBuilder([
121
                QuoteTransfer::CUSTOMER_REFERENCE => 'DE--1',
122
                QuoteTransfer::CUSTOMER => (new CustomerTransfer())->setCustomerReference('DE--1'),
123
            ]))
124
                ->withCurrency()
125
                ->withStore()
126
                ->withTotals()
127
                ->build()],
128
            [(new QuoteBuilder([
129
                QuoteTransfer::CUSTOMER_REFERENCE => 'DE--1',
130
                QuoteTransfer::CUSTOMER => (new CustomerTransfer())->setCustomerReference('DE--1'),
131
            ]))
132
                ->withCurrency()
133
                ->withStore()
134
                ->withTotals()
135
                ->withCartRuleDiscount([DiscountTransfer::AMOUNT => 17])
136
                ->build()],
137
            [(new QuoteBuilder([
138
                QuoteTransfer::CUSTOMER_REFERENCE => 'DE--1',
139
                QuoteTransfer::CUSTOMER => (new CustomerTransfer())->setCustomerReference('DE--1'),
140
            ]))
141
                ->withCurrency()
142
                ->withStore()
143
                ->withTotals()
144
                ->withVoucherDiscount([DiscountTransfer::VOUCHER_CODE => 'voucher code'])
145
                ->build()],
146
        ];
147
    }
148
}
149