diff options
-rw-r--r-- | composer.json | 7 | ||||
-rw-r--r-- | src/Core/Communicator.php | 13 | ||||
-rw-r--r-- | tests/General/ConstructorTest.php | 36 |
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); + } + } } } |