Passed
Pull Request — master (#365)
by Dmitry
21:01
created

buildProductAbstractUrl()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 4
dl 0
loc 7
c 1
b 0
f 0
rs 10
cc 1
nc 1
nop 2
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\Glue\AlternativeProducts;
9
10
use Spryker\Glue\AlternativeProductsRestApi\AlternativeProductsRestApiConfig;
11
use Spryker\Glue\GlueApplication\Rest\RequestConstantsInterface;
12
use Spryker\Glue\ProductsRestApi\ProductsRestApiConfig;
13
use SprykerTest\Glue\Testify\Tester\ApiEndToEndTester;
14
15
/**
16
 * Inherited Methods
17
 *
18
 * @method void wantToTest($text)
19
 * @method void wantTo($text)
20
 * @method void execute($callable)
21
 * @method void expectTo($prediction)
22
 * @method void expect($prediction)
23
 * @method void amGoingTo($argumentation)
24
 * @method void am($role)
25
 * @method void lookForwardTo($achieveValue)
26
 * @method void comment($description)
27
 * @method void pause()
28
 *
29
 * @SuppressWarnings(\PyzTest\Glue\AlternativeProducts\PHPMD)
30
 */
31
class AlternativeProductsRestApiTester extends ApiEndToEndTester
32
{
33
    use _generated\AlternativeProductsRestApiTesterActions;
0 ignored issues
show
Bug introduced by
The type PyzTest\Glue\Alternative...ctsRestApiTesterActions 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...
34
35
    /**
36
     * @param array<string> $includes
37
     *
38
     * @return string
39
     */
40
    public function formatQueryInclude(array $includes = []): string
41
    {
42
        if (!$includes) {
43
            return '';
44
        }
45
46
        return sprintf('?%s=%s', RequestConstantsInterface::QUERY_INCLUDE, implode(',', $includes));
47
    }
48
49
    /**
50
     * @param string $productAbstractSku
51
     * @param array<string> $includes
52
     *
53
     * @return string
54
     */
55
    public function buildProductAbstractUrl(string $productAbstractSku, array $includes = []): string
56
    {
57
        return $this->formatFullUrl(
58
            '{resourceAbstractProducts}/{productAbstractSku}' . $this->formatQueryInclude($includes),
59
            [
60
                'resourceAbstractProducts' => ProductsRestApiConfig::RESOURCE_ABSTRACT_PRODUCTS,
61
                'productAbstractSku' => $productAbstractSku,
62
            ],
63
        );
64
    }
65
66
    /**
67
     * @param string $productConcreteSku
68
     * @param array<string> $includes
69
     *
70
     * @return string
71
     */
72
    public function buildProductConcreteUrl(string $productConcreteSku, array $includes = []): string
73
    {
74
        return $this->formatFullUrl(
75
            '{resourceConcreteProducts}/{productConcreteSku}' . $this->formatQueryInclude($includes),
76
            [
77
                'resourceConcreteProducts' => ProductsRestApiConfig::RESOURCE_CONCRETE_PRODUCTS,
78
                'productConcreteSku' => $productConcreteSku,
79
            ],
80
        );
81
    }
82
83
    /**
84
     * @param string $productConcreteSku
85
     * @param array<string> $includes
86
     *
87
     * @return string
88
     */
89
    public function buildAbstractAlternativeProductsUrl(string $productConcreteSku, array $includes = []): string
90
    {
91
        return $this->formatFullUrl(
92
            '{resourceConcreteProducts}/{productConcreteSku}/{resourceAbstractAlternativeProducts}' . $this->formatQueryInclude($includes),
93
            [
94
                'resourceConcreteProducts' => ProductsRestApiConfig::RESOURCE_CONCRETE_PRODUCTS,
95
                'resourceAbstractAlternativeProducts' => AlternativeProductsRestApiConfig::RELATIONSHIP_NAME_ABSTRACT_ALTERNATIVE_PRODUCTS,
96
                'productConcreteSku' => $productConcreteSku,
97
            ],
98
        );
99
    }
100
101
    /**
102
     * @param string $productConcreteSku
103
     * @param array<string> $includes
104
     *
105
     * @return string
106
     */
107
    public function buildConcreteAlternativeProductsUrl(string $productConcreteSku, array $includes = []): string
108
    {
109
        return $this->formatFullUrl(
110
            '{resourceConcreteProducts}/{productConcreteSku}/{resourceConcreteAlternativeProducts}' . $this->formatQueryInclude($includes),
111
            [
112
                'resourceConcreteProducts' => ProductsRestApiConfig::RESOURCE_CONCRETE_PRODUCTS,
113
                'resourceConcreteAlternativeProducts' => AlternativeProductsRestApiConfig::RELATIONSHIP_NAME_CONCRETE_ALTERNATIVE_PRODUCTS,
114
                'productConcreteSku' => $productConcreteSku,
115
            ],
116
        );
117
    }
118
}
119