Code Duplication    Length = 32-34 lines in 42 locations

eZ/Publish/Core/Event/Tests/ContentServiceTest.php 5 locations

@@ 282-315 (lines=34) @@
279
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
280
    }
281
282
    public function testReturnUpdateContentResultInBeforeEvents()
283
    {
284
        $traceableEventDispatcher = $this->getEventDispatcher(
285
            BeforeUpdateContentEvent::class,
286
            UpdateContentEvent::class
287
        );
288
289
        $parameters = [
290
            $this->createMock(VersionInfo::class),
291
            $this->createMock(ContentUpdateStruct::class),
292
        ];
293
294
        $content = $this->createMock(Content::class);
295
        $eventContent = $this->createMock(Content::class);
296
        $innerServiceMock = $this->createMock(ContentServiceInterface::class);
297
        $innerServiceMock->method('updateContent')->willReturn($content);
298
299
        $traceableEventDispatcher->addListener(BeforeUpdateContentEvent::class, function (BeforeUpdateContentEvent $event) use ($eventContent) {
300
            $event->setContent($eventContent);
301
        }, 10);
302
303
        $service = new ContentService($innerServiceMock, $traceableEventDispatcher);
304
        $result = $service->updateContent(...$parameters);
305
306
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
307
308
        $this->assertSame($eventContent, $result);
309
        $this->assertSame($calledListeners, [
310
            [BeforeUpdateContentEvent::class, 10],
311
            [BeforeUpdateContentEvent::class, 0],
312
            [UpdateContentEvent::class, 0],
313
        ]);
314
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
315
    }
316
317
    public function testUpdateContentStopPropagationInBeforeEvents()
318
    {
@@ 443-476 (lines=34) @@
440
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
441
    }
442
443
    public function testReturnCreateContentResultInBeforeEvents()
444
    {
445
        $traceableEventDispatcher = $this->getEventDispatcher(
446
            BeforeCreateContentEvent::class,
447
            CreateContentEvent::class
448
        );
449
450
        $parameters = [
451
            $this->createMock(ContentCreateStruct::class),
452
            [],
453
        ];
454
455
        $content = $this->createMock(Content::class);
456
        $eventContent = $this->createMock(Content::class);
457
        $innerServiceMock = $this->createMock(ContentServiceInterface::class);
458
        $innerServiceMock->method('createContent')->willReturn($content);
459
460
        $traceableEventDispatcher->addListener(BeforeCreateContentEvent::class, function (BeforeCreateContentEvent $event) use ($eventContent) {
461
            $event->setContent($eventContent);
462
        }, 10);
463
464
        $service = new ContentService($innerServiceMock, $traceableEventDispatcher);
465
        $result = $service->createContent(...$parameters);
466
467
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
468
469
        $this->assertSame($eventContent, $result);
470
        $this->assertSame($calledListeners, [
471
            [BeforeCreateContentEvent::class, 10],
472
            [BeforeCreateContentEvent::class, 0],
473
            [CreateContentEvent::class, 0],
474
        ]);
475
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
476
    }
477
478
    public function testCreateContentStopPropagationInBeforeEvents()
479
    {
@@ 659-692 (lines=34) @@
656
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
657
    }
658
659
    public function testReturnAddRelationResultInBeforeEvents()
660
    {
661
        $traceableEventDispatcher = $this->getEventDispatcher(
662
            BeforeAddRelationEvent::class,
663
            AddRelationEvent::class
664
        );
665
666
        $parameters = [
667
            $this->createMock(VersionInfo::class),
668
            $this->createMock(ContentInfo::class),
669
        ];
670
671
        $relation = $this->createMock(Relation::class);
672
        $eventRelation = $this->createMock(Relation::class);
673
        $innerServiceMock = $this->createMock(ContentServiceInterface::class);
674
        $innerServiceMock->method('addRelation')->willReturn($relation);
675
676
        $traceableEventDispatcher->addListener(BeforeAddRelationEvent::class, function (BeforeAddRelationEvent $event) use ($eventRelation) {
677
            $event->setRelation($eventRelation);
678
        }, 10);
679
680
        $service = new ContentService($innerServiceMock, $traceableEventDispatcher);
681
        $result = $service->addRelation(...$parameters);
682
683
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
684
685
        $this->assertSame($eventRelation, $result);
686
        $this->assertSame($calledListeners, [
687
            [BeforeAddRelationEvent::class, 10],
688
            [BeforeAddRelationEvent::class, 0],
689
            [AddRelationEvent::class, 0],
690
        ]);
691
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
692
    }
693
694
    public function testAddRelationStopPropagationInBeforeEvents()
695
    {
@@ 761-794 (lines=34) @@
758
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
759
    }
760
761
    public function testReturnUpdateContentMetadataResultInBeforeEvents()
762
    {
763
        $traceableEventDispatcher = $this->getEventDispatcher(
764
            BeforeUpdateContentMetadataEvent::class,
765
            UpdateContentMetadataEvent::class
766
        );
767
768
        $parameters = [
769
            $this->createMock(ContentInfo::class),
770
            $this->createMock(ContentMetadataUpdateStruct::class),
771
        ];
772
773
        $content = $this->createMock(Content::class);
774
        $eventContent = $this->createMock(Content::class);
775
        $innerServiceMock = $this->createMock(ContentServiceInterface::class);
776
        $innerServiceMock->method('updateContentMetadata')->willReturn($content);
777
778
        $traceableEventDispatcher->addListener(BeforeUpdateContentMetadataEvent::class, function (BeforeUpdateContentMetadataEvent $event) use ($eventContent) {
779
            $event->setContent($eventContent);
780
        }, 10);
781
782
        $service = new ContentService($innerServiceMock, $traceableEventDispatcher);
783
        $result = $service->updateContentMetadata(...$parameters);
784
785
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
786
787
        $this->assertSame($eventContent, $result);
788
        $this->assertSame($calledListeners, [
789
            [BeforeUpdateContentMetadataEvent::class, 10],
790
            [BeforeUpdateContentMetadataEvent::class, 0],
791
            [UpdateContentMetadataEvent::class, 0],
792
        ]);
793
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
794
    }
795
796
    public function testUpdateContentMetadataStopPropagationInBeforeEvents()
797
    {
@@ 922-955 (lines=34) @@
919
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
920
    }
921
922
    public function testReturnPublishVersionResultInBeforeEvents()
923
    {
924
        $traceableEventDispatcher = $this->getEventDispatcher(
925
            BeforePublishVersionEvent::class,
926
            PublishVersionEvent::class
927
        );
928
929
        $parameters = [
930
            $this->createMock(VersionInfo::class),
931
            [],
932
        ];
933
934
        $content = $this->createMock(Content::class);
935
        $eventContent = $this->createMock(Content::class);
936
        $innerServiceMock = $this->createMock(ContentServiceInterface::class);
937
        $innerServiceMock->method('publishVersion')->willReturn($content);
938
939
        $traceableEventDispatcher->addListener(BeforePublishVersionEvent::class, function (BeforePublishVersionEvent $event) use ($eventContent) {
940
            $event->setContent($eventContent);
941
        }, 10);
942
943
        $service = new ContentService($innerServiceMock, $traceableEventDispatcher);
944
        $result = $service->publishVersion(...$parameters);
945
946
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
947
948
        $this->assertSame($eventContent, $result);
949
        $this->assertSame($calledListeners, [
950
            [BeforePublishVersionEvent::class, 10],
951
            [BeforePublishVersionEvent::class, 0],
952
            [PublishVersionEvent::class, 0],
953
        ]);
954
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
955
    }
956
957
    public function testPublishVersionStopPropagationInBeforeEvents()
958
    {

eZ/Publish/Core/Event/Tests/ContentTypeServiceTest.php 5 locations

@@ 199-231 (lines=33) @@
196
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
197
    }
198
199
    public function testReturnCreateContentTypeDraftResultInBeforeEvents()
200
    {
201
        $traceableEventDispatcher = $this->getEventDispatcher(
202
            BeforeCreateContentTypeDraftEvent::class,
203
            CreateContentTypeDraftEvent::class
204
        );
205
206
        $parameters = [
207
            $this->createMock(ContentType::class),
208
        ];
209
210
        $contentTypeDraft = $this->createMock(ContentTypeDraft::class);
211
        $eventContentTypeDraft = $this->createMock(ContentTypeDraft::class);
212
        $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class);
213
        $innerServiceMock->method('createContentTypeDraft')->willReturn($contentTypeDraft);
