/**
  * Compile email message
  *
  * @param EmailTemplateInterface $template
  * @param array                  $templateParams
  *
  * @return array first element is email subject, second - message
  */
 public function compileMessage(EmailTemplateInterface $template, array $templateParams = array())
 {
     // ensure we have no html tags in txt template
     $content = $template->getContent();
     $content = $template->getType() == 'txt' ? strip_tags($content) : $content;
     $templateParams['user'] = $this->user;
     $templateRendered = $this->render($content, $templateParams);
     $subjectRendered = $this->render($template->getSubject(), $templateParams);
     return array($subjectRendered, $templateRendered);
 }
 /**
  * @dataProvider executeOptionsDataProvider
  * @param array $options
  * @param array $expected
  */
 public function testExecute($options, $expected)
 {
     $context = [];
     $this->contextAccessor->expects($this->any())->method('getValue')->will($this->returnArgument(1));
     $this->entityNameResolver->expects($this->any())->method('getName')->will($this->returnCallback(function () {
         return '_Formatted';
     }));
     $this->objectRepository->expects($this->once())->method('findByName')->with($options['template'])->willReturn($this->emailTemplate);
     $this->emailTemplate->expects($this->once())->method('getType')->willReturn('txt');
     $this->renderer->expects($this->once())->method('compileMessage')->willReturn([$expected['subject'], $expected['body']]);
     $self = $this;
     $emailUserEntity = $this->getMockBuilder('\\Oro\\Bundle\\EmailBundle\\Entity\\EmailUser')->disableOriginalConstructor()->setMethods(['getEmail'])->getMock();
     $emailEntity = $this->getMock('\\Oro\\Bundle\\EmailBundle\\Entity\\Email');
     $emailUserEntity->expects($this->any())->method('getEmail')->willReturn($emailEntity);
     $this->emailProcessor->expects($this->once())->method('process')->with($this->isInstanceOf('Oro\\Bundle\\EmailBundle\\Form\\Model\\Email'))->will($this->returnCallback(function (Email $model) use($emailUserEntity, $expected, $self) {
         $self->assertEquals($expected['body'], $model->getBody());
         $self->assertEquals($expected['subject'], $model->getSubject());
         $self->assertEquals($expected['from'], $model->getFrom());
         $self->assertEquals($expected['to'], $model->getTo());
         return $emailUserEntity;
     }));
     if (array_key_exists('attribute', $options)) {
         $this->contextAccessor->expects($this->once())->method('setValue')->with($context, $options['attribute'], $emailEntity);
     }
     $this->action->initialize($options);
     $this->action->execute($context);
 }
 /**
  * @param string         $templateName
  * @param array          $templateParams
  * @param \Swift_Message $expectedMessage
  * @param string         $emailType
  */
 protected function assertSendCalled($templateName, array $templateParams, \Swift_Message $expectedMessage, $emailType = 'txt')
 {
     $this->emailTemplate->expects($this->once())->method('getType')->willReturn($emailType);
     $this->objectRepository->expects($this->once())->method('findOneBy')->with(['name' => $templateName])->willReturn($this->emailTemplate);
     $this->renderer->expects($this->once())->method('compileMessage')->with($this->emailTemplate, $templateParams)->willReturn([$expectedMessage->getSubject(), $expectedMessage->getBody()]);
     $to = $expectedMessage->getTo();
     $toKeys = array_keys($to);
     $this->emailHolderHelper->expects($this->once())->method('getEmail')->with($this->isInstanceOf('Oro\\Bundle\\UserBundle\\Entity\\UserInterface'))->willReturn(array_shift($toKeys));
     $this->mailer->expects($this->once())->method('send')->with($this->callback(function (\Swift_Message $actualMessage) use($expectedMessage) {
         $this->assertEquals($expectedMessage->getSubject(), $actualMessage->getSubject());
         $this->assertEquals($expectedMessage->getFrom(), $actualMessage->getFrom());
         $this->assertEquals($expectedMessage->getTo(), $actualMessage->getTo());
         $this->assertEquals($expectedMessage->getBody(), $actualMessage->getBody());
         $this->assertEquals($expectedMessage->getContentType(), $actualMessage->getContentType());
         return true;
     }));
 }
示例#4
0
 /**
  * Compile email message
  *
  * @param EmailTemplateInterface $template
  * @param array                  $templateParams
  *
  * @return array first element is email subject, second - message
  */
 public function compileMessage(EmailTemplateInterface $template, array $templateParams = [])
 {
     $subject = $template->getSubject();
     $content = $template->getContent();
     $templateRendered = $this->renderWithDefaultFilters($content, $templateParams);
     $subjectRendered = $this->renderWithDefaultFilters($subject, $templateParams);
     return [$subjectRendered, $templateRendered];
 }
示例#5
0
 /**
  * Compile email message
  *
  * @param EmailTemplateInterface $template
  * @param array                  $templateParams
  *
  * @return array first element is email subject, second - message
  */
 public function compileMessage(EmailTemplateInterface $template, array $templateParams = array())
 {
     $templateParams['system'] = $this->variablesProvider->getSystemVariableValues();
     $subject = $template->getSubject();
     $content = $template->getContent();
     if (isset($templateParams['entity'])) {
         $subject = $this->processDateTimeVariables($subject, $templateParams['entity']);
         $content = $this->processDateTimeVariables($content, $templateParams['entity']);
     }
     $templateRendered = $this->render($content, $templateParams);
     $subjectRendered = $this->render($subject, $templateParams);
     return array($subjectRendered, $templateRendered);
 }
示例#6
0
 /**
  * @param EmailTemplateInterface $emailTemplate
  * @return string
  */
 protected function getEmailTemplateType(EmailTemplateInterface $emailTemplate)
 {
     return $emailTemplate->getType() === 'txt' ? 'text/plain' : 'text/html';
 }