/** * @covers DmMailer\Manager\Subscribe */ protected function setUp() { $this->entityManagerMock = $this->getMockBuilder('Doctrine\\Orm\\EntityManager')->disableOriginalConstructor()->setMethods(['persist', 'flush'])->getMock(); $this->requestMock = $this->getMockBuilder('Zend\\Http\\PhpEnvironment\\Request')->disableOriginalConstructor()->setMethods([])->getMock(); $this->formMock = $this->getMockBuilder('DmMailer\\Form\\SubscribeForm')->disableOriginalConstructor()->setMethods(['getData', 'isValid', 'bind', 'build', 'setData'])->getMock(); $this->sut = new Subscribe($this->entityManagerMock, $this->requestMock, null, $this->formMock); $this->messageRepoMock = $this->getMockBuilder('DmMailer\\Repository\\Message')->disableOriginalConstructor()->setMethods(['getSystemMessage'])->getMock(); $this->sut->setMessageRepository($this->messageRepoMock); $this->subscriberMock = $this->getMockBuilder('DmMailer\\Entity\\Subscriber')->disableOriginalConstructor()->setMethods(['populate', 'addCampaign', 'hasCampaign'])->getMock(); $this->campaignMock = $this->getMockBuilder('DmMailer\\Entity\\Campaign')->disableOriginalConstructor()->setMethods(['populate', 'getData', 'getId'])->getMock(); }
/** * @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; }