Issues (3641)

ConfigurableBundlePageSearchBusinessTester.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\ConfigurableBundlePageSearch;
9
10
use Codeception\Actor;
11
use Generated\Shared\Transfer\ConfigurableBundleTemplateTransfer;
12
use Generated\Shared\Transfer\ConfigurableBundleTemplateTranslationTransfer;
13
use Orm\Zed\ConfigurableBundle\Persistence\SpyConfigurableBundleTemplateQuery;
14
use Spryker\Client\Kernel\Container;
15
use Spryker\Client\Queue\QueueDependencyProvider;
16
use Spryker\Zed\ConfigurableBundlePageSearch\Communication\Plugin\Search\ConfigurableBundleTemplatePageMapPlugin;
17
use Spryker\Zed\Search\SearchDependencyProvider;
18
19
/**
20
 * @method void wantToTest($text)
21
 * @method void wantTo($text)
22
 * @method void execute($callable)
23
 * @method void expectTo($prediction)
24
 * @method void expect($prediction)
25
 * @method void amGoingTo($argumentation)
26
 * @method void am($role)
27
 * @method void lookForwardTo($achieveValue)
28
 * @method void comment($description)
29
 * @method void pause()
30
 * @method \Spryker\Zed\ConfigurableBundlePageSearch\Business\ConfigurableBundlePageSearchFacadeInterface getFacade()
31
 *
32
 * @SuppressWarnings(PHPMD)
33
 */
34
class ConfigurableBundlePageSearchBusinessTester extends Actor
35
{
36
    use _generated\ConfigurableBundlePageSearchBusinessTesterActions;
37
38
    /**
39
     * @param array<string, mixed> $data
40
     *
41
     * @return \Generated\Shared\Transfer\ConfigurableBundleTemplateTransfer
42
     */
43
    public function createConfigurableBundleTemplate(array $data = []): ConfigurableBundleTemplateTransfer
44
    {
45
        $defaultData = [
46
            ConfigurableBundleTemplateTransfer::NAME => 'configurable_bundle.templates.test-name',
47
            ConfigurableBundleTemplateTransfer::UUID => uniqid(),
48
            ConfigurableBundleTemplateTransfer::IS_ACTIVE => true,
49
            ConfigurableBundleTemplateTransfer::TRANSLATIONS => $this->createTemplateTranslationsForAvailableLocales(),
50
        ];
51
52
        return $this->haveConfigurableBundleTemplate(array_merge($data, $defaultData));
53
    }
54
55
    /**
56
     * @param array<string, mixed> $data
57
     *
58
     * @return array
59
     */
60
    public function createTemplateTranslationsForAvailableLocales(array $data = []): array
61
    {
62
        $availableLocaleTransfers = $this->getLocator()
63
            ->locale()
64
            ->facade()
65
            ->getLocaleCollection();
66
67
        $configurableBundleTemplateTranslationTransfers = [];
68
69
        foreach ($availableLocaleTransfers as $localeTransfer) {
70
            $defaultData = [
71
                ConfigurableBundleTemplateTranslationTransfer::NAME => 'test-name',
72
                ConfigurableBundleTemplateTranslationTransfer::LOCALE => $localeTransfer,
73
            ];
74
75
            $configurableBundleTemplateTranslationTransfers[] = array_merge($defaultData, $data);
76
        }
77
78
        return $configurableBundleTemplateTranslationTransfers;
79
    }
80
81
    /**
82
     * @return int
83
     */
84
    public function getConfigurableBundleTemplatesCount(): int
85
    {
86
        return SpyConfigurableBundleTemplateQuery::create()->count();
87
    }
88
89
    /**
90
     * @return void
91
     */
92
    public function setDependencies(): void
93
    {
94
        $this->setQueueAdaptersDependency();
95
        $this->setSearchPageMapPluginsDependency();
96
    }
97
98
    /**
99
     * @return void
100
     */
101
    protected function setQueueAdaptersDependency(): void
102
    {
103
        $this->setDependency(QueueDependencyProvider::QUEUE_ADAPTERS, function (Container $container) {
104
            return [
105
                $container->getLocator()->rabbitMq()->client()->createQueueAdapter(),
106
            ];
107
        });
108
    }
109
110
    /**
111
     * @return void
112
     */
113
    protected function setSearchPageMapPluginsDependency(): void
114
    {
115
        $this->setDependency(SearchDependencyProvider::PLUGIN_SEARCH_PAGE_MAPS, function () {
116
            return [
117
                new ConfigurableBundleTemplatePageMapPlugin(),
0 ignored issues
show
Deprecated Code introduced by
The class Spryker\Zed\Configurable...leTemplatePageMapPlugin 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

117
                /** @scrutinizer ignore-deprecated */ new ConfigurableBundleTemplatePageMapPlugin(),
Loading history...
118
            ];
119
        });
120
    }
121
}
122