214
215
        $traceableEventDispatcher->addListener(BeforeCreateContentTypeDraftEvent::class, function (BeforeCreateContentTypeDraftEvent $event) use ($eventContentTypeDraft) {
216
            $event->setContentTypeDraft($eventContentTypeDraft);
217
        }, 10);
218
219
        $service = new ContentTypeService($innerServiceMock, $traceableEventDispatcher);
220
        $result = $service->createContentTypeDraft(...$parameters);
221
222
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
223
224
        $this->assertSame($eventContentTypeDraft, $result);
225
        $this->assertSame($calledListeners, [
226
            [BeforeCreateContentTypeDraftEvent::class, 10],
227
            [BeforeCreateContentTypeDraftEvent::class, 0],
228
            [CreateContentTypeDraftEvent::class, 0],
229
        ]);
230
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
231
    }
232
233
    public function testCreateContentTypeDraftStopPropagationInBeforeEvents()
234
    {
@@ 298-330 (lines=33) @@
295
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
296
    }
297
298
    public function testReturnCreateContentTypeGroupResultInBeforeEvents()
299
    {
300
        $traceableEventDispatcher = $this->getEventDispatcher(
301
            BeforeCreateContentTypeGroupEvent::class,
302
            CreateContentTypeGroupEvent::class
303
        );
304
305
        $parameters = [
306
            $this->createMock(ContentTypeGroupCreateStruct::class),
307
        ];
308
309
        $contentTypeGroup = $this->createMock(ContentTypeGroup::class);
310
        $eventContentTypeGroup = $this->createMock(ContentTypeGroup::class);
311
        $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class);
312
        $innerServiceMock->method('createContentTypeGroup')->willReturn($contentTypeGroup);
313
314
        $traceableEventDispatcher->addListener(BeforeCreateContentTypeGroupEvent::class, function (BeforeCreateContentTypeGroupEvent $event) use ($eventContentTypeGroup) {
315
            $event->setContentTypeGroup($eventContentTypeGroup);
316
        }, 10);
317
318
        $service = new ContentTypeService($innerServiceMock, $traceableEventDispatcher);
319
        $result = $service->createContentTypeGroup(...$parameters);
320
321
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
322
323
        $this->assertSame($eventContentTypeGroup, $result);
324
        $this->assertSame($calledListeners, [
325
            [BeforeCreateContentTypeGroupEvent::class, 10],
326
            [BeforeCreateContentTypeGroupEvent::class, 0],
327
            [CreateContentTypeGroupEvent::class, 0],
328
        ]);
329
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
330
    }
331
332
    public function testCreateContentTypeGroupStopPropagationInBeforeEvents()
333
    {
@@ 457-490 (lines=34) @@
454
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
455
    }
456
457
    public function testReturnCreateContentTypeResultInBeforeEvents()
458
    {
459
        $traceableEventDispatcher = $this->getEventDispatcher(
460
            BeforeCreateContentTypeEvent::class,
461
            CreateContentTypeEvent::class
462
        );
463
464
        $parameters = [
465
            $this->createMock(ContentTypeCreateStruct::class),
466
            [],
467
        ];
468
469
        $contentTypeDraft = $this->createMock(ContentTypeDraft::class);
470
        $eventContentTypeDraft = $this->createMock(ContentTypeDraft::class);
471
        $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class);
472
        $innerServiceMock->method('createContentType')->willReturn($contentTypeDraft);
473
474
        $traceableEventDispatcher->addListener(BeforeCreateContentTypeEvent::class, function (BeforeCreateContentTypeEvent $event) use ($eventContentTypeDraft) {
475
            $event->setContentTypeDraft($eventContentTypeDraft);
476
        }, 10);
477
478
        $service = new ContentTypeService($innerServiceMock, $traceableEventDispatcher);
479
        $result = $service->createContentType(...$parameters);
480
481
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
482
483
        $this->assertSame($eventContentTypeDraft, $result);
484
        $this->assertSame($calledListeners, [
485
            [BeforeCreateContentTypeEvent::class, 10],
486
            [BeforeCreateContentTypeEvent::class, 0],
487
            [CreateContentTypeEvent::class, 0],
488
        ]);
489
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
490
    }
491
492
    public function testCreateContentTypeStopPropagationInBeforeEvents()
493
    {
@@ 559-592 (lines=34) @@
556
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
557
    }
558
559
    public function testReturnRemoveContentTypeTranslationResultInBeforeEvents()
560
    {
561
        $traceableEventDispatcher = $this->getEventDispatcher(
562
            BeforeRemoveContentTypeTranslationEvent::class,
563
            RemoveContentTypeTranslationEvent::class
564
        );
565
566
        $parameters = [
567
            $this->createMock(ContentTypeDraft::class),
568
            'random_value_5cff79c318f913.11826610',
569
        ];
570
571
        $newContentTypeDraft = $this->createMock(ContentTypeDraft::class);
572
        $eventNewContentTypeDraft = $this->createMock(ContentTypeDraft::class);
573
        $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class);
574
        $innerServiceMock->method('removeContentTypeTranslation')->willReturn($newContentTypeDraft);
575
576
        $traceableEventDispatcher->addListener(BeforeRemoveContentTypeTranslationEvent::class, function (BeforeRemoveContentTypeTranslationEvent $event) use ($eventNewContentTypeDraft) {
577
            $event->setNewContentTypeDraft($eventNewContentTypeDraft);
578
        }, 10);
579
580
        $service = new ContentTypeService($innerServiceMock, $traceableEventDispatcher);
581
        $result = $service->removeContentTypeTranslation(...$parameters);
582
583
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
584
585
        $this->assertSame($eventNewContentTypeDraft, $result);
586
        $this->assertSame($calledListeners, [
587
            [BeforeRemoveContentTypeTranslationEvent::class, 10],
588
            [BeforeRemoveContentTypeTranslationEvent::class, 0],
589
            [RemoveContentTypeTranslationEvent::class, 0],
590
        ]);
591
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
592
    }
593
594
    public function testRemoveContentTypeTranslationStopPropagationInBeforeEvents()
595
    {
@@ 1072-1105 (lines=34) @@
1069
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
1070
    }
1071
1072
    public function testReturnCopyContentTypeResultInBeforeEvents()
1073
    {
1074
        $traceableEventDispatcher = $this->getEventDispatcher(
1075
            BeforeCopyContentTypeEvent::class,
1076
            CopyContentTypeEvent::class
1077
        );
1078
1079
        $parameters = [
1080
            $this->createMock(ContentType::class),
1081
            $this->createMock(User::class),
1082
        ];
1083
1084
        $contentTypeCopy = $this->createMock(ContentType::class);
1085
        $eventContentTypeCopy = $this->createMock(ContentType::class);
1086
        $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class);
1087
        $innerServiceMock->method('copyContentType')->willReturn($contentTypeCopy);
1088
1089
        $traceableEventDispatcher->addListener(BeforeCopyContentTypeEvent::class, function (BeforeCopyContentTypeEvent $event) use ($eventContentTypeCopy) {
1090
            $event->setContentTypeCopy($eventContentTypeCopy);
1091
        }, 10);
1092
1093
        $service = new ContentTypeService($innerServiceMock, $traceableEventDispatcher);
1094
        $result = $service->copyContentType(...$parameters);
1095
1096
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
1097
1098
        $this->assertSame($eventContentTypeCopy, $result);
1099
        $this->assertSame($calledListeners, [
1100
            [BeforeCopyContentTypeEvent::class, 10],
1101
            [BeforeCopyContentTypeEvent::class, 0],
1102
            [CopyContentTypeEvent::class, 0],
1103
        ]);
1104
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
1105
    }
1106
1107
    public function testCopyContentTypeStopPropagationInBeforeEvents()
1108
    {

eZ/Publish/Core/Event/Tests/LanguageServiceTest.php 4 locations

@@ 111-143 (lines=33) @@
108
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
109
    }
110
111
    public function testReturnCreateLanguageResultInBeforeEvents()
112
    {
113
        $traceableEventDispatcher = $this->getEventDispatcher(
114
            BeforeCreateLanguageEvent::class,
115
            CreateLanguageEvent::class
116
        );
117
118
        $parameters = [
119
            $this->createMock(LanguageCreateStruct::class),
120
        ];
121
122
        $language = $this->createMock(Language::class);
123
        $eventLanguage = $this->createMock(Language::class);
124
        $innerServiceMock = $this->createMock(LanguageServiceInterface::class);
125
        $innerServiceMock->method('createLanguage')->willReturn($language);
126
127
        $traceableEventDispatcher->addListener(BeforeCreateLanguageEvent::class, function (BeforeCreateLanguageEvent $event) use ($eventLanguage) {
128
            $event->setLanguage($eventLanguage);
129
        }, 10);
130
131
        $service = new LanguageService($innerServiceMock, $traceableEventDispatcher);
132
        $result = $service->createLanguage(...$parameters);
133
134
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
135
136
        $this->assertSame($eventLanguage, $result);
137
        $this->assertSame($calledListeners, [
138
            [BeforeCreateLanguageEvent::class, 10],
139
            [BeforeCreateLanguageEvent::class, 0],
140
            [CreateLanguageEvent::class, 0],
141
        ]);
142
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
143
    }
