From 762bfde571e3ab21a366cfc79db1e19484ac88ba Mon Sep 17 00:00:00 2001 From: Travis Swientek Date: Wed, 24 Jul 2013 17:43:24 -0700 Subject: [PATCH] Added multiple new endpoints and their respective tests! --- src/Mailgun/Bounces/Bounces.php | 46 ++++++++++ src/Mailgun/Complaints/Complaints.php | 41 +++++++++ src/Mailgun/Connection/HttpBroker.php | 71 ++++++++++----- src/Mailgun/Logs/Logs.php | 24 +++++ src/Mailgun/MailgunClient.php | 46 ++++------ src/Mailgun/Stats/Stats.php | 32 +++++++ src/Mailgun/Unsubscribes/Unsubscribes.php | 4 +- tests/Mailgun/Tests/Bounces/BouncesTest.php | 40 +++++++++ .../Tests/Complaints/ComplaintsTest.php | 40 +++++++++ .../Tests/Connection/ConnectionTest.php | 6 +- tests/Mailgun/Tests/Connection/TestBroker.php | 87 ++++++++++++++++++- tests/Mailgun/Tests/Logs/LogsTest.php | 22 +++++ tests/Mailgun/Tests/MailgunClientTest.php | 2 +- tests/Mailgun/Tests/Stats/Stats.php | 28 ++++++ .../Tests/Unsubscribes/UnsubscribeTest.php | 16 ++-- 15 files changed, 435 insertions(+), 70 deletions(-) create mode 100644 src/Mailgun/Bounces/Bounces.php create mode 100644 src/Mailgun/Complaints/Complaints.php create mode 100644 src/Mailgun/Logs/Logs.php create mode 100644 src/Mailgun/Stats/Stats.php create mode 100644 tests/Mailgun/Tests/Bounces/BouncesTest.php create mode 100644 tests/Mailgun/Tests/Complaints/ComplaintsTest.php create mode 100644 tests/Mailgun/Tests/Logs/LogsTest.php create mode 100644 tests/Mailgun/Tests/Stats/Stats.php diff --git a/src/Mailgun/Bounces/Bounces.php b/src/Mailgun/Bounces/Bounces.php new file mode 100644 index 0000000..31d18a3 --- /dev/null +++ b/src/Mailgun/Bounces/Bounces.php @@ -0,0 +1,46 @@ +httpBroker = $httpBroker; + $this->endpointUrl = $this->httpBroker->returnWorkingDomain() . "/bounces"; + } + + public function addAddress($bounceAddress, $bounceCode, $bounceError = null){ + if(isset($bounceError)){ + $postData = array("address" => $bounceAddress, "code" => $bounceCode, "error" => $bounceError); + } + else{ + $postData = array("address" => $bounceAddress, "code" => $bounceCode); + } + $response = $this->httpBroker->postRequest($this->endpointUrl, $postData); + return $response; + } + + public function deleteAddress($bounceAddress){ + $requestUrl = $this->endpointUrl . "/" . urlencode($bounceAddress); + $response = $this->httpBroker->deleteRequest($requestUrl); + return $response; + } + + public function getBounce($bounceAddress){ + $requestUrl = $this->endpointUrl . "/" . urlencode($bounceAddress); + $response = $this->httpBroker->getRequest($requestUrl); + return $response; + } + public function getBounces($limit, $skip){ + $response = $this->httpBroker->getRequest($this->endpointUrl, array($limit, $skip)); + return $response; + } + +} \ No newline at end of file diff --git a/src/Mailgun/Complaints/Complaints.php b/src/Mailgun/Complaints/Complaints.php new file mode 100644 index 0000000..dddd0fb --- /dev/null +++ b/src/Mailgun/Complaints/Complaints.php @@ -0,0 +1,41 @@ +httpBroker = $httpBroker; + $this->endpointUrl = $this->httpBroker->returnWorkingDomain() . "/complaints"; + } + + public function addAddress($spamAddress){ + $postData = array("address" => $spamAddress); + $response = $this->httpBroker->postRequest($this->endpointUrl, $postData); + return $response; + } + + public function deleteAddress($spamAddress){ + $requestUrl = $this->endpointUrl . "/" . urlencode($spamAddress); + $response = $this->httpBroker->deleteRequest($requestUrl); + return $response; + } + + public function getComplaint($spamAddress){ + $requestUrl = $this->endpointUrl . "/" . urlencode($spamAddress); + $response = $this->httpBroker->getRequest($requestUrl); + return $response; + } + public function getComplaints($limit, $skip){ + $response = $this->httpBroker->getRequest($this->endpointUrl, array($limit, $skip)); + return $response; + } + +} \ No newline at end of file diff --git a/src/Mailgun/Connection/HttpBroker.php b/src/Mailgun/Connection/HttpBroker.php index 7f255bf..ba31b73 100644 --- a/src/Mailgun/Connection/HttpBroker.php +++ b/src/Mailgun/Connection/HttpBroker.php @@ -33,16 +33,15 @@ class HttpBroker{ public function postRequest($endpointUrl, $postData = array(), $files = array()){ if($this->debug){ $this->client = new Guzzle('https://api.ninomail.com/' . $this->apiVersion . '/', array('ssl.certificate_authority' => false)); - $this->client->setDefaultOption('auth', array ($this->apiUser, $this->apiKey)); - $this->client->setDefaultOption('exceptions', true); - $this->client->setUserAgent($this->sdkUserAgent . '/' . $this->sdkVersion); } else{ $this->client = new Guzzle('https://' . $this->apiEndpoint . '/' . $this->apiVersion . '/'); - $this->client->setDefaultOption('auth', array ($this->apiUser, $this->apiKey)); - $this->client->setDefaultOption('exceptions', false); - $this->client->setUserAgent($this->sdkUserAgent . '/' . $this->sdkVersion); } + + $this->client->setDefaultOption('auth', array ($this->apiUser, $this->apiKey)); + $this->client->setDefaultOption('exceptions', true); + $this->client->setUserAgent($this->sdkUserAgent . '/' . $this->sdkVersion); + $request = $this->client->post($endpointUrl, array(), $postData); if(isset($files["attachment"])){ @@ -63,6 +62,13 @@ class HttpBroker{ $result->$key = $value; } } + elseif($httpStatusCode == 401){ + throw new InvalidCredentials("Your credentials are incorrect."); + } + else{ + throw new GenericHTTPError("A generic HTTP Error has occurred! Check your network connection and try again."); + return false; + } $result->http_response_code = $httpResponeCode; return $result; } @@ -70,16 +76,15 @@ class HttpBroker{ public function getRequest($endpointUrl, $queryString = array()){ if($this->debug){ $this->client = new Guzzle('https://api.ninomail.com/' . $this->apiVersion . '/', array('ssl.certificate_authority' => false)); - $this->client->setDefaultOption('auth', array ($this->apiUser, $this->apiKey)); - $this->client->setDefaultOption('exceptions', false); - $this->client->setUserAgent($this->sdkUserAgent . '/' . $this->sdkVersion); } else{ $this->client = new Guzzle('https://' . $this->apiEndpoint . '/' . $this->apiVersion . '/'); - $this->client->setDefaultOption('auth', array ($this->apiUser, $this->apiKey)); - $this->client->setDefaultOption('exceptions', false); - $this->client->setUserAgent($this->sdkUserAgent . '/' . $this->sdkVersion); } + + $this->client->setDefaultOption('auth', array ($this->apiUser, $this->apiKey)); + $this->client->setDefaultOption('exceptions', true); + $this->client->setUserAgent($this->sdkUserAgent . '/' . $this->sdkVersion); + $request = $this->client->get($endpointUrl, $queryString); $response = $request->send(); $httpResponeCode = $response->getStatusCode(); @@ -89,6 +94,13 @@ class HttpBroker{ $result->$key = $value; } } + elseif($httpStatusCode == 401){ + throw new InvalidCredentials("Your credentials are incorrect."); + } + else{ + throw new GenericHTTPError("A generic HTTP Error has occurred! Check your network connection and try again."); + return false; + } $result->http_response_code = $httpResponeCode; return $result; } @@ -96,16 +108,15 @@ class HttpBroker{ public function deleteRequest($endpointUrl){ if($this->debug){ $this->client = new Guzzle('https://api.ninomail.com/' . $this->apiVersion . '/', array('ssl.certificate_authority' => false)); - $this->client->setDefaultOption('auth', array ($this->apiUser, $this->apiKey)); - $this->client->setDefaultOption('exceptions', false); - $this->client->setUserAgent($this->sdkUserAgent . '/' . $this->sdkVersion); } else{ $this->client = new Guzzle('https://' . $this->apiEndpoint . '/' . $this->apiVersion . '/'); - $this->client->setDefaultOption('auth', array ($this->apiUser, $this->apiKey)); - $this->client->setDefaultOption('exceptions', false); - $this->client->setUserAgent($this->sdkUserAgent . '/' . $this->sdkVersion); } + + $this->client->setDefaultOption('auth', array ($this->apiUser, $this->apiKey)); + $this->client->setDefaultOption('exceptions', true); + $this->client->setUserAgent($this->sdkUserAgent . '/' . $this->sdkVersion); + $request = $this->client->delete($endpointUrl); $response = $request->send(); $httpResponeCode = $response->getStatusCode(); @@ -115,6 +126,13 @@ class HttpBroker{ $result->$key = $value; } } + elseif($httpStatusCode == 401){ + throw new InvalidCredentials("Your credentials are incorrect."); + } + else{ + throw new GenericHTTPError("A generic HTTP Error has occurred! Check your network connection and try again."); + return false; + } $result->http_response_code = $httpResponeCode; return $result; } @@ -122,16 +140,14 @@ class HttpBroker{ public function putRequest($endpointUrl, $queryString){ if($this->debug){ $this->client = new Guzzle('https://api.ninomail.com/' . $this->apiVersion . '/', array('ssl.certificate_authority' => false)); - $this->client->setDefaultOption('auth', array ($this->apiUser, $this->apiKey)); - $this->client->setDefaultOption('exceptions', false); - $this->client->setUserAgent($this->sdkUserAgent . '/' . $this->sdkVersion); } else{ $this->client = new Guzzle('https://' . $this->apiEndpoint . '/' . $this->apiVersion . '/'); - $this->client->setDefaultOption('auth', array ($this->apiUser, $this->apiKey)); - $this->client->setDefaultOption('exceptions', false); - $this->client->setUserAgent($this->sdkUserAgent . '/' . $this->sdkVersion); } + + $this->client->setDefaultOption('auth', array ($this->apiUser, $this->apiKey)); + $this->client->setDefaultOption('exceptions', true); + $this->client->setUserAgent($this->sdkUserAgent . '/' . $this->sdkVersion); $request = $this->client->put($endpointUrl, $queryString); $response = $request->send(); $httpResponeCode = $response->getStatusCode(); @@ -141,6 +157,13 @@ class HttpBroker{ $result->$key = $value; } } + elseif($httpStatusCode == 401){ + throw new InvalidCredentials("Your credentials are incorrect."); + } + else{ + throw new GenericHTTPError("A generic HTTP Error has occurred! Check your network connection and try again."); + return false; + } $result->http_response_code = $httpResponeCode; return $result; } diff --git a/src/Mailgun/Logs/Logs.php b/src/Mailgun/Logs/Logs.php new file mode 100644 index 0000000..0e2b9a5 --- /dev/null +++ b/src/Mailgun/Logs/Logs.php @@ -0,0 +1,24 @@ +httpBroker = $httpBroker; + $this->endpointUrl = $this->httpBroker->returnWorkingDomain() . "/log"; + } + + public function getLogs($limit, $skip){ + $response = $this->httpBroker->getRequest($this->endpointUrl, array($limit, $skip)); + return $response; + } +} \ No newline at end of file diff --git a/src/Mailgun/MailgunClient.php b/src/Mailgun/MailgunClient.php index ac775fa..68413d6 100644 --- a/src/Mailgun/MailgunClient.php +++ b/src/Mailgun/MailgunClient.php @@ -5,6 +5,10 @@ namespace Mailgun; use Mailgun\Connection\HttpBroker; use Mailgun\Unsubscribes\Unsubscribes; use Mailgun\Messages\Messages; +use Mailgun\Complaints\Complaints; +use Mailgun\Bounces\Bounces; +use Mailgun\Stats\Stats; +use Mailgun\Logs\Logs; use Mailgun\Connection\Exceptions\NoDomainsConfigured; @@ -19,37 +23,8 @@ class MailgunClient{ public function __construct($apiKey, $domain, $debug = false){ $this->httpBroker = new HttpBroker($apiKey, $domain, $debug); - $this->validateCredentials(); } - public function validateCredentials(){ - $url = "domains"; - - $response = $this->httpBroker->getRequest($url); - - $httpStatusCode = $response->http_response_code; - - if($httpStatusCode == 200){ - foreach ($response as $key => $value){ - $object->$key = $value; - } - if($object->total_count > 0){ - return true; - } - else{ - throw new NoDomainsConfigured("You don't have any domains on your account."); - return false; - } - } - elseif($httpStatusCode == 401){ - throw new InvalidCredentials("Your credentials are incorrect."); - } - else{ - throw new GenericHTTPError("A generic HTTP Error has occurred! Check your network connection and try again."); - return false; - } - } - //Factory Methods for Class Creation from MailgunClient public function Messages(){ return new Messages($this->httpBroker); @@ -57,7 +32,18 @@ class MailgunClient{ public function Unsubscribes(){ return new Unsubscribes($this->httpBroker); } - + public function Complaints(){ + return new Complaints($this->httpBroker); + } + public function Bounces(){ + return new Bounces($this->httpBroker); + } + public function Stats(){ + return new Stats($this->httpBroker); + } + public function Logs(){ + return new Logs($this->httpBroker); + } } ?> \ No newline at end of file diff --git a/src/Mailgun/Stats/Stats.php b/src/Mailgun/Stats/Stats.php new file mode 100644 index 0000000..561c5cd --- /dev/null +++ b/src/Mailgun/Stats/Stats.php @@ -0,0 +1,32 @@ +httpBroker = $httpBroker; + $this->statsEndpointUrl = $this->httpBroker->returnWorkingDomain() . "/stats"; + $this->tagEndpointUrl = $this->httpBroker->returnWorkingDomain() . "/tags"; + } + + public function deleteTag($tag){ + $requestUrl = $this->tagEndpointUrl . "/" . urlencode($tag); + $response = $this->httpBroker->deleteRequest($requestUrl); + return $response; + } + + public function getStats($limit, $skip){ + $response = $this->httpBroker->getRequest($this->statsEndpointUrl, array($limit, $skip, $event, $start-date)); + return $response; + } +} \ No newline at end of file diff --git a/src/Mailgun/Unsubscribes/Unsubscribes.php b/src/Mailgun/Unsubscribes/Unsubscribes.php index 1245d58..b9d6f88 100644 --- a/src/Mailgun/Unsubscribes/Unsubscribes.php +++ b/src/Mailgun/Unsubscribes/Unsubscribes.php @@ -33,12 +33,12 @@ class Unsubscribes{ return $response; } - public function getAddress($unsubAddress){ + public function getUnsubscribe($unsubAddress){ $requestUrl = $this->endpointUrl . "/" . urlencode($unsubAddress); $response = $this->httpBroker->getRequest($requestUrl); return $response; } - public function getAddresses($limit, $skip){ + public function getUnsubscribes($limit, $skip){ $response = $this->httpBroker->getRequest($this->endpointUrl, array($limit, $skip)); return $response; } diff --git a/tests/Mailgun/Tests/Bounces/BouncesTest.php b/tests/Mailgun/Tests/Bounces/BouncesTest.php new file mode 100644 index 0000000..3b80272 --- /dev/null +++ b/tests/Mailgun/Tests/Bounces/BouncesTest.php @@ -0,0 +1,40 @@ +client = new MailgunClientTest("My-Super-Awesome-API-Key", "samples.mailgun.org", false); + + } + public function testAddAddress(){ + $client = $this->client->Bounces(); + $response = $client->addAddress("test@samples.mailgun.org", 550, "This bounced!"); + $httpCode = $response->http_response_code; + $this->assertEquals(200, $httpCode); + } + public function testDeleteAddress(){ + $client = $this->client->Bounces(); + $response = $client->deleteAddress("test@samples.mailgun.org"); + $httpCode = $response->http_response_code; + $this->assertEquals(200, $httpCode); + } + public function testGetAddress(){ + $client = $this->client->Bounces(); + $response = $client->getBounce("test@samples.mailgun.org"); + $httpCode = $response->http_response_code; + $this->assertEquals(200, $httpCode); + } + public function testGetAddresses(){ + $client = $this->client->Bounces(); + $response = $client->getBounces("1", "30"); + $httpCode = $response->http_response_code; + $this->assertEquals(200, $httpCode); + } + +} \ No newline at end of file diff --git a/tests/Mailgun/Tests/Complaints/ComplaintsTest.php b/tests/Mailgun/Tests/Complaints/ComplaintsTest.php new file mode 100644 index 0000000..b8ac768 --- /dev/null +++ b/tests/Mailgun/Tests/Complaints/ComplaintsTest.php @@ -0,0 +1,40 @@ +client = new MailgunClientTest("My-Super-Awesome-API-Key", "samples.mailgun.org", false); + + } + public function testAddAddress(){ + $client = $this->client->Complaints(); + $response = $client->addAddress("test@samples.mailgun.org"); + $httpCode = $response->http_response_code; + $this->assertEquals(200, $httpCode); + } + public function testDeleteAddress(){ + $client = $this->client->Complaints(); + $response = $client->deleteAddress("test@samples.mailgun.org"); + $httpCode = $response->http_response_code; + $this->assertEquals(200, $httpCode); + } + public function testGetAddress(){ + $client = $this->client->Complaints(); + $response = $client->getComplaint("test@samples.mailgun.org"); + $httpCode = $response->http_response_code; + $this->assertEquals(200, $httpCode); + } + public function testGetAddresses(){ + $client = $this->client->Complaints(); + $response = $client->getComplaints("1", "30"); + $httpCode = $response->http_response_code; + $this->assertEquals(200, $httpCode); + } + +} \ No newline at end of file diff --git a/tests/Mailgun/Tests/Connection/ConnectionTest.php b/tests/Mailgun/Tests/Connection/ConnectionTest.php index 4c5e2d9..f43269c 100644 --- a/tests/Mailgun/Tests/Connection/ConnectionTest.php +++ b/tests/Mailgun/Tests/Connection/ConnectionTest.php @@ -8,11 +8,9 @@ class ConnectionTest extends \Mailgun\Tests\MailgunTestCase{ private $client; public function setUp(){ - $this->client = new MailgunClientTest("My-Super-Awesome-API-Key", "samples.mailgun.org", false); } - public function testNewClientConnection(){ - $result = $this->client->validateCredentials(); - $this->assertTrue($result); + public function testNewClientInstantiation(){ + $this->client = new MailgunClientTest("My-Super-Awesome-API-Key", "samples.mailgun.org", false); } } diff --git a/tests/Mailgun/Tests/Connection/TestBroker.php b/tests/Mailgun/Tests/Connection/TestBroker.php index fef4770..5f88204 100644 --- a/tests/Mailgun/Tests/Connection/TestBroker.php +++ b/tests/Mailgun/Tests/Connection/TestBroker.php @@ -41,6 +41,26 @@ class TestBroker extends HttpBroker{ } $result->http_response_code = $httpResponseCode; } + elseif(preg_match("/\/complaints$/", $endpointUrl)){ + $httpResponseCode = "200"; + //$jsonResponseData = json_encode('{"message": "Address has been added to the unsubscribes table","address": "ev@mailgun.net"}'); + if($httpResponseCode === 200){ + foreach($jsonResponseData as $key => $value){ + $result->$key = $value; + } + } + $result->http_response_code = $httpResponseCode; + } + elseif(preg_match("/\/bounces$/", $endpointUrl)){ + $httpResponseCode = "200"; + //$jsonResponseData = json_encode('{"message": "Address has been added to the unsubscribes table","address": "ev@mailgun.net"}'); + if($httpResponseCode === 200){ + foreach($jsonResponseData as $key => $value){ + $result->$key = $value; + } + } + $result->http_response_code = $httpResponseCode; + } else{ } @@ -69,7 +89,42 @@ class TestBroker extends HttpBroker{ } elseif(preg_match("/\/unsubscribes/", $endpointUrl)){ $httpResponseCode = "200"; - $jsonResponseData = json_encode('{"total_count": 4,"items": [{"created_at": "Thu, 15 Mar 2012 08:35:02 GMT","tag": "*","id": "4f3b954a6addaa3e196735a2","address":"ev@mailgun.net"},{"created_at": "Thu, 15 Mar 2012 08:35:02 GMT","tag": "tag1","id": "4f3b954a6addaa3e1967359f","address":ev@mailgun.net"},{"created_at": "Wed, 01 Feb 2012 08:09:45 GMT","tag": "Testing Tag","id": "4f28f3494d532a3a823d0d9f","address": "alex@mailgun.net"},{"created_at": "Wed, 01 Feb 2012 08:09:38 GMT","tag": "*","id": "4f28f1024d532a3a823d0d68","address": "alex@mailgun.net"}]}'); + if($httpResponseCode === 200){ + foreach($jsonResponseData as $key => $value){ + $result->$key = $value; + } + } + $result->http_response_code = $httpResponseCode; + } + elseif(preg_match("/\/complaints/", $endpointUrl)){ + $httpResponseCode = "200"; + if($httpResponseCode === 200){ + foreach($jsonResponseData as $key => $value){ + $result->$key = $value; + } + } + $result->http_response_code = $httpResponseCode; + } + elseif(preg_match("/\/bounces/", $endpointUrl)){ + $httpResponseCode = "200"; + if($httpResponseCode === 200){ + foreach($jsonResponseData as $key => $value){ + $result->$key = $value; + } + } + $result->http_response_code = $httpResponseCode; + } + elseif(preg_match("/\/stats/", $endpointUrl)){ + $httpResponseCode = "200"; + if($httpResponseCode === 200){ + foreach($jsonResponseData as $key => $value){ + $result->$key = $value; + } + } + $result->http_response_code = $httpResponseCode; + } + elseif(preg_match("/\/log/", $endpointUrl)){ + $httpResponseCode = "200"; if($httpResponseCode === 200){ foreach($jsonResponseData as $key => $value){ $result->$key = $value; @@ -100,6 +155,36 @@ class TestBroker extends HttpBroker{ } $result->http_response_code = $httpResponseCode; } + elseif(preg_match("/\/complaints\//", $endpointUrl)){ + $httpResponseCode = "200"; + $jsonResponseData = json_encode('{"message": "Unsubscribe event has been removed","address": "ev@mailgun.net"}'); + if($httpResponseCode === 200){ + foreach($jsonResponseData as $key => $value){ + $result->$key = $value; + } + } + $result->http_response_code = $httpResponseCode; + } + elseif(preg_match("/\/bounces\//", $endpointUrl)){ + $httpResponseCode = "200"; + $jsonResponseData = json_encode('{"message": "Unsubscribe event has been removed","address": "ev@mailgun.net"}'); + if($httpResponseCode === 200){ + foreach($jsonResponseData as $key => $value){ + $result->$key = $value; + } + } + $result->http_response_code = $httpResponseCode; + } + elseif(preg_match("/\/tags\//", $endpointUrl)){ + $httpResponseCode = "200"; + $jsonResponseData = json_encode('{"message": "Unsubscribe event has been removed","address": "ev@mailgun.net"}'); + if($httpResponseCode === 200){ + foreach($jsonResponseData as $key => $value){ + $result->$key = $value; + } + } + $result->http_response_code = $httpResponseCode; + } return $result; } public function putRequest($endpointUrl, $queryString){ diff --git a/tests/Mailgun/Tests/Logs/LogsTest.php b/tests/Mailgun/Tests/Logs/LogsTest.php new file mode 100644 index 0000000..b7b1299 --- /dev/null +++ b/tests/Mailgun/Tests/Logs/LogsTest.php @@ -0,0 +1,22 @@ +client = new MailgunClientTest("My-Super-Awesome-API-Key", "samples.mailgun.org", false); + + } + public function testGetLogs(){ + $client = $this->client->Logs(); + $response = $client->getLogs("1", "30"); + $httpCode = $response->http_response_code; + $this->assertEquals(200, $httpCode); + } + +} \ No newline at end of file diff --git a/tests/Mailgun/Tests/MailgunClientTest.php b/tests/Mailgun/Tests/MailgunClientTest.php index 60895e0..1a5694f 100644 --- a/tests/Mailgun/Tests/MailgunClientTest.php +++ b/tests/Mailgun/Tests/MailgunClientTest.php @@ -12,7 +12,7 @@ class MailgunClientTest extends MailgunClient public function __construct($apiKey, $domain, $debug = false){ $this->httpBroker = new TestBroker($apiKey, $domain, $debug); - $this->validateCredentials(); + return true; } } diff --git a/tests/Mailgun/Tests/Stats/Stats.php b/tests/Mailgun/Tests/Stats/Stats.php new file mode 100644 index 0000000..ed64b9f --- /dev/null +++ b/tests/Mailgun/Tests/Stats/Stats.php @@ -0,0 +1,28 @@ +client = new MailgunClientTest("My-Super-Awesome-API-Key", "samples.mailgun.org", false); + + } + public function testDeleteTag(){ + $client = $this->client->Stats(); + $response = $client->deleteTag("My-Tag"); + $httpCode = $response->http_response_code; + $this->assertEquals(200, $httpCode); + } + public function testGetStats(){ + $client = $this->client->Stats(); + $response = $client->getStats("1", "30", "Sent", "10/10/10"); + $httpCode = $response->http_response_code; + $this->assertEquals(200, $httpCode); + } + +} \ No newline at end of file diff --git a/tests/Mailgun/Tests/Unsubscribes/UnsubscribeTest.php b/tests/Mailgun/Tests/Unsubscribes/UnsubscribeTest.php index 439417c..f8b56f0 100644 --- a/tests/Mailgun/Tests/Unsubscribes/UnsubscribeTest.php +++ b/tests/Mailgun/Tests/Unsubscribes/UnsubscribeTest.php @@ -13,26 +13,26 @@ class UnsubscribeTest extends \Mailgun\Tests\MailgunTestCase{ } public function testAddAddress(){ - $unsub = $this->client->Unsubscribes(); - $response = $unsub->addAddress("test@samples.mailgun.org"); + $client = $this->client->Unsubscribes(); + $response = $client->addAddress("test@samples.mailgun.org"); $httpCode = $response->http_response_code; $this->assertEquals(200, $httpCode); } public function testDeleteAddress(){ - $unsub = $this->client->Unsubscribes(); - $response = $unsub->deleteAddress("test@samples.mailgun.org"); + $client = $this->client->Unsubscribes(); + $response = $client->deleteAddress("test@samples.mailgun.org"); $httpCode = $response->http_response_code; $this->assertEquals(200, $httpCode); } public function testGetAddress(){ - $unsub = $this->client->Unsubscribes(); - $response = $unsub->getAddress("test@samples.mailgun.org"); + $client = $this->client->Unsubscribes(); + $response = $client->getUnsubscribe("test@samples.mailgun.org"); $httpCode = $response->http_response_code; $this->assertEquals(200, $httpCode); } public function testGetAddresses(){ - $unsub = $this->client->Unsubscribes(); - $response = $unsub->getAddresses("1", "30"); + $client = $this->client->Unsubscribes(); + $response = $client->getUnsubscribes("1", "30"); $httpCode = $response->http_response_code; $this->assertEquals(200, $httpCode); }