entityManagerMock = $this->createMock(EntityManagerInterface::class); $this->eventRepositoryMock = $this->createMock(EventRepository::class); $this->dispatcherMock = $this->createMock(EventDispatcherInterface::class); $this->eventModel = new EventModel( $this->entityManagerMock, $this->createMock(CorePermissions::class), $this->dispatcherMock, $this->createMock(UrlGeneratorInterface::class), $this->createMock(Translator::class), $this->createMock(UserHelper::class), $this->createMock(LoggerInterface::class), $this->createMock(CoreParametersHelper::class) ); } public function testThatClonedEventsDoNotAttemptNullingParentInDeleteEvents(): void { $this->entityManagerMock->expects($this->never()) ->method('getRepository') ->with(Event::class) ->willReturn($this->eventRepositoryMock); $currentEvents = [ 'new1', 'new2', 'new3', ]; $deletedEvents = [ 'new1', ]; $this->eventModel->deleteEvents($currentEvents, $deletedEvents); } public function testThatItDeletesEventLogs(): void { $idToDelete = 'old1'; $currentEvents = [ 'new1', ]; $deletedEvents = [ 'new1', $idToDelete, ]; $this->entityManagerMock->method('getRepository') ->with(Event::class) ->willReturn($this->eventRepositoryMock); $this->eventRepositoryMock->expects($this->once()) ->method('nullEventRelationships') ->with([$idToDelete]); $this->eventRepositoryMock->expects($this->once()) ->method('setEventsAsDeleted') ->with([1 => $idToDelete]); $this->dispatcherMock->expects($this->once()) ->method('dispatch') ->with(new DeleteEvent([$idToDelete]), CampaignEvents::ON_EVENT_DELETE); $this->eventModel->deleteEvents($currentEvents, $deletedEvents); } public function testDeleteEventsByCampaignId(): void { /** @var EventModel&MockObject */ $mockModel = $this->getMockBuilder(EventModel::class) ->disableOriginalConstructor() ->onlyMethods(['getRepository', 'deleteEventsByEventIds']) ->getMock(); $mockModel->expects($this->once()) ->method('getRepository') ->willReturn($this->eventRepositoryMock); $campaignEvents = ['1', '2', '3']; $this->eventRepositoryMock->expects($this->once()) ->method('getCampaignEventIds') ->with(1) ->willReturn($campaignEvents); $mockModel->expects($this->once())->method('deleteEventsByEventIds') ->with($campaignEvents); $mockModel->deleteEventsByCampaignId(1); } }