1*269d5ff4SAndreas Gohr<?php 2*269d5ff4SAndreas Gohr/** 3*269d5ff4SAndreas Gohr * Created by PhpStorm. 4*269d5ff4SAndreas Gohr * User: msowers 5*269d5ff4SAndreas Gohr * Date: 3/31/15 6*269d5ff4SAndreas Gohr * Time: 10:57 AM 7*269d5ff4SAndreas Gohr */ 8*269d5ff4SAndreas Gohr 9*269d5ff4SAndreas Gohruse Tx\Mailer\SMTP; 10*269d5ff4SAndreas Gohruse Tx\Mailer\Message; 11*269d5ff4SAndreas Gohruse ERB\Testing\Tools\TestHelper; 12*269d5ff4SAndreas Gohr 13*269d5ff4SAndreas Gohr/** 14*269d5ff4SAndreas Gohr * Class SMTPTest 15*269d5ff4SAndreas Gohr * @package Tests 16*269d5ff4SAndreas Gohr * 17*269d5ff4SAndreas Gohr * This test set requires the use of an open SMTP server mock. Currently, I'm using FakeSMTPServer 18*269d5ff4SAndreas Gohr * 19*269d5ff4SAndreas Gohr */ 20*269d5ff4SAndreas Gohrclass SMTPTest extends TestCase { 21*269d5ff4SAndreas Gohr 22*269d5ff4SAndreas Gohr /** 23*269d5ff4SAndreas Gohr * @var SMTP 24*269d5ff4SAndreas Gohr */ 25*269d5ff4SAndreas Gohr protected $smtp; 26*269d5ff4SAndreas Gohr 27*269d5ff4SAndreas Gohr /** 28*269d5ff4SAndreas Gohr * @var TestHelper 29*269d5ff4SAndreas Gohr */ 30*269d5ff4SAndreas Gohr protected $testHelper; 31*269d5ff4SAndreas Gohr 32*269d5ff4SAndreas Gohr public function setup() 33*269d5ff4SAndreas Gohr { 34*269d5ff4SAndreas Gohr $this->smtp = new SMTP(); 35*269d5ff4SAndreas Gohr $this->testHelper = new TestHelper(); 36*269d5ff4SAndreas Gohr 37*269d5ff4SAndreas Gohr } 38*269d5ff4SAndreas Gohr 39*269d5ff4SAndreas Gohr public function testSetServer() 40*269d5ff4SAndreas Gohr { 41*269d5ff4SAndreas Gohr $result = $this->smtp->setServer("localhost", "25", null); 42*269d5ff4SAndreas Gohr $this->assertEquals('localhost', $this->testHelper->getPropertyValue($this->smtp, 'host')); 43*269d5ff4SAndreas Gohr $this->assertEquals('25', $this->testHelper->getPropertyValue($this->smtp, 'port')); 44*269d5ff4SAndreas Gohr $this->assertSame($this->smtp, $result); 45*269d5ff4SAndreas Gohr } 46*269d5ff4SAndreas Gohr 47*269d5ff4SAndreas Gohr public function testSetAuth() 48*269d5ff4SAndreas Gohr { 49*269d5ff4SAndreas Gohr $result = $this->smtp->setAuth('none', 'none'); 50*269d5ff4SAndreas Gohr 51*269d5ff4SAndreas Gohr $this->assertEquals('none', $this->testHelper->getPropertyValue($this->smtp, 'username')); 52*269d5ff4SAndreas Gohr $this->assertEquals('none', $this->testHelper->getPropertyValue($this->smtp, 'password')); 53*269d5ff4SAndreas Gohr $this->assertSame($this->smtp, $result); 54*269d5ff4SAndreas Gohr } 55*269d5ff4SAndreas Gohr 56*269d5ff4SAndreas Gohr public function testMessage() 57*269d5ff4SAndreas Gohr { 58*269d5ff4SAndreas Gohr $this->smtp->setServer("localhost", "25", null) 59*269d5ff4SAndreas Gohr ->setAuth('none', 'none'); 60*269d5ff4SAndreas Gohr 61*269d5ff4SAndreas Gohr $message = new Message(); 62*269d5ff4SAndreas Gohr $message->setFrom('You', 'nobody@nowhere.no') 63*269d5ff4SAndreas Gohr ->setTo('Them', 'them@nowhere.no') 64*269d5ff4SAndreas Gohr ->setSubject('This is a test') 65*269d5ff4SAndreas Gohr ->setBody('This is a test part two'); 66*269d5ff4SAndreas Gohr 67*269d5ff4SAndreas Gohr $status = $this->smtp->send($message); 68*269d5ff4SAndreas Gohr $this->assertTrue($status); 69*269d5ff4SAndreas Gohr } 70*269d5ff4SAndreas Gohr 71*269d5ff4SAndreas Gohr 72*269d5ff4SAndreas Gohr /** 73*269d5ff4SAndreas Gohr * @expectedException \Tx\Mailer\Exceptions\SMTPException 74*269d5ff4SAndreas Gohr */ 75*269d5ff4SAndreas Gohr public function testConnectSMTPException() 76*269d5ff4SAndreas Gohr { 77*269d5ff4SAndreas Gohr $this->smtp->setServer("localhost", "99999", null) 78*269d5ff4SAndreas Gohr ->setAuth('none', 'none'); 79*269d5ff4SAndreas Gohr $message = new Message(); 80*269d5ff4SAndreas Gohr $message->setFrom('You', 'nobody@nowhere.no') 81*269d5ff4SAndreas Gohr ->setTo('Them', 'them@nowhere.no') 82*269d5ff4SAndreas Gohr ->setSubject('This is a test') 83*269d5ff4SAndreas Gohr ->setBody('This is a test part two'); 84*269d5ff4SAndreas Gohr 85*269d5ff4SAndreas Gohr $this->smtp->send($message); 86*269d5ff4SAndreas Gohr 87*269d5ff4SAndreas Gohr } 88*269d5ff4SAndreas Gohr 89*269d5ff4SAndreas Gohr 90*269d5ff4SAndreas Gohr} 91