/** * @covers DmMailer\Manager\Subscribe */ public function testHandlePostQueuesSystemMessageOnSaveSuccess() { $postData = [\DmMailer\Entity\Subscriber::CAMPAIGNS => []]; $messageMock = $this->getMockBuilder('DmMailer\\Entity\\Message')->disableOriginalConstructor()->setMethods([])->getMock(); $this->messageRepoMock->expects($this->any())->method('getSystemMessage')->will($this->returnValue($messageMock)); $this->formMock->expects($this->any())->method('isValid')->will($this->returnValue(true)); $this->formMock->expects($this->any())->method('getData')->will($this->returnValue($postData)); $this->requestMock->expects($this->any())->method('isPost')->will($this->returnValue(true)); $this->requestMock->expects($this->any())->method('getPost')->will($this->returnValue([])); // Actual test $queueItemMock = $this->getMockBuilder('DmMailer\\Entity\\QueueItem')->disableOriginalConstructor()->setMethods(['setMessage', 'setSubscriber'])->getMock(); $queueItemRepoMock = $this->getMockBuilder('DmMailer\\Repository\\QueueItem')->disableOriginalConstructor()->setMethods(['getNewEntity'])->getMock(); $queueItemRepoMock->expects($this->once())->method('getNewEntity')->will($this->returnValue($queueItemMock)); $this->sut->setQueueItemRepository($queueItemRepoMock); $this->entityManagerMock->expects($this->exactly(3))->method('persist'); // Actual test ends $actualResult = $this->sut->handlePost($this->subscriberMock, $this->campaignMock); $this->assertTrue($actualResult); }
/** * @param ServiceLocatorInterface $serviceLocator * * @return SubscribeManager */ public function createService(ServiceLocatorInterface $serviceLocator) { /** @var EntityManager $entityManager */ $entityManager = $serviceLocator->get('Doctrine\\ORM\\EntityManager'); /** @var PhpRequest $request */ $request = $serviceLocator->get('request'); /** @var SubscribeForm $form */ $form = $serviceLocator->get('DmMailer\\Form\\SubscribeForm'); /** @var Paginator $paginatorFactory */ $paginatorFactory = $serviceLocator->get('DmMailer\\Service\\Factory\\Paginator'); $manager = new SubscribeManager($entityManager, $request, null, $form, $paginatorFactory); /** @var QueueItemRepository $queueItemRepository */ $queueItemRepository = $serviceLocator->get('DmMailer\\Repository\\QueueItem'); /** @var MessageRepository $messageRepository */ $messageRepository = $serviceLocator->get('DmMailer\\Repository\\Message'); $manager->setQueueItemRepository($queueItemRepository); $manager->setMessageRepository($messageRepository); return $manager; }