public function testExtract() { $data = ['messageId' => 1, 'newsletterId' => 1, 'templateId' => 1, 'subject' => 'Test', 'params' => 'test=test', 'message' => '<h1>Message</h1>', 'sent' => 1, 'dateCreated' => '2016-02-19 18:12:21', 'dateSent' => '2016-02-19 18:12:21']; $object = new MessageModel(); $object->setMessageId($data['messageId'])->setNewsletterId($data['newsletterId'])->setTemplateId($data['templateId'])->setSubject($data['subject'])->setParams($data['params'])->setMessage($data['message'])->setSent(true)->setDateCreated(new \DateTime($data['dateCreated']))->setDateSent(new \DateTime($data['dateSent'])); $hydrator = new Message(); $model = $hydrator->hydrate($data, new MessageModel()); $this->assertEquals($object, $model); $this->assertSame($data, $hydrator->extract($model)); }
/** * @expectedException \UthandoCommon\UthandoException * @expectExceptionMessage Cannot send message out again. */ public function testSendMessageWillNotSendAlreadySentMessage() { $messageModel = new MessageModel(); $messageModel->setNewsletterId(1)->setSent(true); $subscriptions = [new Subscription()]; $subscribers = [new Subscriber()]; $messageMapperMock = $this->getMock('UthandoNewsletter\\Mapper\\Message'); $messageMapperMock->expects($this->once())->method('getById')->willReturn($messageModel); $newsletterServiceMock = $this->getMock('UthandoNewsletter\\Service\\Newsletter'); $newsletterServiceMock->expects($this->once())->method('getById')->willReturn(new NewsletterModel()); $templateServiceMock = $this->getMock('UthandoNewsletter\\Service\\Template'); $templateServiceMock->expects($this->once())->method('getById')->willReturn(new TemplateModel()); $this->serviceManager->get('UthandoMapperManager')->setAllowOverride(true); $this->serviceManager->get('UthandoMapperManager')->setService('UthandoNewsletterMessage', $messageMapperMock); $this->serviceManager->get('UthandoServiceManager')->setAllowOverride(true); $this->serviceManager->get('UthandoServiceManager')->setService('UthandoNewsletter', $newsletterServiceMock); $this->serviceManager->get('UthandoServiceManager')->setService('UthandoNewsletterTemplate', $templateServiceMock); /* @var Message $service */ $service = $this->serviceManager->get('UthandoServiceManager')->get('UthandoNewsletterMessage'); $service->setUseCache(false); $result = $service->sendMessage(1); }
/** * @param Template|Message $model * @return string */ public function parseParams($model) { $iniReader = new Ini(); $params = $iniReader->fromString($model->getParams()); if ($model instanceof Message) { $params = array_merge(parse_ini_string($model->getTemplate()->getParams()), $params); } $this->setVariables($params); }
/** * @param \UthandoNewsletter\Model\Message $object * @return array */ public function extract($object) { return ['messageId' => $object->getMessageId(), 'newsletterId' => $object->getNewsletterId(), 'templateId' => $object->getTemplateId(), 'subject' => $object->getSubject(), 'params' => $object->getParams(), 'message' => $object->getMessage(), 'sent' => $this->extractValue('sent', $object->isSent()), 'dateCreated' => $this->extractValue('dateCreated', $object->getDateCreated()), 'dateSent' => $this->extractValue('dateSent', $object->getDateSent())]; }
public function testSetGetDateSent() { $this->model->setDateSent(new DateTime()); $this->assertInstanceOf(DateTime::class, $this->model->getDateSent()); }