144
145
    public function testCreateLanguageStopPropagationInBeforeEvents()
146
    {
@@ 211-244 (lines=34) @@
208
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
209
    }
210
211
    public function testReturnUpdateLanguageNameResultInBeforeEvents()
212
    {
213
        $traceableEventDispatcher = $this->getEventDispatcher(
214
            BeforeUpdateLanguageNameEvent::class,
215
            UpdateLanguageNameEvent::class
216
        );
217
218
        $parameters = [
219
            $this->createMock(Language::class),
220
            'random_value_5cff79c3161312.94068030',
221
        ];
222
223
        $updatedLanguage = $this->createMock(Language::class);
224
        $eventUpdatedLanguage = $this->createMock(Language::class);
225
        $innerServiceMock = $this->createMock(LanguageServiceInterface::class);
226
        $innerServiceMock->method('updateLanguageName')->willReturn($updatedLanguage);
227
228
        $traceableEventDispatcher->addListener(BeforeUpdateLanguageNameEvent::class, function (BeforeUpdateLanguageNameEvent $event) use ($eventUpdatedLanguage) {
229
            $event->setUpdatedLanguage($eventUpdatedLanguage);
230
        }, 10);
231
232
        $service = new LanguageService($innerServiceMock, $traceableEventDispatcher);
233
        $result = $service->updateLanguageName(...$parameters);
234
235
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
236
237
        $this->assertSame($eventUpdatedLanguage, $result);
238
        $this->assertSame($calledListeners, [
239
            [BeforeUpdateLanguageNameEvent::class, 10],
240
            [BeforeUpdateLanguageNameEvent::class, 0],
241
            [UpdateLanguageNameEvent::class, 0],
242
        ]);
243
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
244
    }
245
246
    public function testUpdateLanguageNameStopPropagationInBeforeEvents()
247
    {
@@ 312-344 (lines=33) @@
309
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
310
    }
311
312
    public function testReturnDisableLanguageResultInBeforeEvents()
313
    {
314
        $traceableEventDispatcher = $this->getEventDispatcher(
315
            BeforeDisableLanguageEvent::class,
316
            DisableLanguageEvent::class
317
        );
318
319
        $parameters = [
320
            $this->createMock(Language::class),
321
        ];
322
323
        $disabledLanguage = $this->createMock(Language::class);
324
        $eventDisabledLanguage = $this->createMock(Language::class);
325
        $innerServiceMock = $this->createMock(LanguageServiceInterface::class);
326
        $innerServiceMock->method('disableLanguage')->willReturn($disabledLanguage);
327
328
        $traceableEventDispatcher->addListener(BeforeDisableLanguageEvent::class, function (BeforeDisableLanguageEvent $event) use ($eventDisabledLanguage) {
329
            $event->setDisabledLanguage($eventDisabledLanguage);
330
        }, 10);
331
332
        $service = new LanguageService($innerServiceMock, $traceableEventDispatcher);
333
        $result = $service->disableLanguage(...$parameters);
334
335
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
336
337
        $this->assertSame($eventDisabledLanguage, $result);
338
        $this->assertSame($calledListeners, [
339
            [BeforeDisableLanguageEvent::class, 10],
340
            [BeforeDisableLanguageEvent::class, 0],
341
            [DisableLanguageEvent::class, 0],
342
        ]);
343
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
344
    }
345
346
    public function testDisableLanguageStopPropagationInBeforeEvents()
347
    {
@@ 411-443 (lines=33) @@
408
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
409
    }
410
411
    public function testReturnEnableLanguageResultInBeforeEvents()
412
    {
413
        $traceableEventDispatcher = $this->getEventDispatcher(
414
            BeforeEnableLanguageEvent::class,
415
            EnableLanguageEvent::class
416
        );
417
418
        $parameters = [
419
            $this->createMock(Language::class),
420
        ];
421
422
        $enabledLanguage = $this->createMock(Language::class);
423
        $eventEnabledLanguage = $this->createMock(Language::class);
424
        $innerServiceMock = $this->createMock(LanguageServiceInterface::class);
425
        $innerServiceMock->method('enableLanguage')->willReturn($enabledLanguage);
426
427
        $traceableEventDispatcher->addListener(BeforeEnableLanguageEvent::class, function (BeforeEnableLanguageEvent $event) use ($eventEnabledLanguage) {
428
            $event->setEnabledLanguage($eventEnabledLanguage);
429
        }, 10);
430
431
        $service = new LanguageService($innerServiceMock, $traceableEventDispatcher);
432
        $result = $service->enableLanguage(...$parameters);
433
434
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
435
436
        $this->assertSame($eventEnabledLanguage, $result);
437
        $this->assertSame($calledListeners, [
438
            [BeforeEnableLanguageEvent::class, 10],
439
            [BeforeEnableLanguageEvent::class, 0],
440
            [EnableLanguageEvent::class, 0],
441
        ]);
442
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
443
    }
444
445
    public function testEnableLanguageStopPropagationInBeforeEvents()
446
    {

eZ/Publish/Core/Event/Tests/LocationServiceTest.php 5 locations

@@ 63-96 (lines=34) @@
60
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
61
    }
62
63
    public function testReturnCopySubtreeResultInBeforeEvents()
64
    {
65
        $traceableEventDispatcher = $this->getEventDispatcher(
66
            BeforeCopySubtreeEvent::class,
67
            CopySubtreeEvent::class
68
        );
69
70
        $parameters = [
71
            $this->createMock(Location::class),
72
            $this->createMock(Location::class),
73
        ];
74
75
        $location = $this->createMock(Location::class);
76
        $eventLocation = $this->createMock(Location::class);
77
        $innerServiceMock = $this->createMock(LocationServiceInterface::class);
78
        $innerServiceMock->method('copySubtree')->willReturn($location);
79
80
        $traceableEventDispatcher->addListener(BeforeCopySubtreeEvent::class, function (BeforeCopySubtreeEvent $event) use ($eventLocation) {
81
            $event->setLocation($eventLocation);
82
        }, 10);
83
84
        $service = new LocationService($innerServiceMock, $traceableEventDispatcher);
85
        $result = $service->copySubtree(...$parameters);
86
87
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
88
89
        $this->assertSame($eventLocation, $result);
90
        $this->assertSame($calledListeners, [
91
            [BeforeCopySubtreeEvent::class, 10],
92
            [BeforeCopySubtreeEvent::class, 0],
93
            [CopySubtreeEvent::class, 0],
94
        ]);
95
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
96
    }
97
98
    public function testCopySubtreeStopPropagationInBeforeEvents()
99
    {
@@ 221-253 (lines=33) @@
218
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
219
    }
220
221
    public function testReturnUnhideLocationResultInBeforeEvents()
222
    {
223
        $traceableEventDispatcher = $this->getEventDispatcher(
224
            BeforeUnhideLocationEvent::class,
225
            UnhideLocationEvent::class
226
        );
227
228
        $parameters = [
229
            $this->createMock(Location::class),
230
        ];
231
232
        $revealedLocation = $this->createMock(Location::class);
233
        $eventRevealedLocation = $this->createMock(Location::class);
234
        $innerServiceMock = $this->createMock(LocationServiceInterface::class);
235
        $innerServiceMock->method('unhideLocation')->willReturn($revealedLocation);
236
237
        $traceableEventDispatcher->addListener(BeforeUnhideLocationEvent::class, function (BeforeUnhideLocationEvent $event) use ($eventRevealedLocation) {
238
            $event->setRevealedLocation($eventRevealedLocation);
239
        }, 10);
240
241
        $service = new LocationService($innerServiceMock, $traceableEventDispatcher);
242
        $result = $service->unhideLocation(...$parameters);
243
244
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
245
246
        $this->assertSame($eventRevealedLocation, $result);
247
        $this->assertSame($calledListeners, [
248
            [BeforeUnhideLocationEvent::class, 10],
249
            [BeforeUnhideLocationEvent::class, 0],
250
            [UnhideLocationEvent::class, 0],
251
        ]);
252
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
253
    }
