From 5032d29b23867c066de0e37502a91adff757c71c Mon Sep 17 00:00:00 2001 From: Sven Friedemann Date: Wed, 17 Jun 2015 10:43:43 +0200 Subject: [PATCH 1/3] use transport factory in Writer\Mail constructor The transport factory allows to config the transport via array options. --- src/Writer/Mail.php | 4 ++++ test/Writer/MailTest.php | 15 +++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/Writer/Mail.php b/src/Writer/Mail.php index fd0ca9d1..bad5d791 100644 --- a/src/Writer/Mail.php +++ b/src/Writer/Mail.php @@ -90,6 +90,10 @@ public function __construct($mail, Transport\TransportInterface $transport = nul if (is_array($mail)) { $mail = MailMessageFactory::getInstance($mail); } + if (is_array($transport)) { + $transport = Transport\Factory::create($transport); + } + } // Ensure we have a valid mail message diff --git a/test/Writer/MailTest.php b/test/Writer/MailTest.php index e261b29b..c8b6ad60 100644 --- a/test/Writer/MailTest.php +++ b/test/Writer/MailTest.php @@ -122,10 +122,25 @@ public function testConstructWithMailAsArrayOptions() 'body' => 'body', ]; + $transportOptions = [ + 'type' => 'smtp', + 'options' => [ + 'host' => 'test', + 'connection_class' => 'login', + 'connection_config' => [ + 'username' => 'foo', + 'smtp_password' => 'bar', + 'ssl' => 'tls' + ] + ] + ]; + $writer = new MailWriter([ 'mail' => $messageOptions, + 'transport' => $transportOptions ]); $this->assertAttributeInstanceOf('Zend\Mail\Message', 'mail', $writer); + $this->assertAttributeInstanceOf('Zend\Mail\Transport\Smtp', 'transport', $writer); } } From 617e402ddf7ae124db299b05f614ff1349da9194 Mon Sep 17 00:00:00 2001 From: Sven Friedemann Date: Wed, 17 Jun 2015 10:55:36 +0200 Subject: [PATCH 2/3] [cs] braces --- src/Writer/Mail.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Writer/Mail.php b/src/Writer/Mail.php index bad5d791..41f79f7f 100644 --- a/src/Writer/Mail.php +++ b/src/Writer/Mail.php @@ -93,7 +93,6 @@ public function __construct($mail, Transport\TransportInterface $transport = nul if (is_array($transport)) { $transport = Transport\Factory::create($transport); } - } // Ensure we have a valid mail message From af3170e2039ce957a16f5e8dbed9f77fd1e66e05 Mon Sep 17 00:00:00 2001 From: Sven Friedemann Date: Wed, 17 Jun 2015 12:56:14 +0200 Subject: [PATCH 3/3] specific test method for transport options --- test/Writer/MailTest.php | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/test/Writer/MailTest.php b/test/Writer/MailTest.php index c8b6ad60..91eac599 100644 --- a/test/Writer/MailTest.php +++ b/test/Writer/MailTest.php @@ -122,10 +122,27 @@ public function testConstructWithMailAsArrayOptions() 'body' => 'body', ]; + $writer = new MailWriter([ + 'mail' => $messageOptions, + ]); + + $this->assertAttributeInstanceOf('Zend\Mail\Message', 'mail', $writer); + } + + public function testConstructWithMailTransportAsArrayOptions() + { + $messageOptions = [ + 'encoding' => 'UTF-8', + 'from' => 'matthew@example.com', + 'to' => 'zf-devteam@example.com', + 'subject' => 'subject', + 'body' => 'body', + ]; + $transportOptions = [ 'type' => 'smtp', 'options' => [ - 'host' => 'test', + 'host' => 'test.dev', 'connection_class' => 'login', 'connection_config' => [ 'username' => 'foo', @@ -137,10 +154,9 @@ public function testConstructWithMailAsArrayOptions() $writer = new MailWriter([ 'mail' => $messageOptions, - 'transport' => $transportOptions + 'transport' => $transportOptions, ]); - $this->assertAttributeInstanceOf('Zend\Mail\Message', 'mail', $writer); $this->assertAttributeInstanceOf('Zend\Mail\Transport\Smtp', 'transport', $writer); } }