diff options
author | nornholdj <nornholdj@gmail.com> | 2014-11-04 17:42:49 -0500 |
---|---|---|
committer | nornholdj <nornholdj@gmail.com> | 2014-11-04 17:42:49 -0500 |
commit | 39f2699a7e7850397882a6d2ee3a8438a105b72d (patch) | |
tree | ca192a9ea0084b7f59807ff5fd3c262bb05ebb6d /test/unit/SparkPostTest.php | |
parent | 5d346d241fc0d0b565d7aa6ce0179a5da4c73dc0 (diff) | |
parent | 2a35edc5094276f9a9b1566bdb678386fae14d3d (diff) | |
download | php-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.php | 60 |
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 |