254
255
    public function testUnhideLocationStopPropagationInBeforeEvents()
256
    {
@@ 320-352 (lines=33) @@
317
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
318
    }
319
320
    public function testReturnHideLocationResultInBeforeEvents()
321
    {
322
        $traceableEventDispatcher = $this->getEventDispatcher(
323
            BeforeHideLocationEvent::class,
324
            HideLocationEvent::class
325
        );
326
327
        $parameters = [
328
            $this->createMock(Location::class),
329
        ];
330
331
        $hiddenLocation = $this->createMock(Location::class);
332
        $eventHiddenLocation = $this->createMock(Location::class);
333
        $innerServiceMock = $this->createMock(LocationServiceInterface::class);
334
        $innerServiceMock->method('hideLocation')->willReturn($hiddenLocation);
335
336
        $traceableEventDispatcher->addListener(BeforeHideLocationEvent::class, function (BeforeHideLocationEvent $event) use ($eventHiddenLocation) {
337
            $event->setHiddenLocation($eventHiddenLocation);
338
        }, 10);
339
340
        $service = new LocationService($innerServiceMock, $traceableEventDispatcher);
341
        $result = $service->hideLocation(...$parameters);
342
343
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
344
345
        $this->assertSame($eventHiddenLocation, $result);
346
        $this->assertSame($calledListeners, [
347
            [BeforeHideLocationEvent::class, 10],
348
            [BeforeHideLocationEvent::class, 0],
349
            [HideLocationEvent::class, 0],
350
        ]);
351
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
352
    }
353
354
    public function testHideLocationStopPropagationInBeforeEvents()
355
    {
@@ 538-571 (lines=34) @@
535
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
536
    }
537
538
    public function testReturnUpdateLocationResultInBeforeEvents()
539
    {
540
        $traceableEventDispatcher = $this->getEventDispatcher(
541
            BeforeUpdateLocationEvent::class,
542
            UpdateLocationEvent::class
543
        );
544
545
        $parameters = [
546
            $this->createMock(Location::class),
547
            $this->createMock(LocationUpdateStruct::class),
548
        ];
549
550
        $updatedLocation = $this->createMock(Location::class);
551
        $eventUpdatedLocation = $this->createMock(Location::class);
552
        $innerServiceMock = $this->createMock(LocationServiceInterface::class);
553
        $innerServiceMock->method('updateLocation')->willReturn($updatedLocation);
554
555
        $traceableEventDispatcher->addListener(BeforeUpdateLocationEvent::class, function (BeforeUpdateLocationEvent $event) use ($eventUpdatedLocation) {
556
            $event->setUpdatedLocation($eventUpdatedLocation);
557
        }, 10);
558
559
        $service = new LocationService($innerServiceMock, $traceableEventDispatcher);
560
        $result = $service->updateLocation(...$parameters);
561
562
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
563
564
        $this->assertSame($eventUpdatedLocation, $result);
565
        $this->assertSame($calledListeners, [
566
            [BeforeUpdateLocationEvent::class, 10],
567
            [BeforeUpdateLocationEvent::class, 0],
568
            [UpdateLocationEvent::class, 0],
569
        ]);
570
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
571
    }
572
573
    public function testUpdateLocationStopPropagationInBeforeEvents()
574
    {
@@ 640-673 (lines=34) @@
637
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
638
    }
639
640
    public function testReturnCreateLocationResultInBeforeEvents()
641
    {
642
        $traceableEventDispatcher = $this->getEventDispatcher(
643
            BeforeCreateLocationEvent::class,
644
            CreateLocationEvent::class
645
        );
646
647
        $parameters = [
648
            $this->createMock(ContentInfo::class),
649
            $this->createMock(LocationCreateStruct::class),
650
        ];
651
652
        $location = $this->createMock(Location::class);
653
        $eventLocation = $this->createMock(Location::class);
654
        $innerServiceMock = $this->createMock(LocationServiceInterface::class);
655
        $innerServiceMock->method('createLocation')->willReturn($location);
656
657
        $traceableEventDispatcher->addListener(BeforeCreateLocationEvent::class, function (BeforeCreateLocationEvent $event) use ($eventLocation) {
658
            $event->setLocation($eventLocation);
659
        }, 10);
660
661
        $service = new LocationService($innerServiceMock, $traceableEventDispatcher);
662
        $result = $service->createLocation(...$parameters);
663
664
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
665
666
        $this->assertSame($eventLocation, $result);
667
        $this->assertSame($calledListeners, [
668
            [BeforeCreateLocationEvent::class, 10],
669
            [BeforeCreateLocationEvent::class, 0],
670
            [CreateLocationEvent::class, 0],
671
        ]);
672
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
673
    }
674
675
    public function testCreateLocationStopPropagationInBeforeEvents()
676
    {

eZ/Publish/Core/Event/Tests/NotificationServiceTest.php 1 location

@@ 50-82 (lines=33) @@
47
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
48
    }
49
50
    public function testReturnCreateNotificationResultInBeforeEvents()
51
    {
52
        $traceableEventDispatcher = $this->getEventDispatcher(
53
            BeforeCreateNotificationEvent::class,
54
            CreateNotificationEvent::class
55
        );
56
57
        $parameters = [
58
            $this->createMock(CreateStruct::class),
59
        ];
60
61
        $notification = $this->createMock(Notification::class);
62
        $eventNotification = $this->createMock(Notification::class);
63
        $innerServiceMock = $this->createMock(NotificationServiceInterface::class);
64
        $innerServiceMock->method('createNotification')->willReturn($notification);
65
66
        $traceableEventDispatcher->addListener(BeforeCreateNotificationEvent::class, function (BeforeCreateNotificationEvent $event) use ($eventNotification) {
67
            $event->setNotification($eventNotification);
68
        }, 10);
69
70
        $service = new NotificationService($innerServiceMock, $traceableEventDispatcher);
71
        $result = $service->createNotification(...$parameters);
72
73
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
74
75
        $this->assertSame($eventNotification, $result);
76
        $this->assertSame($calledListeners, [
77
            [BeforeCreateNotificationEvent::class, 10],
78
            [BeforeCreateNotificationEvent::class, 0],
79
            [CreateNotificationEvent::class, 0],
80
        ]);
81
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
82
    }
83
84
    public function testCreateNotificationStopPropagationInBeforeEvents()
85
    {

eZ/Publish/Core/Event/Tests/ObjectStateServiceTest.php 4 locations

@@ 126-158 (lines=33) @@
123
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
124
    }
125
126
    public function testReturnCreateObjectStateGroupResultInBeforeEvents()
127
    {
128
        $traceableEventDispatcher = $this->getEventDispatcher(
129
            BeforeCreateObjectStateGroupEvent::class,
130
            CreateObjectStateGroupEvent::class
131
        );
132
133
        $parameters = [
134
            $this->createMock(ObjectStateGroupCreateStruct::class),
135
        ];
136
137
        $objectStateGroup = $this->createMock(ObjectStateGroup::class);
138
        $eventObjectStateGroup = $this->createMock(ObjectStateGroup::class);
139
        $innerServiceMock = $this->createMock(ObjectStateServiceInterface::class);
140
        $innerServiceMock->method('createObjectStateGroup')->willReturn($objectStateGroup);
141
142
        $traceableEventDispatcher->addListener(BeforeCreateObjectStateGroupEvent::class, function (BeforeCreateObjectStateGroupEvent $event) use ($eventObjectStateGroup) {
143
            $event->setObjectStateGroup($eventObjectStateGroup);
144
        }, 10);
145
146
        $service = new ObjectStateService($innerServiceMock, $traceableEventDispatcher);
147
        $result = $service->createObjectStateGroup(...$parameters);
148
149
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
150
151
        $this->assertSame($eventObjectStateGroup, $result);
152
        $this->assertSame($calledListeners, [
153
            [BeforeCreateObjectStateGroupEvent::class, 10],
154
            [BeforeCreateObjectStateGroupEvent::class, 0],
155
            [CreateObjectStateGroupEvent::class, 0],
156
        ]);
157
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
158
    }
159
160
    public function testCreateObjectStateGroupStopPropagationInBeforeEvents()
161
    {
@@ 226-259 (lines=34) @@
223
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
224
    }
225
226
    public function testReturnUpdateObjectStateResultInBeforeEvents()
