public function testCommunicationEmailProviderCreatesCommunications() { $this->assertCount(0, CommunicationItem::find(), "CommunicationItem count was not 0"); $this->assertCount(0, Communication::find(), "Communication count was not 0"); $email = new SimpleEmail(); $email->setSubject("A fine day in the park"); $email->addRecipientByEmail("*****@*****.**", "Joe Bloggs"); $email->setHtml("<html><head>Test Head</head><body>Test Body</body></html>"); $email->setText("Test Text Body"); CommunicationProcessor::setProviderClassName(EmailProvider::class, UnitTestingEmailProvider::class); EmailProvider::setProviderClassName(CommunicationEmailProvider::class); EmailProvider::getProvider()->send($email); $this->assertCount(1, Communication::find(), "Communication count was not 1"); $this->assertCount(1, CommunicationItem::find(), "CommunicationItem count was not 1"); $communication = Communication::findLast(); $this->assertEquals($email->getSubject(), $communication->Title, "Subject not set correctly"); $this->assertTrue($communication->DateCreated->isValidDateTime(), "Date Created not set correctly"); $communicationEmail = CommunicationItem::findLast(); $this->assertEquals($communicationEmail->CommunicationID, $communication->CommunicationID); $this->assertEquals($email->getRecipients()[0]->__toString(), $communicationEmail->Recipient, "Name not set correctly"); $this->assertEquals($email->getText(), $communicationEmail->Text, "Text Body not set correctly"); $email->addRecipientByEmail("*****@*****.**", "Jane Doe"); EmailProvider::getProvider()->send($email); $this->assertCount(3, CommunicationItem::find(), "CommunicationItem count was not 3 (2 recipients in email)"); $communicationEmail = CommunicationItem::findLast(); $this->assertEquals('"Jane Doe" <*****@*****.**>', $communicationEmail->Recipient, "Recipient not set correctly"); }
/** * @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 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()); }