mailgun-php/tests/Mailgun/Tests/Mock/Connection/TestBroker.php

72 lines
2.4 KiB
PHP
Raw Normal View History

2013-07-25 03:25:24 +04:00
<?php
namespace Mailgun\Tests\Mock\Connection;
2013-07-25 03:25:24 +04:00
use Mailgun\Connection\Exceptions\GenericHTTPError;
use Mailgun\Connection\Exceptions\InvalidCredentials;
use Mailgun\Connection\Exceptions\MissingEndpoint;
use Mailgun\Connection\RestClient;
use Mailgun\Messages\Exceptions\MissingRequiredMIMEParameters;
2013-07-25 03:25:24 +04:00
2014-05-14 17:06:05 +04:00
class TestBroker extends RestClient
{
private $apiKey;
protected $apiEndpoint;
public function __construct($apiKey = null, $apiHost = "api.mailgun.net", $apiVersion = "v3")
2014-05-14 17:06:05 +04:00
{
$this->apiKey = $apiKey;
$this->apiEndpoint = $apiHost;
2014-05-14 17:06:05 +04:00
}
public function post($endpointUrl, $postData = array(), $files = array())
{
return $this->testResponseHandler($endpointUrl, $httpResponseCode = 200);
2014-05-14 17:06:05 +04:00
}
public function get($endpointUrl, $queryString = array())
{
return $this->testResponseHandler($endpointUrl, $httpResponseCode = 200);
2014-05-14 17:06:05 +04:00
}
public function delete($endpointUrl)
{
return $this->testResponseHandler($endpointUrl, $httpResponseCode = 200);
2014-05-14 17:06:05 +04:00
}
public function put($endpointUrl, $queryString)
{
return $this->testResponseHandler($endpointUrl, $httpResponseCode = 200);
2014-05-14 17:06:05 +04:00
}
public function testResponseHandler($endpointUrl, $httpResponseCode = 200)
2014-05-14 17:06:05 +04:00
{
if ($httpResponseCode === 200) {
$result = new \stdClass();
$result->http_response_body = new \stdClass();
$jsonResponseData = json_decode('{"message": "Some JSON Response Data", "id": "1234"}');
foreach ($jsonResponseData as $key => $value) {
$result->http_response_body->$key = $value;
}
} elseif ($httpResponseCode == 400) {
2014-05-14 17:06:05 +04:00
throw new MissingRequiredMIMEParameters(EXCEPTION_MISSING_REQUIRED_MIME_PARAMETERS);
} elseif ($httpResponseCode == 401) {
2014-05-14 17:06:05 +04:00
throw new InvalidCredentials(EXCEPTION_INVALID_CREDENTIALS);
} elseif ($httpResponseCode == 401) {
2014-05-14 17:06:05 +04:00
throw new GenericHTTPError(EXCEPTION_INVALID_CREDENTIALS);
} elseif ($httpResponseCode == 404) {
2014-05-14 17:06:05 +04:00
throw new MissingEndpoint(EXCEPTION_MISSING_ENDPOINT);
} else {
throw new GenericHTTPError(EXCEPTION_GENERIC_HTTP_ERROR);
return false;
}
$result->http_response_code = $httpResponseCode;
$result->http_endpoint_url = $endpointUrl;
return $result;
}
2013-07-26 02:42:06 +04:00
2013-07-25 03:25:24 +04:00
}