227
    {
228
        $traceableEventDispatcher = $this->getEventDispatcher(
229
            BeforeUpdateObjectStateEvent::class,
230
            UpdateObjectStateEvent::class
231
        );
232
233
        $parameters = [
234
            $this->createMock(ObjectState::class),
235
            $this->createMock(ObjectStateUpdateStruct::class),
236
        ];
237
238
        $updatedObjectState = $this->createMock(ObjectState::class);
239
        $eventUpdatedObjectState = $this->createMock(ObjectState::class);
240
        $innerServiceMock = $this->createMock(ObjectStateServiceInterface::class);
241
        $innerServiceMock->method('updateObjectState')->willReturn($updatedObjectState);
242
243
        $traceableEventDispatcher->addListener(BeforeUpdateObjectStateEvent::class, function (BeforeUpdateObjectStateEvent $event) use ($eventUpdatedObjectState) {
244
            $event->setUpdatedObjectState($eventUpdatedObjectState);
245
        }, 10);
246
247
        $service = new ObjectStateService($innerServiceMock, $traceableEventDispatcher);
248
        $result = $service->updateObjectState(...$parameters);
249
250
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
251
252
        $this->assertSame($eventUpdatedObjectState, $result);
253
        $this->assertSame($calledListeners, [
254
            [BeforeUpdateObjectStateEvent::class, 10],
255
            [BeforeUpdateObjectStateEvent::class, 0],
256
            [UpdateObjectStateEvent::class, 0],
257
        ]);
258
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
259
    }
260
261
    public function testUpdateObjectStateStopPropagationInBeforeEvents()
262
    {
@@ 328-361 (lines=34) @@
325
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
326
    }
327
328
    public function testReturnCreateObjectStateResultInBeforeEvents()
329
    {
330
        $traceableEventDispatcher = $this->getEventDispatcher(
331
            BeforeCreateObjectStateEvent::class,
332
            CreateObjectStateEvent::class
333
        );
334
335
        $parameters = [
336
            $this->createMock(ObjectStateGroup::class),
337
            $this->createMock(ObjectStateCreateStruct::class),
338
        ];
339
340
        $objectState = $this->createMock(ObjectState::class);
341
        $eventObjectState = $this->createMock(ObjectState::class);
342
        $innerServiceMock = $this->createMock(ObjectStateServiceInterface::class);
343
        $innerServiceMock->method('createObjectState')->willReturn($objectState);
344
345
        $traceableEventDispatcher->addListener(BeforeCreateObjectStateEvent::class, function (BeforeCreateObjectStateEvent $event) use ($eventObjectState) {
346
            $event->setObjectState($eventObjectState);
347
        }, 10);
348
349
        $service = new ObjectStateService($innerServiceMock, $traceableEventDispatcher);
350
        $result = $service->createObjectState(...$parameters);
351
352
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
353
354
        $this->assertSame($eventObjectState, $result);
355
        $this->assertSame($calledListeners, [
356
            [BeforeCreateObjectStateEvent::class, 10],
357
            [BeforeCreateObjectStateEvent::class, 0],
358
            [CreateObjectStateEvent::class, 0],
359
        ]);
360
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
361
    }
362
363
    public function testCreateObjectStateStopPropagationInBeforeEvents()
364
    {
@@ 430-463 (lines=34) @@
427
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
428
    }
429
430
    public function testReturnUpdateObjectStateGroupResultInBeforeEvents()
431
    {
432
        $traceableEventDispatcher = $this->getEventDispatcher(
433
            BeforeUpdateObjectStateGroupEvent::class,
434
            UpdateObjectStateGroupEvent::class
435
        );
436
437
        $parameters = [
438
            $this->createMock(ObjectStateGroup::class),
439
            $this->createMock(ObjectStateGroupUpdateStruct::class),
440
        ];
441
442
        $updatedObjectStateGroup = $this->createMock(ObjectStateGroup::class);
443
        $eventUpdatedObjectStateGroup = $this->createMock(ObjectStateGroup::class);
444
        $innerServiceMock = $this->createMock(ObjectStateServiceInterface::class);
445
        $innerServiceMock->method('updateObjectStateGroup')->willReturn($updatedObjectStateGroup);
446
447
        $traceableEventDispatcher->addListener(BeforeUpdateObjectStateGroupEvent::class, function (BeforeUpdateObjectStateGroupEvent $event) use ($eventUpdatedObjectStateGroup) {
448
            $event->setUpdatedObjectStateGroup($eventUpdatedObjectStateGroup);
449
        }, 10);
450
451
        $service = new ObjectStateService($innerServiceMock, $traceableEventDispatcher);
452
        $result = $service->updateObjectStateGroup(...$parameters);
453
454
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
455
456
        $this->assertSame($eventUpdatedObjectStateGroup, $result);
457
        $this->assertSame($calledListeners, [
458
            [BeforeUpdateObjectStateGroupEvent::class, 10],
459
            [BeforeUpdateObjectStateGroupEvent::class, 0],
460
            [UpdateObjectStateGroupEvent::class, 0],
461
        ]);
462
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
463
    }
464
465
    public function testUpdateObjectStateGroupStopPropagationInBeforeEvents()
466
    {

eZ/Publish/Core/Event/Tests/SectionServiceTest.php 2 locations

@@ 117-150 (lines=34) @@
114
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
115
    }
116
117
    public function testReturnUpdateSectionResultInBeforeEvents()
118
    {
119
        $traceableEventDispatcher = $this->getEventDispatcher(
120
            BeforeUpdateSectionEvent::class,
121
            UpdateSectionEvent::class
122
        );
123
124
        $parameters = [
125
            $this->createMock(Section::class),
126
            $this->createMock(SectionUpdateStruct::class),
127
        ];
128
129
        $updatedSection = $this->createMock(Section::class);
130
        $eventUpdatedSection = $this->createMock(Section::class);
131
        $innerServiceMock = $this->createMock(SectionServiceInterface::class);
132
        $innerServiceMock->method('updateSection')->willReturn($updatedSection);
133
134
        $traceableEventDispatcher->addListener(BeforeUpdateSectionEvent::class, function (BeforeUpdateSectionEvent $event) use ($eventUpdatedSection) {
135
            $event->setUpdatedSection($eventUpdatedSection);
136
        }, 10);
137
138
        $service = new SectionService($innerServiceMock, $traceableEventDispatcher);
139
        $result = $service->updateSection(...$parameters);
140
141
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
142
143
        $this->assertSame($eventUpdatedSection, $result);
144
        $this->assertSame($calledListeners, [
145
            [BeforeUpdateSectionEvent::class, 10],
146
            [BeforeUpdateSectionEvent::class, 0],
147
            [UpdateSectionEvent::class, 0],
148
        ]);
149
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
150
    }
151
152
    public function testUpdateSectionStopPropagationInBeforeEvents()
153
    {
@@ 334-366 (lines=33) @@
331
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
332
    }
333
334
    public function testReturnCreateSectionResultInBeforeEvents()
335
    {
336
        $traceableEventDispatcher = $this->getEventDispatcher(
337
            BeforeCreateSectionEvent::class,
338
            CreateSectionEvent::class
339
        );
340
341
        $parameters = [
342
            $this->createMock(SectionCreateStruct::class),
343
        ];
344
345
        $section = $this->createMock(Section::class);
346
        $eventSection = $this->createMock(Section::class);
347
        $innerServiceMock = $this->createMock(SectionServiceInterface::class);
348
        $innerServiceMock->method('createSection')->willReturn($section);
349
350
        $traceableEventDispatcher->addListener(BeforeCreateSectionEvent::class, function (BeforeCreateSectionEvent $event) use ($eventSection) {
351
            $event->setSection($eventSection);
352
        }, 10);
353
354
        $service = new SectionService($innerServiceMock, $traceableEventDispatcher);
355
        $result = $service->createSection(...$parameters);
356
357
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
358
359
        $this->assertSame($eventSection, $result);
360
        $this->assertSame($calledListeners, [
361
            [BeforeCreateSectionEvent::class, 10],
362
            [BeforeCreateSectionEvent::class, 0],
363
            [CreateSectionEvent::class, 0],
364
        ]);
365
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
366
    }
367
368
    public function testCreateSectionStopPropagationInBeforeEvents()
369
    {

eZ/Publish/Core/Event/Tests/TrashServiceTest.php 4 locations

@@ 53-84 (lines=32) @@
50
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
51
    }
52
53
    public function testReturnEmptyTrashResultInBeforeEvents()
