summaryrefslogtreecommitdiff
path: root/tests/Unit/Mail/Transport/TransportTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Unit/Mail/Transport/TransportTest.php')
-rw-r--r--tests/Unit/Mail/Transport/TransportTest.php83
1 files changed, 83 insertions, 0 deletions
diff --git a/tests/Unit/Mail/Transport/TransportTest.php b/tests/Unit/Mail/Transport/TransportTest.php
new file mode 100644
index 00000000..60f2079d
--- /dev/null
+++ b/tests/Unit/Mail/Transport/TransportTest.php
@@ -0,0 +1,83 @@
+<?php
+
+namespace Engelsystem\Test\Unit\Mail\Transport;
+
+use Engelsystem\Test\Unit\Mail\Transport\Stub\TransportImplementation;
+use PHPUnit\Framework\MockObject\MockObject;
+use PHPUnit\Framework\TestCase;
+use Swift_Mime_SimpleMessage as SimpleMessage;
+
+class TransportTest extends TestCase
+{
+ /**
+ * @covers \Engelsystem\Mail\Transport\Transport::isStarted
+ * @covers \Engelsystem\Mail\Transport\Transport::ping
+ */
+ public function testMethods()
+ {
+ $transport = new TransportImplementation();
+
+ $this->assertTrue($transport->isStarted());
+ $this->assertTrue($transport->ping());
+ }
+
+ /**
+ * @covers \Engelsystem\Mail\Transport\Transport::allRecipients
+ */
+ public function testAllRecipients()
+ {
+ /** @var SimpleMessage|MockObject $message */
+ $message = $this->createMock(SimpleMessage::class);
+ $transport = new TransportImplementation();
+ $message->expects($this->once())
+ ->method('getTo')
+ ->willReturn([
+ 'foo@bar.batz' => 'Foo Bar',
+ 'lorem@ipsum.dolor' => null,
+ ]);
+ $message->expects($this->once())
+ ->method('getCc')
+ ->willReturn([
+ 'to@bar.batz' => null,
+ ]);
+ $message->expects($this->once())
+ ->method('getBcc')
+ ->willReturn([
+ 'secret@bar.batz' => 'I\'m secret!',
+ ]);
+
+ $this->assertEquals(
+ [
+ 'foo@bar.batz' => 'Foo Bar',
+ 'lorem@ipsum.dolor' => null,
+ 'to@bar.batz' => null,
+ 'secret@bar.batz' => 'I\'m secret!',
+ ],
+ $transport->getAllRecipients($message)
+ );
+ }
+
+ /**
+ * @covers \Engelsystem\Mail\Transport\Transport::getTo
+ * @covers \Engelsystem\Mail\Transport\Transport::formatTo
+ */
+ public function testGetTo()
+ {
+ /** @var SimpleMessage|MockObject $message */
+ $message = $this->createMock(SimpleMessage::class);
+ /** @var TransportImplementation|MockObject $transport */
+ $transport = $this->getMockBuilder(TransportImplementation::class)
+ ->setMethods(['allRecipients'])
+ ->getMock();
+ $transport->expects($this->once())
+ ->method('allRecipients')
+ ->with($message)
+ ->willReturn([
+ 'foo@bar.batz' => null,
+ 'lorem@ipsum.dolor' => 'Developer',
+ ]);
+
+ $return = $transport->getGetTo($message);
+ $this->assertEquals('foo@bar.batz,Developer <lorem@ipsum.dolor>', $return);
+ }
+}