summaryrefslogtreecommitdiffstats
path: root/test/unit/APIResourceTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit/APIResourceTest.php')
-rw-r--r--test/unit/APIResourceTest.php144
1 files changed, 17 insertions, 127 deletions
diff --git a/test/unit/APIResourceTest.php b/test/unit/APIResourceTest.php
index c9f83be..99d7c80 100644
--- a/test/unit/APIResourceTest.php
+++ b/test/unit/APIResourceTest.php
@@ -1,30 +1,18 @@
<?php
namespace SparkPost\Test;
-
use SparkPost\APIResource;
-use SparkPost\SparkPost;
-use Guzzle\Plugin\Mock\MockPlugin;
-use Guzzle\Http\Message\Response;
-
+use SparkPost\Test\TestUtils\ClassUtils;
+use Ivory\HttpAdapter\CurlHttpAdapter;
class APIResourceTest extends \PHPUnit_Framework_TestCase {
- private $client = null;
+ private static $utils;
+ private $adapterMock;
+ private $resource;
- /**
- * Allows access to private methods
- *
- * This is needed to mock the GuzzleHttp\Client responses
- *
- * @param string $name
- * @return ReflectionMethod
- */
- private static function getMethod($name) {
- $class = new \ReflectionClass('\SparkPost\APIResource');
- $method = $class->getMethod($name);
- $method->setAccessible(true);
- return $method;
- }
+ public static function setUpBeforeClass() {
+
+ }
/**
* (non-PHPdoc)
@@ -32,112 +20,14 @@ class APIResourceTest extends \PHPUnit_Framework_TestCase {
* @see PHPUnit_Framework_TestCase::setUp()
*/
public function setUp() {
- SparkPost::getHttpHeaders = function ($headers) {return ['what'=>'what']};
- APIResource::$endpoint = 'someValidEndpoint'; // when using APIResource directly an endpoint needs to be set.
- }
- //
- // /**
- // * @desc Ensures that the configuration class is not instantiable.
- // */
- // public function testConstructorCannotBeCalled() {
- // $class = new \ReflectionClass('\SparkPost\Transmission');
- // $this->assertFalse($class->isInstantiable());
- // }
- //
- // /**
- // * @desc tests happy path
- // */
- // public function testFetchWithGoodResponse() {
- // $mock = new MockPlugin();
- // $mock->addResponse(new Response(200, array(), '{"results":[{"test":"This is a test"}, {"test":"two"}]}'));
- // $this->client->addSubscriber($mock);
- // $this->assertEquals(array("results"=>array(array('test'=>'This is a test'), array('test'=>'two'))), APIResource::fetchResource());
- // }
- //
- // /**
- // * @desc tests happy path
- // */
- // public function testDeleteWithGoodResponse() {
- // $mock = new MockPlugin();
- // $mock->addResponse(new Response(200, array(), '{"results":[{"test":"This is a test"}]}'));
- // $this->client->addSubscriber($mock);
- //
- // $this->assertEquals(array("results"=>array(array('test'=>'This is a test'))), APIResource::deleteResource('someId'));
- // }
- //
- // /**
- // * @desc tests 404 bad response
- // * @expectedException Exception
- // * @expectedExceptionMessage The specified resource does not exist
- // */
- // public function testFetchWith404Response() {
- // $mock = new MockPlugin();
- // $mock->addResponse(new Response(404, array()));
- // $this->client->addSubscriber($mock);
- // APIResource::fetchResource('someId');
- // }
- //
- // /**
- // * @desc tests unknown bad response
- // * @expectedException Exception
- // * @expectedExceptionMessage Received bad response from SomeValidEndpoint API: 400
- // */
- // public function testFetchWithOtherBadResponse() {
- // $mock = new MockPlugin();
- // $mock->addResponse(new Response(400, array()));
- // $this->client->addSubscriber($mock);
- // APIResource::fetchResource('someId');
- // }
- //
- // /**
- // * @desc tests bad response
- // * @expectedException Exception
- // * @expectedExceptionMessageRegExp /Unable to contact SomeValidEndpoint API:.* /
- // */
- // public function testFetchForCatchAllException() {
- // $mock = new MockPlugin();
- // $mock->addResponse(new Response(500));
- // $this->client->addSubscriber($mock);
- // APIResource::fetchResource('someId');
- // }
- //
- // /**
- // * @desc tests happy path
- // */
- // public function testSuccessfulSend() {
- // $body = array("result"=>array("transmission_id"=>"11668787484950529"), "status"=>array("message"=> "ok","code"=> "1000"));
- // $mock = new MockPlugin();
- // $mock->addResponse(new Response(200, array(), json_encode($body)));
- // $this->client->addSubscriber($mock);
- //
- //
- // $this->assertEquals($body, APIResource::sendRequest(array('text'=>'awesome email')));
- // }
- //
- // /**
- // * @desc tests bad response
- // * @expectedException Exception
- // * @expectedExceptionMessage ["This is a fake error"]
- // */
- // public function testSendFor400Exception() {
- // $body = array('errors'=>array('This is a fake error'));
- // $mock = new MockPlugin();
- // $mock->addResponse(new Response(400, array(), json_encode($body)));
- // $this->client->addSubscriber($mock);
- // APIResource::sendRequest(array('text'=>'awesome email'));
- // }
- //
- //
- // /**
- // * @desc tests bad response
- // * @expectedException Exception
- // * @expectedExceptionMessageRegExp /Unable to contact SomeValidEndpoint API:.* /
- // */
- // public function testSendForCatchAllException() {
- // $mock = new MockPlugin();
- // $mock->addResponse(new Response(500));
- // $this->client->addSubscriber($mock);
- // APIResource::sendRequest(array('text'=>'awesome email'));
- // }
+ $this->adapterMock = $this->getMockBuilder('CurlHttpAdapter')->getMock();
+
+ $this->resource = new APIResource(new CurlHttpAdapter(), ['key'=>'a key']);
+ self::$utils = new ClassUtils($this->resource);
+ }
+
+ public function testConstructorSetsUpAdapterAndConfig() {
+ $this->assertEquals('Ivory\HttpAdapter\CurlHttpAdapter', get_class(self::$utils->getProperty($this->resource, 'httpAdapter')));
+ }
}