public function testEmailExtractionFromCommunicationEmail() { $email = new SimpleEmail(); $email->addRecipientByEmail("John Smith", "*****@*****.**"); $email->setSender("Jane Smith", "*****@*****.**"); $email->setSubject("The three billy goats"); $email->setText("Michael went to mow, went to mow a meadow."); $email->setHtml("<p>Michael went to mow, went to mow a meadow.</p>"); $email->addAttachment("file_location.txt"); $email->addAttachment("file_location1.txt", "TestFakeFileName"); $package = new CommunicationPackage(); $package->addSendable($email); $package->title = $email->getSubject(); $package->send(); $item = CommunicationItem::findLast(); $derivedEmail = $item->getSendable(); $this->assertEquals($email, $derivedEmail, "The derived email isn't exactly the same as the original"); $this->assertInstanceOf(SimpleEmail::class, $derivedEmail); // Next test is that a different sendable generates the correct type when getSendable is called. $unitTestingEmail = new UnitTestingTemplateEmail(['Name' => "", 'Age' => "", 'HairColour' => ""]); $unitTestingEmail->addRecipientByEmail("*****@*****.**"); $package = new CommunicationPackage(); $package->addSendable($unitTestingEmail); $package->title = $unitTestingEmail->getSubject(); $package->send(); $item = CommunicationItem::findLast(); $derivedEmail = $item->getSendable(); $this->assertInstanceOf(UnitTestingTemplateEmail::class, $derivedEmail); }
public function send(Sendable $email) { /** * @var Email $email */ $package = new CommunicationPackage(); $package->addSendable($email); $package->title = $email->getSubject(); $package->send(); }
/** * @return Communication * @throws \Rhubarb\Stem\Exceptions\RecordNotFoundException */ public function createCommunicationForEmail() { $email = new SimpleEmail(); $email->setSubject("The three billy goats"); $email->addRecipientByEmail("*****@*****.**", "John Smith"); $email->setSender("*****@*****.**", "Jane Smith"); $email->setText("Michael went to mow, went to mow a meadow."); $email->setHtml("<p>Michael went to mow, went to mow a meadow.</p>"); $package = new CommunicationPackage(); $package->addSendable($email); $package->title = $email->getSubject(); $package->send(); return Communication::findLast(); }
private function createCommunicationWithMultipleRecipients($dateToSend, $noOfRecipients) { $email = new SimpleEmail(); $email->setText("Test Message Body"); $email->setSender("*****@*****.**"); foreach (range(1, $noOfRecipients) as $i) { $email->addRecipientByEmail("test@test" . $i . ".com"); } $package = new CommunicationPackage(); if ($dateToSend) { $package->dateToSend = $dateToSend; } $package->addSendable($email); $package->send(); $communication = Communication::findLast(); return $communication; }
public static function draftPackage(CommunicationPackage $package) { $communication = SolutionSchema::getModel("Communication"); $communication->Title = $package->title; if ($package->dateToSend) { $communication->DateToSend = $package->dateToSend; } $communication->save(); foreach ($package->getSendables() as $sendable) { foreach ($sendable->getRecipients() as $recipient) { $clone = clone $sendable; $clone->clearRecipients(); $clone->addRecipient($recipient); $item = SolutionSchema::getModel("CommunicationItem"); $item->Recipient = (string) $recipient; $item->Text = $clone->getText(); $item->Type = $clone->getSendableType(); $item->SendableClassName = get_class($clone); $item->Data = $clone->toArray(); $item->CommunicationID = $communication->CommunicationID; $item->save(); } } return $communication; }
public function testPackageCanBeRecordedNotSent() { $lastEmail = UnitTestingEmailProvider::getLastEmail(); $email = new SimpleEmail(); $package = new CommunicationPackage(); $package->title = "Test With No Send"; $package->addSendable($email); $package->draft(); $communication = Communication::findLast(); $communication->markSent(); $this->assertEquals("Sent", $communication->Status); $this->assertEquals($lastEmail, UnitTestingEmailProvider::getLastEmail()); }