54
    {
55
        $traceableEventDispatcher = $this->getEventDispatcher(
56
            BeforeEmptyTrashEvent::class,
57
            EmptyTrashEvent::class
58
        );
59
60
        $parameters = [
61
        ];
62
63
        $resultList = $this->createMock(TrashItemDeleteResultList::class);
64
        $eventResultList = $this->createMock(TrashItemDeleteResultList::class);
65
        $innerServiceMock = $this->createMock(TrashServiceInterface::class);
66
        $innerServiceMock->method('emptyTrash')->willReturn($resultList);
67
68
        $traceableEventDispatcher->addListener(BeforeEmptyTrashEvent::class, function (BeforeEmptyTrashEvent $event) use ($eventResultList) {
69
            $event->setResultList($eventResultList);
70
        }, 10);
71
72
        $service = new TrashService($innerServiceMock, $traceableEventDispatcher);
73
        $result = $service->emptyTrash(...$parameters);
74
75
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
76
77
        $this->assertSame($eventResultList, $result);
78
        $this->assertSame($calledListeners, [
79
            [BeforeEmptyTrashEvent::class, 10],
80
            [BeforeEmptyTrashEvent::class, 0],
81
            [EmptyTrashEvent::class, 0],
82
        ]);
83
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
84
    }
85
86
    public function testEmptyTrashStopPropagationInBeforeEvents()
87
    {
@@ 150-182 (lines=33) @@
147
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
148
    }
149
150
    public function testReturnTrashResultInBeforeEvents()
151
    {
152
        $traceableEventDispatcher = $this->getEventDispatcher(
153
            BeforeTrashEvent::class,
154
            TrashEvent::class
155
        );
156
157
        $parameters = [
158
            $this->createMock(Location::class),
159
        ];
160
161
        $trashItem = $this->createMock(TrashItem::class);
162
        $eventTrashItem = $this->createMock(TrashItem::class);
163
        $innerServiceMock = $this->createMock(TrashServiceInterface::class);
164
        $innerServiceMock->method('trash')->willReturn($trashItem);
165
166
        $traceableEventDispatcher->addListener(BeforeTrashEvent::class, function (BeforeTrashEvent $event) use ($eventTrashItem) {
167
            $event->setResult($eventTrashItem);
168
        }, 10);
169
170
        $service = new TrashService($innerServiceMock, $traceableEventDispatcher);
171
        $result = $service->trash(...$parameters);
172
173
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
174
175
        $this->assertSame($eventTrashItem, $result);
176
        $this->assertSame($calledListeners, [
177
            [BeforeTrashEvent::class, 10],
178
            [BeforeTrashEvent::class, 0],
179
            [TrashEvent::class, 0],
180
        ]);
181
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
182
    }
183
184
    public function testTrashStopPropagationInBeforeEvents()
185
    {
@@ 250-283 (lines=34) @@
247
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
248
    }
249
250
    public function testReturnRecoverResultInBeforeEvents()
251
    {
252
        $traceableEventDispatcher = $this->getEventDispatcher(
253
            BeforeRecoverEvent::class,
254
            RecoverEvent::class
255
        );
256
257
        $parameters = [
258
            $this->createMock(TrashItem::class),
259
            $this->createMock(Location::class),
260
        ];
261
262
        $location = $this->createMock(Location::class);
263
        $eventLocation = $this->createMock(Location::class);
264
        $innerServiceMock = $this->createMock(TrashServiceInterface::class);
265
        $innerServiceMock->method('recover')->willReturn($location);
266
267
        $traceableEventDispatcher->addListener(BeforeRecoverEvent::class, function (BeforeRecoverEvent $event) use ($eventLocation) {
268
            $event->setLocation($eventLocation);
269
        }, 10);
270
271
        $service = new TrashService($innerServiceMock, $traceableEventDispatcher);
272
        $result = $service->recover(...$parameters);
273
274
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
275
276
        $this->assertSame($eventLocation, $result);
277
        $this->assertSame($calledListeners, [
278
            [BeforeRecoverEvent::class, 10],
279
            [BeforeRecoverEvent::class, 0],
280
            [RecoverEvent::class, 0],
281
        ]);
282
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
283
    }
284
285
    public function testRecoverStopPropagationInBeforeEvents()
286
    {
@@ 351-383 (lines=33) @@
348
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
349
    }
350
351
    public function testReturnDeleteTrashItemResultInBeforeEvents()
352
    {
353
        $traceableEventDispatcher = $this->getEventDispatcher(
354
            BeforeDeleteTrashItemEvent::class,
355
            DeleteTrashItemEvent::class
356
        );
357
358
        $parameters = [
359
            $this->createMock(TrashItem::class),
360
        ];
361
362
        $result = $this->createMock(TrashItemDeleteResult::class);
363
        $eventResult = $this->createMock(TrashItemDeleteResult::class);
364
        $innerServiceMock = $this->createMock(TrashServiceInterface::class);
365
        $innerServiceMock->method('deleteTrashItem')->willReturn($result);
366
367
        $traceableEventDispatcher->addListener(BeforeDeleteTrashItemEvent::class, function (BeforeDeleteTrashItemEvent $event) use ($eventResult) {
368
            $event->setResult($eventResult);
369
        }, 10);
370
371
        $service = new TrashService($innerServiceMock, $traceableEventDispatcher);
372
        $result = $service->deleteTrashItem(...$parameters);
373
374
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
375
376
        $this->assertSame($eventResult, $result);
377
        $this->assertSame($calledListeners, [
378
            [BeforeDeleteTrashItemEvent::class, 10],
379
            [BeforeDeleteTrashItemEvent::class, 0],
380
            [DeleteTrashItemEvent::class, 0],
381
        ]);
382
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
383
    }
384
385
    public function testDeleteTrashItemStopPropagationInBeforeEvents()
386
    {

eZ/Publish/Core/Event/Tests/URLServiceTest.php 1 location

@@ 47-80 (lines=34) @@
44
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
45
    }
46
47
    public function testReturnUpdateUrlResultInBeforeEvents()
48
    {
49
        $traceableEventDispatcher = $this->getEventDispatcher(
50
            BeforeUpdateUrlEvent::class,
51
            UpdateUrlEvent::class
52
        );
53
54
        $parameters = [
55
            $this->createMock(URL::class),
56
            $this->createMock(URLUpdateStruct::class),
57
        ];
58
59
        $updatedUrl = $this->createMock(URL::class);
60
        $eventUpdatedUrl = $this->createMock(URL::class);
61
        $innerServiceMock = $this->createMock(URLServiceInterface::class);
62
        $innerServiceMock->method('updateUrl')->willReturn($updatedUrl);
63
64
        $traceableEventDispatcher->addListener(BeforeUpdateUrlEvent::class, function (BeforeUpdateUrlEvent $event) use ($eventUpdatedUrl) {
65
            $event->setUpdatedUrl($eventUpdatedUrl);
66
        }, 10);
67
68
        $service = new URLService($innerServiceMock, $traceableEventDispatcher);
69
        $result = $service->updateUrl(...$parameters);
70
71
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
72
73
        $this->assertSame($eventUpdatedUrl, $result);
74
        $this->assertSame($calledListeners, [
75
            [BeforeUpdateUrlEvent::class, 10],
76
            [BeforeUpdateUrlEvent::class, 0],
77
            [UpdateUrlEvent::class, 0],
78
        ]);
79
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
80
    }
81
82
    public function testUpdateUrlStopPropagationInBeforeEvents()
83
    {

eZ/Publish/Core/Event/Tests/URLWildcardServiceTest.php 1 location

@@ 212-244 (lines=33) @@
209
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
210
    }
211
212
    public function testReturnTranslateResultInBeforeEvents()
213
    {
214
        $traceableEventDispatcher = $this->getEventDispatcher(
215
            BeforeTranslateEvent::class,
216
            TranslateEvent::class
217
        );
218
219
        $parameters = [
220
            'random_value_5cff79c316d370.25863709',
221
        ];
222
223
        $result = $this->createMock(URLWildcardTranslationResult::class);
224
        $eventResult = $this->createMock(URLWildcardTranslationResult::class);
225
        $innerServiceMock = $this->createMock(URLWildcardServiceInterface::class);
226
        $innerServiceMock->method('translate')->willReturn($result);
227
228
        $traceableEventDispatcher->addListener(BeforeTranslateEvent::class, function (BeforeTranslateEvent $event) use ($eventResult) {
229
            $event->setResult($eventResult);
230
        }, 10);
231
232
        $service = new URLWildcardService($innerServiceMock, $traceableEventDispatcher);
233
        $result = $service->translate(...$parameters);
234
235
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
236
237
        $this->assertSame($eventResult, $result);
238
        $this->assertSame($calledListeners, [
239
            [BeforeTranslateEvent::class, 10],
240
            [BeforeTranslateEvent::class, 0],
241
            [TranslateEvent::class, 0],
242
        ]);
243
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
244
    }
