diff options
author | Igor Scheller <igor.scheller@igorshp.de> | 2018-09-05 13:40:03 +0200 |
---|---|---|
committer | Igor Scheller <igor.scheller@igorshp.de> | 2018-09-05 13:44:43 +0200 |
commit | 01e9c22695a3e495f07ab445750221af72e09fe4 (patch) | |
tree | 63c01a396d289f5f1e4d11259654e772300ff98c /tests/Unit/Mail/MailerTest.php | |
parent | 9d34f371cb9c5ab0d60bd3158678b9cc9da6cc80 (diff) |
Implemented mailing abstraction
Closes #434
Diffstat (limited to 'tests/Unit/Mail/MailerTest.php')
-rw-r--r-- | tests/Unit/Mail/MailerTest.php | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/tests/Unit/Mail/MailerTest.php b/tests/Unit/Mail/MailerTest.php new file mode 100644 index 00000000..24c6f69a --- /dev/null +++ b/tests/Unit/Mail/MailerTest.php @@ -0,0 +1,77 @@ +<?php + +namespace Engelsystem\Test\Unit\Mail; + +use Engelsystem\Mail\Mailer; +use PHPUnit\Framework\MockObject\MockObject; +use PHPUnit\Framework\TestCase; +use Swift_Mailer as SwiftMailer; +use Swift_Message as SwiftMessage; + +class MailerTest extends TestCase +{ + /** + * @covers \Engelsystem\Mail\Mailer::__construct + * @covers \Engelsystem\Mail\Mailer::getFromAddress + * @covers \Engelsystem\Mail\Mailer::setFromAddress + * @covers \Engelsystem\Mail\Mailer::getFromName + * @covers \Engelsystem\Mail\Mailer::setFromName + */ + public function testInitAndSettersAndGetters() + { + /** @var SwiftMailer|MockObject $swiftMailer */ + $swiftMailer = $this->createMock(SwiftMailer::class); + + $mailer = new Mailer($swiftMailer); + + $mailer->setFromName('From Name'); + $this->assertEquals('From Name', $mailer->getFromName()); + + $mailer->setFromAddress('from@foo.bar'); + $this->assertEquals('from@foo.bar', $mailer->getFromAddress()); + } + + /** + * @covers \Engelsystem\Mail\Mailer::send + */ + public function testSend() + { + /** @var SwiftMessage|MockObject $message */ + $message = $this->createMock(SwiftMessage::class); + /** @var SwiftMailer|MockObject $swiftMailer */ + $swiftMailer = $this->createMock(SwiftMailer::class); + $swiftMailer->expects($this->once()) + ->method('createMessage') + ->willReturn($message); + $swiftMailer->expects($this->once()) + ->method('send') + ->willReturn(1); + + $message->expects($this->once()) + ->method('setTo') + ->with(['to@xam.pel']) + ->willReturn($message); + + $message->expects($this->once()) + ->method('setFrom') + ->with('foo@bar.baz', 'Lorem Ipsum') + ->willReturn($message); + + $message->expects($this->once()) + ->method('setSubject') + ->with('Foo Bar') + ->willReturn($message); + + $message->expects($this->once()) + ->method('setBody') + ->with('Lorem Ipsum!') + ->willReturn($message); + + $mailer = new Mailer($swiftMailer); + $mailer->setFromAddress('foo@bar.baz'); + $mailer->setFromName('Lorem Ipsum'); + + $return = $mailer->send('to@xam.pel', 'Foo Bar', 'Lorem Ipsum!'); + $this->equalTo(1, $return); + } +} |