summaryrefslogtreecommitdiffstats
path: root/test/unit/ClientTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit/ClientTest.php')
-rw-r--r--test/unit/ClientTest.php75
1 files changed, 75 insertions, 0 deletions
diff --git a/test/unit/ClientTest.php b/test/unit/ClientTest.php
new file mode 100644
index 0000000..3781668
--- /dev/null
+++ b/test/unit/ClientTest.php
@@ -0,0 +1,75 @@
+<?php
+class MockClient extends SendGrid\Client
+{
+ public
+ $request_body,
+ $request_headers,
+ $url;
+
+ public function _make_request($method, $url, $request_body = null, $request_headers = null) {
+ $this->request_body = $request_body;
+ $this->request_headers = $request_headers;
+ $this->url = $url;
+ return $this;
+ }
+}
+
+class ClientTest_Client extends PHPUnit_Framework_TestCase
+{
+ protected
+ $client,
+ $host,
+ $headers;
+
+ protected function setUp()
+ {
+ $this->host = "https://localhost:4010";
+ $this->headers = array(
+ 'Content-Type: application/json',
+ 'Authorization: Bearer SG.XXXX'
+ );
+ $this->client = new MockClient($this->host, $this->headers, "3", null);
+ }
+
+ public function testInitialization()
+ {
+ $this->assertEquals($this->client->host, $this->host);
+ $this->assertEquals($this->client->request_headers, $this->headers);
+ $this->assertEquals($this->client->version, "3");
+ $this->assertEquals($this->client->url_path, []);
+ $this->assertEquals($this->client->methods, ['delete', 'get', 'patch', 'post', 'put']);
+ }
+
+ public function test_()
+ {
+ $client = $this->client->_("test");
+ $this->assertEquals($client->url_path, array("test"));
+ }
+
+ public function test__call()
+ {
+ $client = $this->client->get();
+ $this->assertEquals($client->url, "https://localhost:4010/v3/");
+
+ $query_params = array('limit' => 100, 'offset' => 0);
+ $client = $this->client->get(null, $query_params);
+ $this->assertEquals($client->url, "https://localhost:4010/v3/?limit=100&offset=0");
+
+ $request_body = array('name' => 'A New Hope');
+ $client = $this->client->get($request_body);
+ $this->assertEquals($client->request_body, $request_body);
+
+ $request_headers = array('X-Mock: 200');
+ $client = $this->client->get(null, null, $request_headers);
+ $this->assertEquals($client->request_headers, $request_headers);
+
+ $client = $this->client->version("4");
+ $this->assertEquals($client->version, "4");
+
+ $client = $this->client->path_to_endpoint();
+ $this->assertEquals($client->url_path, array("path_to_endpoint"));
+ $client = $client->one_more_segment();
+ $this->assertEquals($client->url_path, array("path_to_endpoint", "one_more_segment"));
+ }
+}
+?> \ No newline at end of file