Completed
Push — EZP-31644 ( 2e0a1e...93bb44 )
by
unknown
19:12
created

AbstractSlotTest::receive()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 1
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * This file is part of the eZ Publish Kernel package.
5
 *
6
 * @copyright Copyright (C) eZ Systems AS. All rights reserved.
7
 * @license For full copyright and license information view LICENSE file distributed with this source code.
8
 */
9
namespace eZ\Publish\Core\MVC\Symfony\Cache\Tests\Http\SignalSlot;
10
11
use eZ\Publish\Core\MVC\Symfony\Cache\GatewayCachePurger;
12
use PHPUnit\Framework\TestCase;
13
14
abstract class AbstractSlotTest extends TestCase implements SlotTest
15
{
16
    /** @var \eZ\Publish\Core\MVC\Symfony\Cache\Http\SignalSlot\AssignSectionSlot */
17
    protected $slot;
18
19
    /** @var \eZ\Publish\Core\MVC\Symfony\Cache\GatewayCachePurger|\PHPUnit_Framework_MockObject_MockObject */
20
    protected $cachePurgerMock;
21
22
    private $contentId = 42;
23
24
    private static $signal;
25
26
    public function setUp()
27
    {
28
        $this->cachePurgerMock = $this->createMock(GatewayCachePurger::class);
29
        $this->slot = $this->createSlot();
30
        self::$signal = $this->createSignal();
31
    }
32
33
    protected function createSlot()
34
    {
35
        $class = $this->getSlotClass();
36
37
        return new $class($this->cachePurgerMock);
38
    }
39
40
    /**
41
     * @return \eZ\Publish\Core\MVC\Symfony\Cache\GatewayCachePurger|\PHPUnit_Framework_MockObject_MockObject
42
     */
43
    protected function getCachePurger()
44
    {
45
        return $this->cachePurgerMock;
46
    }
47
48
    /**
49
     * @dataProvider getUnreceivedSignals
50
     */
51
    public function testDoesNotReceiveOtherSignals($signal)
52
    {
53
        $this->cachePurgerMock->expects($this->never())->method('purgeForContent');
54
        $this->cachePurgerMock->expects($this->never())->method('purgeAll');
55
56
        $this->slot->receive($signal);
57
    }
58
59
    protected function receive($signal)
60
    {
61
        $this->slot->receive($signal);
62
    }
63
64
    public static function getReceivedSignals()
65
    {
66
        return [[static::createSignal()]];
67
    }
68
69
    /**
70
     * All existing SignalSlots.
71
     */
72
    public static function getUnreceivedSignals()
73
    {
74
        static $arguments = [];
75
76
        if (empty($arguments)) {
77
            $signals = self::getAllSignals();
78
79
            foreach ($signals as $signalClass) {
80
                if (in_array($signalClass, static::getReceivedSignalClasses())) {
81
                    continue;
82
                }
83
                $arguments[] = [new $signalClass()];
84
            }
85
        }
86
87
        return $arguments;
88
    }
89
90
    /**
91
     * @return array
92
     */
93
    private static function getAllSignals()
94
    {
95
        return [
96
            'eZ\Publish\Core\SignalSlot\Signal\URLAliasService\CreateUrlAliasSignal',
97
            'eZ\Publish\Core\SignalSlot\Signal\URLAliasService\RemoveAliasesSignal',
98
            'eZ\Publish\Core\SignalSlot\Signal\URLAliasService\CreateGlobalUrlAliasSignal',
99
            'eZ\Publish\Core\SignalSlot\Signal\ContentTypeService\CreateContentTypeSignal',
100
            'eZ\Publish\Core\SignalSlot\Signal\ContentTypeService\AddFieldDefinitionSignal',
101
            'eZ\Publish\Core\SignalSlot\Signal\ContentTypeService\CopyContentTypeSignal',
102
            'eZ\Publish\Core\SignalSlot\Signal\ContentTypeService\DeleteContentTypeSignal',
103
            'eZ\Publish\Core\SignalSlot\Signal\ContentTypeService\UpdateContentTypeGroupSignal',
104
            'eZ\Publish\Core\SignalSlot\Signal\ContentTypeService\DeleteContentTypeGroupSignal',
105
            'eZ\Publish\Core\SignalSlot\Signal\ContentTypeService\UnassignContentTypeGroupSignal',
106
            'eZ\Publish\Core\SignalSlot\Signal\ContentTypeService\PublishContentTypeDraftSignal',
107
            'eZ\Publish\Core\SignalSlot\Signal\ContentTypeService\AssignContentTypeGroupSignal',
108
            'eZ\Publish\Core\SignalSlot\Signal\ContentTypeService\UpdateFieldDefinitionSignal',
109
            'eZ\Publish\Core\SignalSlot\Signal\ContentTypeService\UpdateContentTypeDraftSignal',
110
            'eZ\Publish\Core\SignalSlot\Signal\ContentTypeService\RemoveFieldDefinitionSignal',
111
            'eZ\Publish\Core\SignalSlot\Signal\ContentTypeService\CreateContentTypeDraftSignal',
112
            'eZ\Publish\Core\SignalSlot\Signal\ContentTypeService\CreateContentTypeGroupSignal',
113
            'eZ\Publish\Core\SignalSlot\Signal\LanguageService\EnableLanguageSignal',
114
            'eZ\Publish\Core\SignalSlot\Signal\LanguageService\UpdateLanguageNameSignal',
115
            'eZ\Publish\Core\SignalSlot\Signal\LanguageService\CreateLanguageSignal',
116
            'eZ\Publish\Core\SignalSlot\Signal\LanguageService\DisableLanguageSignal',
117
            'eZ\Publish\Core\SignalSlot\Signal\LanguageService\DeleteLanguageSignal',
118
            'eZ\Publish\Core\SignalSlot\Signal\UserService\MoveUserGroupSignal',
119
            'eZ\Publish\Core\SignalSlot\Signal\UserService\DeleteUserGroupSignal',
120
            'eZ\Publish\Core\SignalSlot\Signal\UserService\CreateUserGroupSignal',
121
            'eZ\Publish\Core\SignalSlot\Signal\UserService\UpdateUserGroupSignal',
122
            'eZ\Publish\Core\SignalSlot\Signal\UserService\UnAssignUserFromUserGroupSignal',
123
            'eZ\Publish\Core\SignalSlot\Signal\UserService\AssignUserToUserGroupSignal',
124
            'eZ\Publish\Core\SignalSlot\Signal\UserService\DeleteUserSignal',
125
            'eZ\Publish\Core\SignalSlot\Signal\UserService\CreateUserSignal',
126
            'eZ\Publish\Core\SignalSlot\Signal\UserService\UpdateUserSignal',
127
            'eZ\Publish\Core\SignalSlot\Signal\SectionService\DeleteSectionSignal',
128
            'eZ\Publish\Core\SignalSlot\Signal\SectionService\CreateSectionSignal',
129
            'eZ\Publish\Core\SignalSlot\Signal\SectionService\UpdateSectionSignal',
130
            'eZ\Publish\Core\SignalSlot\Signal\SectionService\AssignSectionSignal',
131
            'eZ\Publish\Core\SignalSlot\Signal\RoleService\AssignRoleToUserGroupSignal',
132
            'eZ\Publish\Core\SignalSlot\Signal\RoleService\UpdatePolicySignal',
133
            'eZ\Publish\Core\SignalSlot\Signal\RoleService\CreateRoleSignal',
134
            'eZ\Publish\Core\SignalSlot\Signal\RoleService\RemovePolicySignal',
135
            'eZ\Publish\Core\SignalSlot\Signal\RoleService\UnassignRoleFromUserSignal',
136
            'eZ\Publish\Core\SignalSlot\Signal\RoleService\AddPolicySignal',
137
            'eZ\Publish\Core\SignalSlot\Signal\RoleService\UnassignRoleFromUserGroupSignal',
138
            'eZ\Publish\Core\SignalSlot\Signal\RoleService\UpdateRoleSignal',
139
            'eZ\Publish\Core\SignalSlot\Signal\RoleService\AssignRoleToUserSignal',
140
            'eZ\Publish\Core\SignalSlot\Signal\RoleService\DeleteRoleSignal',
141
            'eZ\Publish\Core\SignalSlot\Signal\TrashService\TrashSignal',
142
            'eZ\Publish\Core\SignalSlot\Signal\TrashService\EmptyTrashSignal',
143
            'eZ\Publish\Core\SignalSlot\Signal\TrashService\RecoverSignal',
144
            'eZ\Publish\Core\SignalSlot\Signal\TrashService\DeleteTrashItemSignal',
145
            'eZ\Publish\Core\SignalSlot\Signal\ObjectStateService\DeleteObjectStateSignal',
146
            'eZ\Publish\Core\SignalSlot\Signal\ObjectStateService\CreateObjectStateSignal',
147
            'eZ\Publish\Core\SignalSlot\Signal\ObjectStateService\DeleteObjectStateGroupSignal',
148
            'eZ\Publish\Core\SignalSlot\Signal\ObjectStateService\CreateObjectStateGroupSignal',
149
            'eZ\Publish\Core\SignalSlot\Signal\ObjectStateService\UpdateObjectStateSignal',
150
            'eZ\Publish\Core\SignalSlot\Signal\ObjectStateService\UpdateObjectStateGroupSignal',
151
            'eZ\Publish\Core\SignalSlot\Signal\ObjectStateService\SetContentStateSignal',
152
            'eZ\Publish\Core\SignalSlot\Signal\ObjectStateService\SetPriorityOfObjectStateSignal',
153
            'eZ\Publish\Core\SignalSlot\Signal\URLWildcardService\TranslateSignal',
154
            'eZ\Publish\Core\SignalSlot\Signal\URLWildcardService\RemoveSignal',
155
            'eZ\Publish\Core\SignalSlot\Signal\URLWildcardService\CreateSignal',
156
            'eZ\Publish\Core\SignalSlot\Signal\ContentService\UpdateContentSignal',
157
            'eZ\Publish\Core\SignalSlot\Signal\ContentService\CreateContentDraftSignal',
158
            'eZ\Publish\Core\SignalSlot\Signal\ContentService\AddRelationSignal',
159
            'eZ\Publish\Core\SignalSlot\Signal\ContentService\CreateContentSignal',
160
            'eZ\Publish\Core\SignalSlot\Signal\ContentService\DeleteContentSignal',
161
            'eZ\Publish\Core\SignalSlot\Signal\ContentService\AddTranslationInfoSignal',
162
            'eZ\Publish\Core\SignalSlot\Signal\ContentService\CopyContentSignal',
163
            'eZ\Publish\Core\SignalSlot\Signal\ContentService\UpdateContentMetadataSignal',
164
            'eZ\Publish\Core\SignalSlot\Signal\ContentService\TranslateVersionSignal',
165
            'eZ\Publish\Core\SignalSlot\Signal\ContentService\PublishVersionSignal',
166
            'eZ\Publish\Core\SignalSlot\Signal\ContentService\DeleteRelationSignal',
167
            'eZ\Publish\Core\SignalSlot\Signal\ContentService\DeleteVersionSignal',
168
            'eZ\Publish\Core\SignalSlot\Signal\LocationService\UpdateLocationSignal',
169
            'eZ\Publish\Core\SignalSlot\Signal\LocationService\HideLocationSignal',
170
            'eZ\Publish\Core\SignalSlot\Signal\LocationService\SwapLocationSignal',
171
            'eZ\Publish\Core\SignalSlot\Signal\LocationService\MoveSubtreeSignal',
172
            'eZ\Publish\Core\SignalSlot\Signal\LocationService\UnhideLocationSignal',
173
            'eZ\Publish\Core\SignalSlot\Signal\LocationService\CreateLocationSignal',
174
            'eZ\Publish\Core\SignalSlot\Signal\LocationService\DeleteLocationSignal',
175
            'eZ\Publish\Core\SignalSlot\Signal\LocationService\CopySubtreeSignal',
176
        ];
177
    }
178
}
179