コード例 #1
0
 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 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");
 }
コード例 #3
0
 public function testPackageSends()
 {
     $email = $this->createEmailAndAddToPackage();
     $email->addRecipientByEmail("*****@*****.**");
     $email->setSubject("A test email");
     $email->setText("This is the end, my lonely friend, the end.");
     $this->package->title = "A test communication";
     $this->package->send();
     $this->assertCount(1, Communication::find());
     $communication = Communication::findLast();
     $this->assertEquals($this->package->title, $communication->Title, "The communication wasn't titled properly");
     $this->assertCount(1, CommunicationItem::find());
     $item = CommunicationItem::findLast();
     $this->assertEquals("*****@*****.**", $item->Recipient, "The item didn't have a recipient");
     $this->assertEquals("Email", $item->Type, "The type should have been email");
     $this->assertEquals($email->getText(), $item->Text, "The text value wasn't set correctly");
     $this->assertEquals(get_class($email), $item->SendableClassName, "The class name wasn't set correctly");
     $this->assertEquals($email->toArray(), $item->Data, "The sendable wasn't encoded into data correctly");
     $this->assertEquals($communication->UniqueIdentifier, $item->CommunicationID, "The item wasn't attached to the communication properly");
     $lastEmail = UnitTestingEmailProvider::getLastEmail();
     $this->assertEquals("A test email", $lastEmail->getSubject(), "The email should actually have been sent as it wasn't delayed");
 }