/** * @param object $getOwnerResult * @param object $getUserResult * @param int $getToCalls * * @dataProvider createReplyEmailModelProvider */ public function testCreateReplyAllEmailModel($getOwnerResult, $getUserResult, $getToCalls) { $this->fromEmailAddress = $this->getMock('Oro\\Bundle\\EmailBundle\\Entity\\EmailAddress'); $this->fromCcEmailAddress = $this->getMock('Oro\\Bundle\\EmailBundle\\Entity\\EmailAddress'); $this->fromEmailAddress->expects($this->once())->method('getOwner')->willReturn($getOwnerResult); $this->helper->expects($this->any())->method('getUser')->willReturn($getUserResult); $getUserResult->expects($this->any())->method('getEmails')->willReturn([]); $this->email->expects($this->once())->method('getFromEmailAddress')->willReturn($this->fromEmailAddress); $this->email->expects($this->any())->method('getId'); $emailAddress = $this->getMock('Oro\\Bundle\\EmailBundle\\Entity\\EmailAddress'); $emailAddress->expects($this->exactly($getToCalls))->method('getEmail')->willReturn(null); $emailRecipient = $this->getMock('Oro\\Bundle\\EmailBundle\\Entity\\EmailRecipient'); $emailRecipient->expects($this->exactly($getToCalls))->method('getEmailAddress')->willReturn($emailAddress); $to = new ArrayCollection(); $to->add($emailRecipient); $this->email->expects($this->exactly($getToCalls))->method('getTo')->willReturn($to); $emailCcRecipient = $this->getMock('Oro\\Bundle\\EmailBundle\\Entity\\EmailRecipient'); $emailCcRecipient->expects($this->once())->method('getEmailAddress')->willReturn($this->fromCcEmailAddress); $cc = new ArrayCollection(); $cc->add($emailCcRecipient); $this->email->expects($this->exactly($getToCalls))->method('getCc')->willReturn($cc); $this->helper->expects($this->once())->method('prependWith'); $this->helper->expects($this->once())->method('getEmailBody'); $this->activityListProvider->expects($this->once())->method('getTargetEntities')->willReturn([]); $result = $this->emailModelBuilder->createReplyAllEmailModel($this->email); $this->assertInstanceOf('Oro\\Bundle\\EmailBundle\\Form\\Model\\Email', $result); }
public function testCreateForwardEmailModel() { $this->helper->expects($this->once())->method('prependWith'); $emailBody = $this->getMock('Oro\\Bundle\\EmailBundle\\Entity\\EmailBody'); $emailBody->expects($this->exactly(1))->method('getAttachments')->willReturn([]); $this->email->expects($this->once())->method('getEmailBody')->willReturn($emailBody); $result = $this->emailModelBuilder->createForwardEmailModel($this->email); $this->assertInstanceOf('Oro\\Bundle\\EmailBundle\\Form\\Model\\Email', $result); }
/** * @param Email $email * @param AutoResponseRule[]|Collection $rules * * @return EmailModel[]|Collection */ protected function createReplyEmailModels(Email $email, Collection $rules) { return $rules->map(function (AutoResponseRule $rule) use($email) { $emailModel = $this->emailBuilder->createReplyEmailModel($email, true); $emailModel->setFrom($rule->getMailbox()->getEmail()); $emailModel->setTo([$email->getFromEmailAddress()->getEmail()]); $emailModel->setContexts(array_merge([$email], $emailModel->getContexts())); $this->applyTemplate($emailModel, $rule->getTemplate(), $email); return $emailModel; }); }