diff options
Diffstat (limited to 'inc/mailgun/mailgun/mailgun-php/tests/Messages/BatchMessageTest.php')
| -rw-r--r-- | inc/mailgun/mailgun/mailgun-php/tests/Messages/BatchMessageTest.php | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/inc/mailgun/mailgun/mailgun-php/tests/Messages/BatchMessageTest.php b/inc/mailgun/mailgun/mailgun-php/tests/Messages/BatchMessageTest.php new file mode 100644 index 0000000..a1072fb --- /dev/null +++ b/inc/mailgun/mailgun/mailgun-php/tests/Messages/BatchMessageTest.php @@ -0,0 +1,172 @@ +<?PHP + +namespace Mailgun\Tests\Messages; + +use Mailgun\Tests\Mock\Mailgun; + +class BatchMessageTest extends \Mailgun\Tests\MailgunTestCase +{ + private $client; + private $sampleDomain = 'samples.mailgun.org'; + + public function setUp() + { + $this->client = new Mailgun('My-Super-Awesome-API-Key'); + } + + public function testBlankInstantiation() + { + $message = $this->client->BatchMessage($this->sampleDomain); + $this->assertTrue(is_array($message->getMessage())); + } + + public function testAddRecipient() + { + $message = $this->client->BatchMessage($this->sampleDomain); + $message->addToRecipient('test@samples.mailgun.org', ['first' => 'Test', 'last' => 'User']); + $messageObj = $message->getMessage(); + $this->assertEquals(['to' => ["'Test User' <test@samples.mailgun.org>"]], $messageObj); + + $reflectionClass = new \ReflectionClass(get_class($message)); + $property = $reflectionClass->getProperty('counters'); + $property->setAccessible(true); + $array = $property->getValue($message); + $this->assertEquals(1, $array['recipients']['to']); + } + + public function testRecipientVariablesOnTo() + { + $message = $this->client->BatchMessage($this->sampleDomain); + $message->addToRecipient('test@samples.mailgun.org', ['first' => 'Test', 'last' => 'User']); + $messageObj = $message->getMessage(); + $this->assertEquals(['to' => ["'Test User' <test@samples.mailgun.org>"]], $messageObj); + + $reflectionClass = new \ReflectionClass(get_class($message)); + $property = $reflectionClass->getProperty('batchRecipientAttributes'); + $property->setAccessible(true); + $propertyValue = $property->getValue($message); + $this->assertEquals('Test', $propertyValue['test@samples.mailgun.org']['first']); + $this->assertEquals('User', $propertyValue['test@samples.mailgun.org']['last']); + } + + public function testRecipientVariablesOnCc() + { + $message = $this->client->BatchMessage($this->sampleDomain); + $message->addCcRecipient('test@samples.mailgun.org', ['first' => 'Test', 'last' => 'User']); + $messageObj = $message->getMessage(); + $this->assertEquals(['cc' => ["'Test User' <test@samples.mailgun.org>"]], $messageObj); + + $reflectionClass = new \ReflectionClass(get_class($message)); + $property = $reflectionClass->getProperty('batchRecipientAttributes'); + $property->setAccessible(true); + $propertyValue = $property->getValue($message); + $this->assertEquals('Test', $propertyValue['test@samples.mailgun.org']['first']); + $this->assertEquals('User', $propertyValue['test@samples.mailgun.org']['last']); + } + + public function testRecipientVariablesOnBcc() + { + $message = $this->client->BatchMessage($this->sampleDomain); + $message->addBccRecipient('test@samples.mailgun.org', ['first' => 'Test', 'last' => 'User']); + $messageObj = $message->getMessage(); + $this->assertEquals(['bcc' => ["'Test User' <test@samples.mailgun.org>"]], $messageObj); + + $reflectionClass = new \ReflectionClass(get_class($message)); + $property = $reflectionClass->getProperty('batchRecipientAttributes'); + $property->setAccessible(true); + $propertyValue = $property->getValue($message); + $this->assertEquals('Test', $propertyValue['test@samples.mailgun.org']['first']); + $this->assertEquals('User', $propertyValue['test@samples.mailgun.org']['last']); + } + + public function testAddMultipleBatchRecipients() + { + $message = $this->client->BatchMessage($this->sampleDomain); + for ($i = 0; $i < 100; $i++) { + $message->addToRecipient("$i@samples.mailgun.org", ['first' => 'Test', 'last' => "User $i"]); + } + $messageObj = $message->getMessage(); + $this->assertEquals(100, count($messageObj['to'])); + } + + public function testMaximumBatchSize() + { + $message = $this->client->BatchMessage($this->sampleDomain); + $message->setFromAddress('samples@mailgun.org', ['first' => 'Test', 'last' => 'User']); + $message->setSubject('This is the subject of the message!'); + $message->setTextBody('This is the text body of the message!'); + for ($i = 0; $i < 1001; $i++) { + $message->addToRecipient("$i@samples.mailgun.org", ['first' => 'Test', 'last' => "User $i"]); + } + $messageObj = $message->getMessage(); + $this->assertEquals(1, count($messageObj['to'])); + } + + public function testAttributeResetOnEndBatchMessage() + { + $message = $this->client->BatchMessage($this->sampleDomain); + $message->addToRecipient('test-user@samples.mailgun.org', ['first' => 'Test', 'last' => 'User']); + $message->setFromAddress('samples@mailgun.org', ['first' => 'Test', 'last' => 'User']); + $message->setSubject('This is the subject of the message!'); + $message->setTextBody('This is the text body of the message!'); + $message->finalize(); + $messageObj = $message->getMessage(); + $this->assertTrue(true, empty($messageObj)); + } + + public function testDefaultIDInVariables() + { + $message = $this->client->BatchMessage($this->sampleDomain); + $message->addToRecipient('test-user@samples.mailgun.org', ['first' => 'Test', 'last' => 'User']); + + $reflectionClass = new \ReflectionClass(get_class($message)); + $property = $reflectionClass->getProperty('batchRecipientAttributes'); + $property->setAccessible(true); + $propertyValue = $property->getValue($message); + $this->assertEquals(1, $propertyValue['test-user@samples.mailgun.org']['id']); + } + + public function testgetMessageIds() + { + $message = $this->client->BatchMessage($this->sampleDomain); + $message->addToRecipient('test-user@samples.mailgun.org', ['first' => 'Test', 'last' => 'User']); + $message->setFromAddress('samples@mailgun.org', ['first' => 'Test', 'last' => 'User']); + $message->setSubject('This is the subject of the message!'); + $message->setTextBody('This is the text body of the message!'); + $message->finalize(); + + $this->assertEquals(['1234'], $message->getMessageIds()); + } + + public function testInvalidMissingRequiredMIMEParametersExceptionGetsFlungNoFrom() + { + $this->setExpectedException('\\Mailgun\\Messages\\Exceptions\\MissingRequiredMIMEParameters'); + + $message = $this->client->BatchMessage($this->sampleDomain); + $message->sendMessage([1, 2, 3]); + } + + public function testInvalidMissingRequiredMIMEParametersExceptionGetsFlungNoTo() + { + $this->setExpectedException('\\Mailgun\\Messages\\Exceptions\\MissingRequiredMIMEParameters'); + + $message = $this->client->BatchMessage($this->sampleDomain); + $message->sendMessage(['from' => 1, 2, 3]); + } + + public function testInvalidMissingRequiredMIMEParametersExceptionGetsFlungNoSubject() + { + $this->setExpectedException('\\Mailgun\\Messages\\Exceptions\\MissingRequiredMIMEParameters'); + + $message = $this->client->BatchMessage($this->sampleDomain); + $message->sendMessage(['from' => 1, 'to' => 2, 3]); + } + + public function testInvalidMissingRequiredMIMEParametersExceptionGetsFlungNoTextOrHtml() + { + $this->setExpectedException('\\Mailgun\\Messages\\Exceptions\\MissingRequiredMIMEParameters'); + + $message = $this->client->BatchMessage($this->sampleDomain); + $message->sendMessage(['from' => 1, 'to' => 2, 'subject' => 3]); + } +} |
