summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/unit/ClientTest.php75
-rw-r--r--test/unit/ConfigTest.php24
-rw-r--r--test/unit/bootstrap.php17
3 files changed, 116 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
diff --git a/test/unit/ConfigTest.php b/test/unit/ConfigTest.php
new file mode 100644
index 0000000..569d915
--- /dev/null
+++ b/test/unit/ConfigTest.php
@@ -0,0 +1,24 @@
+<?php
+class ConfigTest_Config extends PHPUnit_Framework_TestCase
+{
+ protected
+ $config,
+ $base_path,
+ $config_filename;
+
+ protected function setUp()
+ {
+ $this->base_path = dirname("..");
+ $this->config_filename = '.env_sample';
+ $this->config = new SendGrid\Config($this->base_path, $this->config_filename);
+ }
+
+ public function testInitialization()
+ {
+ $this->assertEquals($api_key = getenv('SENDGRID_API_KEY'), "<your_sendgrid_api_key>");
+ $this->assertEquals($api_key = getenv('HOST'), "<base_url_for_live_api_host>");
+ $this->assertEquals($api_key = getenv('MOCK_HOST'), "<base_url_for_remote_mocked_api_host>");
+ $this->assertEquals($api_key = getenv('LOCAL_HOST'), "<base_url_for_local_mocked_api_host>");
+ }
+}
+?> \ No newline at end of file
diff --git a/test/unit/bootstrap.php b/test/unit/bootstrap.php
new file mode 100644
index 0000000..af10b46
--- /dev/null
+++ b/test/unit/bootstrap.php
@@ -0,0 +1,17 @@
+<?php
+include(dirname(dirname(__FILE__)) . '/../lib/client.php');
+include(dirname(dirname(__FILE__)) . '/../lib/config.php');
+require __DIR__ . '/../../vendor/autoload.php';
+function autoload_tests($class)
+{
+ if (strpos($class, 'PHPHTTPClientTest_') !== 0) {
+ return;
+ }
+ $class = substr($class, 13);
+ $file = str_replace('_', '/', $class);
+ if (file_exists(dirname(__FILE__) . '/' . $file . '.php')) {
+ require_once(dirname(__FILE__) . '/' . $file . '.php');
+ }
+}
+spl_autoload_register('autoload_tests');
+?> \ No newline at end of file