245
246
    public function testTranslateStopPropagationInBeforeEvents()
247
    {

eZ/Publish/Core/Event/Tests/UserServiceTest.php 5 locations

@@ 70-103 (lines=34) @@
67
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
68
    }
69
70
    public function testReturnUpdateUserGroupResultInBeforeEvents()
71
    {
72
        $traceableEventDispatcher = $this->getEventDispatcher(
73
            BeforeUpdateUserGroupEvent::class,
74
            UpdateUserGroupEvent::class
75
        );
76
77
        $parameters = [
78
            $this->createMock(UserGroup::class),
79
            $this->createMock(UserGroupUpdateStruct::class),
80
        ];
81
82
        $updatedUserGroup = $this->createMock(UserGroup::class);
83
        $eventUpdatedUserGroup = $this->createMock(UserGroup::class);
84
        $innerServiceMock = $this->createMock(UserServiceInterface::class);
85
        $innerServiceMock->method('updateUserGroup')->willReturn($updatedUserGroup);
86
87
        $traceableEventDispatcher->addListener(BeforeUpdateUserGroupEvent::class, function (BeforeUpdateUserGroupEvent $event) use ($eventUpdatedUserGroup) {
88
            $event->setUpdatedUserGroup($eventUpdatedUserGroup);
89
        }, 10);
90
91
        $service = new UserService($innerServiceMock, $traceableEventDispatcher);
92
        $result = $service->updateUserGroup(...$parameters);
93
94
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
95
96
        $this->assertSame($eventUpdatedUserGroup, $result);
97
        $this->assertSame($calledListeners, [
98
            [BeforeUpdateUserGroupEvent::class, 10],
99
            [BeforeUpdateUserGroupEvent::class, 0],
100
            [UpdateUserGroupEvent::class, 0],
101
        ]);
102
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
103
    }
104
105
    public function testUpdateUserGroupStopPropagationInBeforeEvents()
106
    {
@@ 172-205 (lines=34) @@
169
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
170
    }
171
172
    public function testReturnUpdateUserResultInBeforeEvents()
173
    {
174
        $traceableEventDispatcher = $this->getEventDispatcher(
175
            BeforeUpdateUserEvent::class,
176
            UpdateUserEvent::class
177
        );
178
179
        $parameters = [
180
            $this->createMock(User::class),
181
            $this->createMock(UserUpdateStruct::class),
182
        ];
183
184
        $updatedUser = $this->createMock(User::class);
185
        $eventUpdatedUser = $this->createMock(User::class);
186
        $innerServiceMock = $this->createMock(UserServiceInterface::class);
187
        $innerServiceMock->method('updateUser')->willReturn($updatedUser);
188
189
        $traceableEventDispatcher->addListener(BeforeUpdateUserEvent::class, function (BeforeUpdateUserEvent $event) use ($eventUpdatedUser) {
190
            $event->setUpdatedUser($eventUpdatedUser);
191
        }, 10);
192
193
        $service = new UserService($innerServiceMock, $traceableEventDispatcher);
194
        $result = $service->updateUser(...$parameters);
195
196
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
197
198
        $this->assertSame($eventUpdatedUser, $result);
199
        $this->assertSame($calledListeners, [
200
            [BeforeUpdateUserEvent::class, 10],
201
            [BeforeUpdateUserEvent::class, 0],
202
            [UpdateUserEvent::class, 0],
203
        ]);
204
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
205
    }
206
207
    public function testUpdateUserStopPropagationInBeforeEvents()
208
    {
@@ 649-682 (lines=34) @@
646
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
647
    }
648
649
    public function testReturnCreateUserResultInBeforeEvents()
650
    {
651
        $traceableEventDispatcher = $this->getEventDispatcher(
652
            BeforeCreateUserEvent::class,
653
            CreateUserEvent::class
654
        );
655
656
        $parameters = [
657
            $this->createMock(UserCreateStruct::class),
658
            [],
659
        ];
660
661
        $user = $this->createMock(User::class);
662
        $eventUser = $this->createMock(User::class);
663
        $innerServiceMock = $this->createMock(UserServiceInterface::class);
664
        $innerServiceMock->method('createUser')->willReturn($user);
665
666
        $traceableEventDispatcher->addListener(BeforeCreateUserEvent::class, function (BeforeCreateUserEvent $event) use ($eventUser) {
667
            $event->setUser($eventUser);
668
        }, 10);
669
670
        $service = new UserService($innerServiceMock, $traceableEventDispatcher);
671
        $result = $service->createUser(...$parameters);
672
673
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
674
675
        $this->assertSame($eventUser, $result);
676
        $this->assertSame($calledListeners, [
677
            [BeforeCreateUserEvent::class, 10],
678
            [BeforeCreateUserEvent::class, 0],
679
            [CreateUserEvent::class, 0],
680
        ]);
681
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
682
    }
683
684
    public function testCreateUserStopPropagationInBeforeEvents()
685
    {
@@ 751-784 (lines=34) @@
748
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
749
    }
750
751
    public function testReturnCreateUserGroupResultInBeforeEvents()
752
    {
753
        $traceableEventDispatcher = $this->getEventDispatcher(
754
            BeforeCreateUserGroupEvent::class,
755
            CreateUserGroupEvent::class
756
        );
757
758
        $parameters = [
759
            $this->createMock(UserGroupCreateStruct::class),
760
            $this->createMock(UserGroup::class),
761
        ];
762
763
        $userGroup = $this->createMock(UserGroup::class);
764
        $eventUserGroup = $this->createMock(UserGroup::class);
765
        $innerServiceMock = $this->createMock(UserServiceInterface::class);
766
        $innerServiceMock->method('createUserGroup')->willReturn($userGroup);
767
768
        $traceableEventDispatcher->addListener(BeforeCreateUserGroupEvent::class, function (BeforeCreateUserGroupEvent $event) use ($eventUserGroup) {
769
            $event->setUserGroup($eventUserGroup);
770
        }, 10);
771
772
        $service = new UserService($innerServiceMock, $traceableEventDispatcher);
773
        $result = $service->createUserGroup(...$parameters);
774
775
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
776
777
        $this->assertSame($eventUserGroup, $result);
778
        $this->assertSame($calledListeners, [
779
            [BeforeCreateUserGroupEvent::class, 10],
780
            [BeforeCreateUserGroupEvent::class, 0],
781
            [CreateUserGroupEvent::class, 0],
782
        ]);
783
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
784
    }
785
786
    public function testCreateUserGroupStopPropagationInBeforeEvents()
787
    {
@@ 853-886 (lines=34) @@
850
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
851
    }
852
853
    public function testReturnUpdateUserTokenResultInBeforeEvents()
854
    {
855
        $traceableEventDispatcher = $this->getEventDispatcher(
856
            BeforeUpdateUserTokenEvent::class,
857
            UpdateUserTokenEvent::class
858
        );
859
860
        $parameters = [
861
            $this->createMock(User::class),
862
            $this->createMock(UserTokenUpdateStruct::class),
863
        ];
864
865
        $updatedUser = $this->createMock(User::class);
866
        $eventUpdatedUser = $this->createMock(User::class);
867
        $innerServiceMock = $this->createMock(UserServiceInterface::class);
868
        $innerServiceMock->method('updateUserToken')->willReturn($updatedUser);
869
870
        $traceableEventDispatcher->addListener(BeforeUpdateUserTokenEvent::class, function (BeforeUpdateUserTokenEvent $event) use ($eventUpdatedUser) {
871
            $event->setUpdatedUser($eventUpdatedUser);
872
        }, 10);
873
874
        $service = new UserService($innerServiceMock, $traceableEventDispatcher);
875
        $result = $service->updateUserToken(...$parameters);
876
877
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
878
879
        $this->assertSame($eventUpdatedUser, $result);
880
        $this->assertSame($calledListeners, [
881
            [BeforeUpdateUserTokenEvent::class, 10],
882
            [BeforeUpdateUserTokenEvent::class, 0],
883
            [UpdateUserTokenEvent::class, 0],
884
        ]);
885
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
886
    }
887
888
    public function testUpdateUserTokenStopPropagationInBeforeEvents()
889
    {

eZ/Publish/Core/Event/Tests/RoleServiceTest.php 5 locations

@@ 196-229 (lines=34) @@
193
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
194
    }
195
196
    public function testReturnUpdateRoleDraftResultInBeforeEvents()
