/** * @param ServiceLocatorInterface $serviceLocator * * @return MessageController */ public function createService(ServiceLocatorInterface $serviceLocator) { if ($serviceLocator instanceof ControllerManager) { $serviceLocator = $serviceLocator->getServiceLocator(); } /** @var MessageRepository $messageRepository */ $messageRepository = $serviceLocator->get('DmMailer\\Repository\\Message'); /** @var MessageManager $messageManager */ $messageManager = $serviceLocator->get('DmMailer\\Manager\\Message'); /** @var MessageBuilder $messageBuilder */ $messageBuilder = $serviceLocator->get('DmMailer\\Service\\MessageBuilder'); /** @var DmMailerHelper $options */ $options = $serviceLocator->get('DmMailer\\Helper\\Options'); /** @var UserText $userText */ $userText = $serviceLocator->get('DmCommon\\View\\Helper\\UserText'); $controller = new MessageController($messageRepository, $messageManager, $messageBuilder, $options, $userText); if ($options->hasSystemMailer()) { /** @var Queue $systemQueue */ $systemQueue = $serviceLocator->get('DmMailer\\Service\\Queue\\System'); $controller->setQueueService($systemQueue); } /** @var DmTinymceHelper $options */ $options = $serviceLocator->get('DmTinymce\\Helper\\Options'); $controller->setTinyMceLang($options->getTinymceLang()); return $controller; }
/** * @covers DmMailerAdmin\Controller\MessageController */ public function testTestMailActionAddsQueueMessagesToFlashMessengerWhenQueueServiceIsSet() { $paramsMock = $this->mockFactory->getParamsMock(1); $requestMock = $this->mockFactory->getRequestMock([]); $this->sut->setRequest($requestMock); $flashMessengerMock = $this->mockFactory->getFlashMessengerPluginMock(2, 0); $responseMock = $this->mockFactory->getResponseMock(); $redirectMock = $this->mockFactory->getRedirectPluginMock($responseMock); $pluginManagerMock = $this->mockFactory->getPluginMock($paramsMock, $flashMessengerMock, $flashMessengerMock, $redirectMock); $this->sut->setPluginManager($pluginManagerMock); $this->repositoryMock->expects($this->any())->method('getWithSubscribers')->will($this->returnValue($this->getMessageMockWithQueue())); $this->managerMock->expects($this->any())->method('queueTestMails')->will($this->returnValue(2)); $this->managerMock->expects($this->any())->method('saveEntity')->will($this->returnValue(true)); $queueServiceMock = $this->getMockBuilder('DmMailer\\Service\\Queue')->setMethods(['process'])->disableOriginalConstructor()->getMock(); $queueServiceMock->expects($this->once())->method('process')->will($this->returnValue(1)); $this->sut->setQueueService($queueServiceMock); $actualResult = $this->sut->testMailAction(); $this->assertSame($responseMock, $actualResult); }