Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fixed inline image issue. Added new tests.
- Loading branch information
Showing
3 changed files
with
120 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,3 +8,4 @@ build | |
composer.lock | ||
nbproject/* | ||
.idea | ||
phpunit.phar |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
<?PHP | ||
|
||
namespace Mailgun\Tests\Messages; | ||
|
||
use Mailgun\Tests\Mock\Mailgun; | ||
use Mailgun\Connection\RestClient; | ||
|
||
|
||
class mockRestClient extends RestClient{ | ||
public function send($method, $uri, $body = null, $files = [], array $headers = []) | ||
{ | ||
$result = new \stdClass; | ||
|
||
$result->method = $method; | ||
$result->uri = $uri; | ||
$result->body = $body; | ||
$result->files = $files; | ||
$result->headers = $headers; | ||
|
||
return $result; | ||
} | ||
} | ||
|
||
class mockMailgun extends Mailgun{ | ||
public function __construct( | ||
$apiKey = null, | ||
HttpClient $httpClient = null, | ||
$apiEndpoint = 'api.mailgun.net' | ||
) { | ||
$this->apiKey = $apiKey; | ||
$this->restClient = new mockRestClient($apiKey, $apiEndpoint, $httpClient); | ||
} | ||
} | ||
|
||
class ComplexMessageTest extends \Mailgun\Tests\MailgunTestCase | ||
{ | ||
private $client; | ||
private $sampleDomain = 'samples.mailgun.org'; | ||
|
||
public function setUp() | ||
{ | ||
$this->client = new mockMailgun('My-Super-Awesome-API-Key'); | ||
} | ||
|
||
public function testSendComplexMessage() | ||
{ | ||
|
||
$message = [ | ||
'to' => 'test@test.mailgun.org', | ||
'from' => 'sender@test.mailgun.org', | ||
'subject' => 'This is my test subject', | ||
'text' => 'Testing!' | ||
]; | ||
|
||
$files = [ | ||
'inline' => [ | ||
[ | ||
'remoteName'=> 'mailgun_icon1.png', | ||
'filePath' => 'tests/Mailgun/Tests/TestAssets/mailgun_icon1.png' | ||
], | ||
[ | ||
'remoteName'=> 'mailgun_icon2.png', | ||
'filePath' => 'tests/Mailgun/Tests/TestAssets/mailgun_icon2.png' | ||
] | ||
] | ||
]; | ||
|
||
$result = $this->client->sendMessage('test.mailgun.org', $message, $files); | ||
|
||
$this->assertEquals('POST', $result->method); | ||
$this->assertEquals('test.mailgun.org/messages', $result->uri); | ||
$this->assertEquals([], $result->body); | ||
|
||
// Start a counter, make sure all files are asserted | ||
$testCount = 0; | ||
|
||
foreach($result->files as $file){ | ||
if ($file['name'] == 'to'){ | ||
$this->assertEquals($file['contents'], 'test@test.mailgun.org'); | ||
$testCount++; | ||
} | ||
if ($file['name'] == 'from'){ | ||
$this->assertEquals($file['contents'], 'sender@test.mailgun.org'); | ||
$testCount++; | ||
} | ||
if ($file['name'] == 'subject'){ | ||
$this->assertEquals($file['contents'], 'This is my test subject'); | ||
$testCount++; | ||
} | ||
if ($file['name'] == 'text'){ | ||
$this->assertEquals($file['contents'], 'Testing!'); | ||
$testCount++; | ||
} | ||
if ($file['name'] == 'inline[0]'){ | ||
$this->assertEquals($file['filename'], 'mailgun_icon1.png'); | ||
$testCount++; | ||
} | ||
if ($file['name'] == 'inline[1]'){ | ||
$this->assertEquals($file['filename'], 'mailgun_icon2.png'); | ||
$testCount++; | ||
} | ||
} | ||
|
||
// Make sure all "files" are asserted | ||
$this->assertEquals(count($result->files), $testCount); | ||
|
||
$this->assertEquals([], $result->body); | ||
$this->assertEquals([], $result->headers); | ||
|
||
} | ||
} |