197
    {
198
        $traceableEventDispatcher = $this->getEventDispatcher(
199
            BeforeUpdateRoleDraftEvent::class,
200
            UpdateRoleDraftEvent::class
201
        );
202
203
        $parameters = [
204
            $this->createMock(RoleDraft::class),
205
            $this->createMock(RoleUpdateStruct::class),
206
        ];
207
208
        $updatedRoleDraft = $this->createMock(RoleDraft::class);
209
        $eventUpdatedRoleDraft = $this->createMock(RoleDraft::class);
210
        $innerServiceMock = $this->createMock(RoleServiceInterface::class);
211
        $innerServiceMock->method('updateRoleDraft')->willReturn($updatedRoleDraft);
212
213
        $traceableEventDispatcher->addListener(BeforeUpdateRoleDraftEvent::class, function (BeforeUpdateRoleDraftEvent $event) use ($eventUpdatedRoleDraft) {
214
            $event->setUpdatedRoleDraft($eventUpdatedRoleDraft);
215
        }, 10);
216
217
        $service = new RoleService($innerServiceMock, $traceableEventDispatcher);
218
        $result = $service->updateRoleDraft(...$parameters);
219
220
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
221
222
        $this->assertSame($eventUpdatedRoleDraft, $result);
223
        $this->assertSame($calledListeners, [
224
            [BeforeUpdateRoleDraftEvent::class, 10],
225
            [BeforeUpdateRoleDraftEvent::class, 0],
226
            [UpdateRoleDraftEvent::class, 0],
227
        ]);
228
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
229
    }
230
231
    public function testUpdateRoleDraftStopPropagationInBeforeEvents()
232
    {
@@ 463-495 (lines=33) @@
460
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
461
    }
462
463
    public function testReturnCreateRoleResultInBeforeEvents()
464
    {
465
        $traceableEventDispatcher = $this->getEventDispatcher(
466
            BeforeCreateRoleEvent::class,
467
            CreateRoleEvent::class
468
        );
469
470
        $parameters = [
471
            $this->createMock(RoleCreateStruct::class),
472
        ];
473
474
        $roleDraft = $this->createMock(RoleDraft::class);
475
        $eventRoleDraft = $this->createMock(RoleDraft::class);
476
        $innerServiceMock = $this->createMock(RoleServiceInterface::class);
477
        $innerServiceMock->method('createRole')->willReturn($roleDraft);
478
479
        $traceableEventDispatcher->addListener(BeforeCreateRoleEvent::class, function (BeforeCreateRoleEvent $event) use ($eventRoleDraft) {
480
            $event->setRoleDraft($eventRoleDraft);
481
        }, 10);
482
483
        $service = new RoleService($innerServiceMock, $traceableEventDispatcher);
484
        $result = $service->createRole(...$parameters);
485
486
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
487
488
        $this->assertSame($eventRoleDraft, $result);
489
        $this->assertSame($calledListeners, [
490
            [BeforeCreateRoleEvent::class, 10],
491
            [BeforeCreateRoleEvent::class, 0],
492
            [CreateRoleEvent::class, 0],
493
        ]);
494
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
495
    }
496
497
    public function testCreateRoleStopPropagationInBeforeEvents()
498
    {
@@ 563-596 (lines=34) @@
560
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
561
    }
562
563
    public function testReturnRemovePolicyByRoleDraftResultInBeforeEvents()
564
    {
565
        $traceableEventDispatcher = $this->getEventDispatcher(
566
            BeforeRemovePolicyByRoleDraftEvent::class,
567
            RemovePolicyByRoleDraftEvent::class
568
        );
569
570
        $parameters = [
571
            $this->createMock(RoleDraft::class),
572
            $this->createMock(PolicyDraft::class),
573
        ];
574
575
        $updatedRoleDraft = $this->createMock(RoleDraft::class);
576
        $eventUpdatedRoleDraft = $this->createMock(RoleDraft::class);
577
        $innerServiceMock = $this->createMock(RoleServiceInterface::class);
578
        $innerServiceMock->method('removePolicyByRoleDraft')->willReturn($updatedRoleDraft);
579
580
        $traceableEventDispatcher->addListener(BeforeRemovePolicyByRoleDraftEvent::class, function (BeforeRemovePolicyByRoleDraftEvent $event) use ($eventUpdatedRoleDraft) {
581
            $event->setUpdatedRoleDraft($eventUpdatedRoleDraft);
582
        }, 10);
583
584
        $service = new RoleService($innerServiceMock, $traceableEventDispatcher);
585
        $result = $service->removePolicyByRoleDraft(...$parameters);
586
587
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
588
589
        $this->assertSame($eventUpdatedRoleDraft, $result);
590
        $this->assertSame($calledListeners, [
591
            [BeforeRemovePolicyByRoleDraftEvent::class, 10],
592
            [BeforeRemovePolicyByRoleDraftEvent::class, 0],
593
            [RemovePolicyByRoleDraftEvent::class, 0],
594
        ]);
595
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
596
    }
597
598
    public function testRemovePolicyByRoleDraftStopPropagationInBeforeEvents()
599
    {
@@ 665-698 (lines=34) @@
662
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
663
    }
664
665
    public function testReturnAddPolicyByRoleDraftResultInBeforeEvents()
666
    {
667
        $traceableEventDispatcher = $this->getEventDispatcher(
668
            BeforeAddPolicyByRoleDraftEvent::class,
669
            AddPolicyByRoleDraftEvent::class
670
        );
671
672
        $parameters = [
673
            $this->createMock(RoleDraft::class),
674
            $this->createMock(PolicyCreateStruct::class),
675
        ];
676
677
        $updatedRoleDraft = $this->createMock(RoleDraft::class);
678
        $eventUpdatedRoleDraft = $this->createMock(RoleDraft::class);
679
        $innerServiceMock = $this->createMock(RoleServiceInterface::class);
680
        $innerServiceMock->method('addPolicyByRoleDraft')->willReturn($updatedRoleDraft);
681
682
        $traceableEventDispatcher->addListener(BeforeAddPolicyByRoleDraftEvent::class, function (BeforeAddPolicyByRoleDraftEvent $event) use ($eventUpdatedRoleDraft) {
683
            $event->setUpdatedRoleDraft($eventUpdatedRoleDraft);
684
        }, 10);
685
686
        $service = new RoleService($innerServiceMock, $traceableEventDispatcher);
687
        $result = $service->addPolicyByRoleDraft(...$parameters);
688
689
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
690
691
        $this->assertSame($eventUpdatedRoleDraft, $result);
692
        $this->assertSame($calledListeners, [
693
            [BeforeAddPolicyByRoleDraftEvent::class, 10],
694
            [BeforeAddPolicyByRoleDraftEvent::class, 0],
695
            [AddPolicyByRoleDraftEvent::class, 0],
696
        ]);
697
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
698
    }
699
700
    public function testAddPolicyByRoleDraftStopPropagationInBeforeEvents()
701
    {
@@ 937-969 (lines=33) @@
934
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
935
    }
936
937
    public function testReturnCreateRoleDraftResultInBeforeEvents()
938
    {
939
        $traceableEventDispatcher = $this->getEventDispatcher(
940
            BeforeCreateRoleDraftEvent::class,
941
            CreateRoleDraftEvent::class
942
        );
943
944
        $parameters = [
945
            $this->createMock(Role::class),
946
        ];
947
948
        $roleDraft = $this->createMock(RoleDraft::class);
949
        $eventRoleDraft = $this->createMock(RoleDraft::class);
950
        $innerServiceMock = $this->createMock(RoleServiceInterface::class);
951
        $innerServiceMock->method('createRoleDraft')->willReturn($roleDraft);
952
953
        $traceableEventDispatcher->addListener(BeforeCreateRoleDraftEvent::class, function (BeforeCreateRoleDraftEvent $event) use ($eventRoleDraft) {
954
            $event->setRoleDraft($eventRoleDraft);
955
        }, 10);
956
957
        $service = new RoleService($innerServiceMock, $traceableEventDispatcher);
958
        $result = $service->createRoleDraft(...$parameters);
959
960
        $calledListeners = $this->getListenersStack($traceableEventDispatcher->getCalledListeners());
961
962
        $this->assertSame($eventRoleDraft, $result);
963
        $this->assertSame($calledListeners, [
964
            [BeforeCreateRoleDraftEvent::class, 10],
965
            [BeforeCreateRoleDraftEvent::class, 0],
966
            [CreateRoleDraftEvent::class, 0],
967
        ]);
968
        $this->assertSame([], $traceableEventDispatcher->getNotCalledListeners());
969
    }
970
971
    public function testCreateRoleDraftStopPropagationInBeforeEvents()
972
    {