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); }