summaryrefslogtreecommitdiffstats
path: root/test/unit/SparkPostTest.php
diff options
context:
space:
mode:
authornornholdj <nornholdj@gmail.com>2014-11-04 17:42:49 -0500
committernornholdj <nornholdj@gmail.com>2014-11-04 17:42:49 -0500
commit39f2699a7e7850397882a6d2ee3a8438a105b72d (patch)
treeca192a9ea0084b7f59807ff5fd3c262bb05ebb6d /test/unit/SparkPostTest.php
parent5d346d241fc0d0b565d7aa6ce0179a5da4c73dc0 (diff)
parent2a35edc5094276f9a9b1566bdb678386fae14d3d (diff)
downloadphp-sparkpost-39f2699a7e7850397882a6d2ee3a8438a105b72d.zip
php-sparkpost-39f2699a7e7850397882a6d2ee3a8438a105b72d.tar.gz
php-sparkpost-39f2699a7e7850397882a6d2ee3a8438a105b72d.tar.bz2
Merge branch 'feature/MA-946' into develop
Diffstat (limited to 'test/unit/SparkPostTest.php')
-rw-r--r--test/unit/SparkPostTest.php60
1 files changed, 60 insertions, 0 deletions
diff --git a/test/unit/SparkPostTest.php b/test/unit/SparkPostTest.php
new file mode 100644
index 0000000..1b86a8f
--- /dev/null
+++ b/test/unit/SparkPostTest.php
@@ -0,0 +1,60 @@
+<?php
+namespace SparkPost\Test;
+
+use MessageSystems\SparkPost;
+
+class SparkPostTest extends \PHPUnit_Framework_TestCase {
+
+ /**
+ * @desc Ensures that the configuration class is not instantiable.
+ */
+ public function testConstructorCannotBeCalled() {
+ $class = new \ReflectionClass('\MessageSystems\SparkPost');
+ $this->assertFalse($class->isInstantiable());
+ }
+
+ /**
+ * @desc Tests that an exception is thrown when a library tries to recieve the config and it has not yet been set.
+ * Since its a singleton this test must come before any setConfig tests.
+ * @expectedException Exception
+ * @expectedExceptionMessage No configuration has been provided
+ */
+ public function testGetConfigEmptyException() {
+ SparkPost::getConfig();
+ }
+
+ /**
+ * @desc Tests that the api key is set when setting the config
+ * @expectedException Exception
+ * @expectedExceptionMessage You must provide an API key
+ */
+ public function testSetConfigAPIKeyNotSetException() {
+ SparkPost::setConfig(['something'=>'other than an API Key']);
+ }
+
+ /**
+ * @desc Tests that the api key is set when setting the config and that its not empty
+ * @expectedException Exception
+ * @expectedExceptionMessage You must provide an API key
+ */
+ public function testSetConfigAPIKeyEmptyException() {
+ SparkPost::setConfig(['key'=>'']);
+ }
+
+ /**
+ * @desc Tests overridable values are set while invalid values are ignored
+ */
+ public function testSetConfigMultipleValuesAndGetConfig() {
+ SparkPost::setConfig(['key'=>'lala', 'version'=>'v8', 'port'=>1024, 'someOtherValue'=>'fakeValue']);
+
+ $testConfig = SparkPost::getConfig();
+ $this->assertEquals('lala', $testConfig['key']);
+ $this->assertEquals('v8', $testConfig['version']);
+ $this->assertEquals(1024, $testConfig['port']);
+ $this->assertNotContains('someOtherValue', array_keys($testConfig));
+ $this->assertEquals('https', $testConfig['protocol']);
+ $this->assertEquals('api.sparkpost.com', $testConfig['host']);
+ $this->assertEquals(true, $testConfig['strictSSL']);
+ }
+}
+?> \ No newline at end of file