| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 | <?PHPnamespace 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", array("first" => "Test", "last" => "User"));        $messageObj = $message->getMessage();        $this->assertEquals(array("to" => array("'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", array("first" => "Test", "last" => "User"));        $messageObj = $message->getMessage();        $this->assertEquals(array("to" => array("'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", array("first" => "Test", "last" => "User"));        $messageObj = $message->getMessage();        $this->assertEquals(array("cc" => array("'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", array("first" => "Test", "last" => "User"));        $messageObj = $message->getMessage();        $this->assertEquals(array("bcc" => array("'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", array("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", array("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", array("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", array("first" => "Test", "last" => "User"));        $message->setFromAddress("samples@mailgun.org", array("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", array("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", array("first" => "Test", "last" => "User"));        $message->setFromAddress("samples@mailgun.org", array("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(array("1234"), $message->getMessageIds());    }    public function testInvalidMissingRequiredMIMEParametersExceptionGetsFlungNoFrom()    {        $this->setExpectedException("\\Mailgun\\Messages\\Exceptions\\MissingRequiredMIMEParameters");        $message = $this->client->BatchMessage($this->sampleDomain);        $message->sendMessage(array(1, 2, 3));    }    public function testInvalidMissingRequiredMIMEParametersExceptionGetsFlungNoTo()    {        $this->setExpectedException("\\Mailgun\\Messages\\Exceptions\\MissingRequiredMIMEParameters");        $message = $this->client->BatchMessage($this->sampleDomain);        $message->sendMessage(array("from" => 1, 2, 3));    }    public function testInvalidMissingRequiredMIMEParametersExceptionGetsFlungNoSubject()    {        $this->setExpectedException("\\Mailgun\\Messages\\Exceptions\\MissingRequiredMIMEParameters");        $message = $this->client->BatchMessage($this->sampleDomain);        $message->sendMessage(array("from" => 1, "to" => 2, 3));    }    public function testInvalidMissingRequiredMIMEParametersExceptionGetsFlungNoTextOrHtml()    {        $this->setExpectedException("\\Mailgun\\Messages\\Exceptions\\MissingRequiredMIMEParameters");        $message = $this->client->BatchMessage($this->sampleDomain);        $message->sendMessage(array("from" => 1, "to" => 2, "subject" => 3));    }}
 |