Completed
Push — master ( 6cdb11...ccfb22 )
by Alexandr
45s queued 17s
created

assertSearchHttpConfigIsRemoved()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 4
c 0
b 0
f 0
dl 0
loc 7
rs 10
cc 1
nc 1
nop 0
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\Zed\MessageBroker;
9
10
use Codeception\Actor;
11
use Generated\Shared\DataBuilder\SearchEndpointAvailableBuilder;
12
use Generated\Shared\DataBuilder\SearchEndpointRemovedBuilder;
13
use Generated\Shared\Transfer\SearchEndpointAvailableTransfer;
14
use Generated\Shared\Transfer\SearchEndpointRemovedTransfer;
15
use Orm\Zed\SearchHttp\Persistence\SpySearchHttpConfig;
16
use Orm\Zed\SearchHttp\Persistence\SpySearchHttpConfigQuery;
17
use Spryker\Shared\Kernel\Transfer\TransferInterface;
18
19
/**
20
 * Inherited Methods
21
 *
22
 * @method void wantToTest($text)
23
 * @method void wantTo($text)
24
 * @method void execute($callable)
25
 * @method void expectTo($prediction)
26
 * @method void expect($prediction)
27
 * @method void amGoingTo($argumentation)
28
 * @method void am($role)
29
 * @method void lookForwardTo($achieveValue)
30
 * @method void comment($description)
31
 * @method void pause()
32
 *
33
 * @SuppressWarnings(\PyzTest\Zed\SearchHttp\PHPMD)
34
 */
35
class SearchHttpCommunicationTester extends Actor
36
{
37
    use _generated\SearchHttpCommunicationTesterActions;
38
39
    /**
40
     * @return void
41
     */
42
    public function assertSearchHttpConfigExists(): void
43
    {
44
        $searchHttpConfigEntity = $this->getSearchHttpConfigEntity();
45
46
        $this->assertNotNull($searchHttpConfigEntity);
47
    }
48
49
    /**
50
     * @return void
51
     */
52
    public function assertSearchHttpConfigIsRemoved(): void
53
    {
54
        $searchHttpConfigEntity = $this->getSearchHttpConfigEntity();
55
56
        $this->assertSame(
57
            ['search_http_configs' => []],
58
            $searchHttpConfigEntity->getData(),
59
        );
60
    }
61
62
    /**
63
     * @return \Generated\Shared\Transfer\SearchEndpointAvailableTransfer
64
     */
65
    public function buildSearchEndpointAvailableTransfer(): SearchEndpointAvailableTransfer
66
    {
67
        return (new SearchEndpointAvailableBuilder())
68
            ->withMessageAttributes()
69
            ->build();
70
    }
71
72
    /**
73
     * @return \Generated\Shared\Transfer\SearchEndpointRemovedTransfer
74
     */
75
    public function buildSearchEndpointRemovedTransfer(): SearchEndpointRemovedTransfer
76
    {
77
        return (new SearchEndpointRemovedBuilder())
78
            ->withMessageAttributes()
79
            ->build();
80
    }
81
82
    /**
83
     * @return void
84
     */
85
    public function removeHttpConfig(): void
86
    {
87
        (new SpySearchHttpConfigQuery())
88
            ->deleteAll();
89
    }
90
91
    /**
92
     * @param \Spryker\Shared\Kernel\Transfer\TransferInterface $searchMessageTransfer
93
     *
94
     * @return void
95
     */
96
    public function handleSearchMessage(TransferInterface $searchMessageTransfer): void
97
    {
98
        $channelName = 'search-commands';
99
        $this->setupMessageBroker($searchMessageTransfer::class, $channelName);
100
        $messageBrokerFacade = $this->getLocator()->messageBroker()->facade();
101
        $messageBrokerFacade->sendMessage($searchMessageTransfer);
102
        $messageBrokerFacade->startWorker(
103
            $this->buildMessageBrokerWorkerConfigTransfer([$channelName], 1),
104
        );
105
        $this->resetInMemoryMessages();
106
    }
107
108
    /**
109
     * @return \Orm\Zed\SearchHttp\Persistence\SpySearchHttpConfig|null
110
     */
111
    protected function getSearchHttpConfigEntity(): ?SpySearchHttpConfig
112
    {
113
        return (new SpySearchHttpConfigQuery())
114
            ->findOne();
115
    }
116
}
117