summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHannes Kindströmmer <hannes@kindstrommer.se>2017-03-20 15:55:54 +0100
committerHannes Kindströmmer <hannes@kindstrommer.se>2017-03-20 15:55:54 +0100
commit461b0e87833c6fcfb630c6320409ca75bcad1d5f (patch)
treeafed68fe111ae3261b89a4b4150462dd1c1b7082
parent39273c0c62edb5f3a5081cc6bbc19bf165a9b71b (diff)
parent4e2e609828b7b7a9875be7b94b7dcdd853eab9a4 (diff)
downloadip1-php-sdk-0.2.0-beta.zip
ip1-php-sdk-0.2.0-beta.tar.gz
ip1-php-sdk-0.2.0-beta.tar.bz2
Merge branch 'release/0.2.0-beta'0.2.0-beta
-rw-r--r--composer.json7
-rw-r--r--src/Core/Communicator.php13
-rw-r--r--tests/General/ConstructorTest.php36
3 files changed, 38 insertions, 18 deletions
diff --git a/composer.json b/composer.json
index da0e070..ae4ae00 100644
--- a/composer.json
+++ b/composer.json
@@ -13,7 +13,8 @@
],
"autoload": {
"psr-4": {
- "IP1\\RESTClient\\": "src"
+ "IP1\\RESTClient\\": "src",
+ "IP1\\RESTClient\\Test\\": "tests"
}
},
"require" : {
@@ -21,8 +22,6 @@
},
"require-dev": {
"squizlabs/php_codesniffer": "2.*",
- "phpmd/phpmd": "^2.6",
- "phpunit/phpunit": "^6.0",
- "phpdocumentor/phpdocumentor": "2.*"
+ "phpunit/phpunit": "^6.0"
}
}
diff --git a/src/Core/Communicator.php b/src/Core/Communicator.php
index 5fee54a..1417e4c 100644
--- a/src/Core/Communicator.php
+++ b/src/Core/Communicator.php
@@ -12,6 +12,7 @@
namespace IP1\RESTClient\Core;
use IP1\RESTClient\Recipient\RecipientFactory;
+use IP1\RESTClient\Recipient\ProcessedBlacklistEntry;
use IP1\RESTClient\Core\ProcessedComponentInterface;
use IP1\RESTClient\Core\UpdatableComponentInterface;
use IP1\RESTClient\Core\ProcessableComponentInterface;
@@ -63,6 +64,11 @@ class Communicator
case "IP1\RESTClient\SMS\OutGoingSMS":
$response = $this->sendRequest("api/sms/send", "POST", json_encode($component));
return RecipientFactory::createProcessedOutGoingSMSFromJSONArray($response);
+ case "IP1\RESTClient\Recipient\BlacklistEntry":
+ $response = $this->sendRequest("api/blacklist", "POST", json_encode($component));
+ $stdResponse = json_decode($response);
+ $created = new \DateTime($stdResponse->Created);
+ return new ProcessedBlacklistEntry($stdResponse->Phone, $stdResponse->ID, $created);
default:
throw new \InvalidArgumentException("Given JsonSerializable not supported.");
}
@@ -88,6 +94,13 @@ class Communicator
case "IP1\RESTClient\Recipient\ProcessedMembership":
$response = $this->sendRequest("api/memberships/".$component->getID(), "DELETE");
return RecipientFactory::createProcessedMembershipFromJSON($response);
+
+ case "IP1\RESTClient\Recipient\ProcessedBlacklistEntry":
+ $response = $this->sendRequest("api/blacklist/".$component->getID(), "DELETE");
+ $stdResponse = json_decode($response);
+ $created = new \DateTime($stdResponse->Created);
+ return new ProcessedBlacklistEntry($stdResponse->Phone, $stdResponse->ID, $created);
+
default:
throw new \InvalidArgumentException("Given JsonSerializable not supported.");
}
diff --git a/tests/General/ConstructorTest.php b/tests/General/ConstructorTest.php
index 8825f1c..dcc4142 100644
--- a/tests/General/ConstructorTest.php
+++ b/tests/General/ConstructorTest.php
@@ -20,27 +20,35 @@ use IP1\RESTClient\Recipient\ProcessedMembership;
use IP1\RESTClient\Recipient\ProcessedGroup;
use IP1\RESTClient\SMS\ProcessedOutGoingSMS;
use PHPUnit\Framework\TestCase;
+use \DateTime;
class ConstructorTest extends TestCase
{
- /**
- * @covers Contact::__construct
- * @covers ProcessedContact::__construct
- */
+
public function testRecipientConstructors()
{
- new Contact("Jack", "12025550161");
- new ProcessedContact("Jack", "12025550161", 13, "Sparrow", "Captain", "Black Pearl Co.", "", "");
- new Group("Crew men", "#ffffff");
- new ProcessedGroup("Crew men", "#ffffff", 12, new DateTime(), new DateTime());
- new Membership(12, 22);
- new ProcessedMembership(12, 22, 43, new DateTime());
- new ProcessedMembership(1, 2, 3, new DateTime());
+ $this->requireAll("src");
$this->addToAssertionCount(1);
}
- public function testSMSConstructors()
+ /**
+ * Scan the api path, recursively including all PHP files
+ *
+ * @param string $dir
+ * @param int $depth (optional)
+ * @author mrashad10 at github.com
+ * @author pwenzel at github.com
+ * @link https://gist.github.com/mrashad10/807456e12a6811f644ca
+ */
+ protected function requireAll($dir, $depth = 0)
{
- new ProcessedOutGoingSMS("Jack", "Why is the rum gone?", "12025550109", 1, new DateTime(), new DateTime(), 22);
- $this->addToAssertionCount(1);
+ // require all php files
+ $scan = glob("$dir" . DIRECTORY_SEPARATOR . "*");
+ foreach ($scan as $path) {
+ if (preg_match('/\.php$/', $path)) {
+ require_once $path;
+ } elseif (is_dir($path)) {
+ $this->requireAll($path, $depth+1);
+ }
+ }
}
}