xref: /plugin/smtp/subtree/txtthinking/Mailer/tests/SMTPTest.php (revision 269d5ff46c37c7e45f82c18bc0cc45d491b48a4a)
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