Example #1
0
 /**
  * Test that message is queued for a frequency rule value.
  */
 public function testFrequencyRulesAreAppliedAndMessageGetsQueued()
 {
     // Setup dependencies
     $ipLookupHelper = $this->getMockBuilder(IpLookupHelper::class)->disableOriginalConstructor()->getMock();
     $themeHelper = $this->getMockBuilder(ThemeHelper::class)->disableOriginalConstructor()->getMock();
     $mailboxHelper = $this->getMockBuilder(Mailbox::class)->disableOriginalConstructor()->getMock();
     $mailHelper = $this->getMockBuilder(MailHelper::class)->disableOriginalConstructor()->getMock();
     $leadModel = $this->getMockBuilder(LeadModel::class)->disableOriginalConstructor()->getMock();
     $trackableModel = $this->getMockBuilder(TrackableModel::class)->disableOriginalConstructor()->getMock();
     $userModel = $this->getMockBuilder(UserModel::class)->disableOriginalConstructor()->getMock();
     $coreParametersHelper = $this->getMockBuilder(CoreParametersHelper::class)->disableOriginalConstructor()->getMock();
     // Setup the translator
     $translator = $this->getMockBuilder(Translator::class)->disableOriginalConstructor()->getMock();
     $translator->expects($this->any())->method('has')->will($this->returnValue(false));
     // Setup the repositories
     $emailRepository = $this->getMockBuilder(EmailRepository::class)->disableOriginalConstructor()->getMock();
     $emailRepository->method('getDoNotEmailList')->will($this->returnValue([]));
     $statRepository = $this->getMockBuilder(StatRepository::class)->disableOriginalConstructor()->getMock();
     $frequencyRepository = $this->getMockBuilder(FrequencyRuleRepository::class)->disableOriginalConstructor()->getMock();
     $frequencyRepository->method('getAppliedFrequencyRules')->will($this->returnValue([['lead_id' => 1, 'frequency_number' => 1, 'frequency_time' => 'DAY']]));
     // Setup the EntityManager
     $entityManager = $this->getMockBuilder(EntityManager::class)->disableOriginalConstructor()->getMock();
     $entityManager->expects($this->any())->method('getRepository')->will($this->returnValueMap([['MauticEmailBundle:Email', $emailRepository], ['MauticEmailBundle:Stat', $statRepository], ['MauticLeadBundle:FrequencyRule', $frequencyRepository]]));
     $messageModel = $this->getMockBuilder(MessageQueueModel::class)->disableOriginalConstructor()->getMock();
     $messageModel->expects($this->exactly(1))->method('addToQueue');
     $companyModel = $this->getMockBuilder(CompanyModel::class)->disableOriginalConstructor()->getMock();
     $emailModel = new \Mautic\EmailBundle\Model\EmailModel($ipLookupHelper, $themeHelper, $mailboxHelper, $mailHelper, $leadModel, $companyModel, $trackableModel, $userModel, $coreParametersHelper, $messageModel);
     $emailModel->setTranslator($translator);
     $emailModel->setEntityManager($entityManager);
     $emailEntity = $this->getMockBuilder(Email::class)->disableOriginalConstructor()->getMock();
     $emailEntity->method('getId')->will($this->returnValue(1));
     $result = $emailModel->sendEmail($emailEntity, [1 => ['id' => 1, 'email' => '*****@*****.**']], ['email_type' => 'marketing']);
     $this->assertTrue(count($result) === 0);
 }
Example #2
0
 /**
  * Test that processMailerCallback handles an array of hashIds correctly
  */
 public function testProcessMailerCallbackWithHashIds()
 {
     // Setup dependencies
     $ipLookupHelper = $this->getMockBuilder(IpLookupHelper::class)->disableOriginalConstructor()->getMock();
     $themeHelper = $this->getMockBuilder(ThemeHelper::class)->disableOriginalConstructor()->getMock();
     $mailboxHelper = $this->getMockBuilder(Mailbox::class)->disableOriginalConstructor()->getMock();
     $mailHelper = $this->getMockBuilder(MailHelper::class)->disableOriginalConstructor()->getMock();
     $leadModel = $this->getMockBuilder(LeadModel::class)->disableOriginalConstructor()->getMock();
     $trackableModel = $this->getMockBuilder(TrackableModel::class)->disableOriginalConstructor()->getMock();
     $userModel = $this->getMockBuilder(UserModel::class)->disableOriginalConstructor()->getMock();
     $coreParametersHelper = $this->getMockBuilder(CoreParametersHelper::class)->disableOriginalConstructor()->getMock();
     // Setup the translator
     $translator = $this->getMockBuilder(Translator::class)->disableOriginalConstructor()->getMock();
     $translator->expects($this->any())->method('has')->will($this->returnValue(false));
     // Setup the StatRepository
     $statRepository = $this->getMockBuilder(StatRepository::class)->disableOriginalConstructor()->getMock();
     $statRepository->expects($this->once())->method('getTableAlias')->will($this->returnValue('s'));
     $leadEntity = $this->getMockBuilder(Lead::class)->disableOriginalConstructor()->getMock();
     $leadEntity->expects($this->any())->method('getId')->will($this->returnValue(1));
     $emailEntity = $this->getMockBuilder(Email::class)->disableOriginalConstructor()->getMock();
     $emailEntity->expects($this->any())->method('getId')->will($this->returnValue(1));
     $statEntity = new Stat();
     $statEntity->setTrackingHash('xyz123');
     $statEntity->setLead($leadEntity);
     $statEntity->setEmail($emailEntity);
     $statRepository->expects($this->any())->method('getEntities')->will($this->returnValue([$statEntity]));
     // Setup the EntityManager
     $entityManager = $this->getMockBuilder(EntityManager::class)->disableOriginalConstructor()->getMock();
     $entityManager->expects($this->any())->method('getRepository')->will($this->returnValueMap([['MauticEmailBundle:Stat', $statRepository]]));
     $entityManager->expects($this->any())->method('getReference')->will($this->returnValue($leadEntity));
     $emailModel = new \Mautic\EmailBundle\Model\EmailModel($ipLookupHelper, $themeHelper, $mailboxHelper, $mailHelper, $leadModel, $trackableModel, $userModel, $coreParametersHelper);
     $emailModel->setTranslator($translator);
     $emailModel->setEntityManager($entityManager);
     $response = [2 => ['hashIds' => ['xyz123' => 'some reason', '123xyz' => 'some reason']]];
     $dnc = $emailModel->processMailerCallback($response);
     $this->assertCount(1, $dnc);
 }