diff --git a/.gitignore b/.gitignore index 4fa6faa..dd53d67 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ build/ vendor/ .vscode/ composer.lock -.phpunit.result.cache \ No newline at end of file +.idea +.phpunit.result.cache diff --git a/.travis.yml b/.travis.yml index cd49215..3927bf6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,5 @@ language: php php: - - '7.3' - - '7.4' - '8.0' - '8.1' diff --git a/README.md b/README.md index aa6c9c9..6e7c9c8 100644 --- a/README.md +++ b/README.md @@ -439,4 +439,10 @@ $payment_schedule = new TomorrowIdeas\Plaid\Entities\PaymnentSchedule( ## Errors -All unsuccessfull (non 2xx) responses will throw a `PlaidRequestException`. The full response object is available via the `getResponse()` method. \ No newline at end of file +All unsuccessfull (non 2xx) responses will throw a `PlaidRequestException`. The full response object is available via the `getResponse()` method. + +## Contributing + +### Testing + +```./vendor/bin/phpunit tests``` \ No newline at end of file diff --git a/composer.json b/composer.json index ee61ade..7b24cb0 100644 --- a/composer.json +++ b/composer.json @@ -8,10 +8,10 @@ ], "type": "library", "require": { - "php": ">=7.3|>=8.0", + "php": ">=8.0", "ext-json": "*", "ext-curl": "*", - "nimbly/shuttle": "^0.4" + "nimbly/shuttle": "^1.0" }, "autoload": { "psr-4": { diff --git a/src/Plaid.php b/src/Plaid.php index 73d1fe8..6a03764 100644 --- a/src/Plaid.php +++ b/src/Plaid.php @@ -2,9 +2,9 @@ namespace TomorrowIdeas\Plaid; +use Nimbly\Shuttle\Shuttle; use Psr\Http\Client\ClientInterface; use ReflectionClass; -use Shuttle\Shuttle; use TomorrowIdeas\Plaid\Resources\AbstractResource; use UnexpectedValueException; diff --git a/src/Resources/AbstractResource.php b/src/Resources/AbstractResource.php index 07d5e3a..7446265 100644 --- a/src/Resources/AbstractResource.php +++ b/src/Resources/AbstractResource.php @@ -2,7 +2,7 @@ namespace TomorrowIdeas\Plaid\Resources; -use Capsule\Request; +use Nimbly\Capsule\Request; use Psr\Http\Client\ClientInterface; use Psr\Http\Message\RequestInterface; use Psr\Http\Message\ResponseInterface; diff --git a/tests/AbstractResourceTest.php b/tests/AbstractResourceTest.php index ec9bfbb..99be1f5 100644 --- a/tests/AbstractResourceTest.php +++ b/tests/AbstractResourceTest.php @@ -2,11 +2,11 @@ namespace TomorrowIdeas\Plaid\Tests; -use Capsule\Request; -use Capsule\Response; -use Capsule\ResponseStatus; -use Shuttle\Handler\MockHandler; -use Shuttle\Shuttle; +use Nimbly\Capsule\Request; +use Nimbly\Capsule\Response; +use Nimbly\Capsule\ResponseStatus; +use Nimbly\Shuttle\Handler\MockHandler; +use Nimbly\Shuttle\Shuttle; use TomorrowIdeas\Plaid\Plaid; use TomorrowIdeas\Plaid\PlaidRequestException; use UnexpectedValueException; @@ -39,19 +39,17 @@ public function test_build_request_with_no_params_sends_empty_object_in_body(): public function test_request_exception_passes_through_plaid_display_message(): void { - $httpClient = new Shuttle([ - 'handler' => new MockHandler([ - function(Request $request) { - + $httpClient = new Shuttle( + new MockHandler([ + function (Request $request) { $requestParams = [ "display_message" => "DISPLAY MESSAGE", ]; return new Response(300, \json_encode($requestParams)); - } ]) - ]); + ); $plaid = new Plaid("client_id", "secret"); $plaid->setHttpClient($httpClient); @@ -68,19 +66,17 @@ function(Request $request) { public function test_request_exception_passes_through_http_status_code(): void { - $httpClient = new Shuttle([ - 'handler' => new MockHandler([ - function(Request $request) { - + $httpClient = new Shuttle( + new MockHandler([ + function (Request $request) { $requestParams = [ "display_message" => "DISPLAY MESSAGE", ]; return new Response(300, \json_encode($requestParams)); - } ]) - ]); + ); $plaid = new Plaid("client_id", "secret"); $plaid->setHttpClient($httpClient); @@ -97,10 +93,9 @@ function(Request $request) { public function test_1xx_responses_throw_exception(): void { - $httpClient = new Shuttle([ - 'handler' => new MockHandler([ - function(Request $request) { - + $httpClient = new Shuttle( + new MockHandler([ + function (Request $request) { $requestParams = [ "method" => $request->getMethod(), "version" => $request->getHeaderLine("Plaid-Version"), @@ -112,10 +107,9 @@ function(Request $request) { ]; return new Response(100, \json_encode($requestParams)); - } ]) - ]); + ); $plaid = new Plaid("client_id", "secret"); $plaid->setHttpClient($httpClient); @@ -126,8 +120,8 @@ function(Request $request) { public function test_3xx_responses_and_above_throw_exception(): void { - $httpClient = new Shuttle([ - 'handler' => new MockHandler([ + $httpClient = new Shuttle( + new MockHandler([ function(Request $request) { $requestParams = [ @@ -138,7 +132,7 @@ function(Request $request) { } ]) - ]); + ); $plaid = new Plaid("client_id", "secret"); $plaid->setHttpClient($httpClient); @@ -149,11 +143,11 @@ function(Request $request) { public function test_invalid_json_when_parsing_response(): void { - $httpClient = new Shuttle([ - 'handler' => new MockHandler([ + $httpClient = new Shuttle( + new MockHandler([ new Response(ResponseStatus::OK, "invalid_json") ]) - ]); + ); $plaid = new Plaid("client_id", "secret"); $plaid->setHttpClient($httpClient); diff --git a/tests/PlaidClientTest.php b/tests/PlaidClientTest.php index 9890ada..5bb774d 100644 --- a/tests/PlaidClientTest.php +++ b/tests/PlaidClientTest.php @@ -2,8 +2,8 @@ namespace TomorrowIdeas\Plaid\Tests; +use Nimbly\Shuttle\Shuttle; use ReflectionClass; -use Shuttle\Shuttle; use TomorrowIdeas\Plaid\Plaid; use UnexpectedValueException; diff --git a/tests/PlaidRequestExceptionTest.php b/tests/PlaidRequestExceptionTest.php index 79303a6..fb30d95 100644 --- a/tests/PlaidRequestExceptionTest.php +++ b/tests/PlaidRequestExceptionTest.php @@ -2,7 +2,7 @@ namespace TomorrowIdeas\Plaid\Tests; -use Capsule\Response; +use Nimbly\Capsule\Response; use TomorrowIdeas\Plaid\PlaidRequestException; /** diff --git a/tests/ReportsTest.php b/tests/ReportsTest.php index 3bb79d6..c6b5518 100644 --- a/tests/ReportsTest.php +++ b/tests/ReportsTest.php @@ -2,9 +2,9 @@ namespace TomorrowIdeas\Plaid\Tests; -use Capsule\Response; -use Shuttle\Handler\MockHandler; -use Shuttle\Shuttle; +use Nimbly\Capsule\Response; +use Nimbly\Shuttle\Handler\MockHandler; +use Nimbly\Shuttle\Shuttle; use TomorrowIdeas\Plaid\Plaid; use TomorrowIdeas\Plaid\PlaidRequestException; @@ -90,11 +90,11 @@ public function test_get_asset_report_pdf(): void public function test_get_asset_report_pdf_throws_on_fail(): void { - $httpClient = new Shuttle([ - 'handler' => new MockHandler([ + $httpClient = new Shuttle( + new MockHandler([ new Response(400, "Bad Request") ]) - ]); + ); $plaid = new Plaid("client_id", "secret"); $plaid->setHttpClient($httpClient); diff --git a/tests/TestCase.php b/tests/TestCase.php index 2003681..5c29f64 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -2,21 +2,20 @@ namespace TomorrowIdeas\Plaid\Tests; -use Capsule\Request; -use Capsule\Response; +use Nimbly\Capsule\Request; +use Nimbly\Capsule\Response; +use Nimbly\Shuttle\Handler\MockHandler; +use Nimbly\Shuttle\Shuttle; use PHPUnit\Framework\TestCase as PHPUnitTestCase; -use Shuttle\Handler\MockHandler; -use Shuttle\Shuttle; use TomorrowIdeas\Plaid\Plaid; abstract class TestCase extends PHPUnitTestCase { protected function getPlaidClient(string $environment = "production"): Plaid { - $httpClient = new Shuttle([ - 'handler' => new MockHandler([ - function(Request $request) { - + $httpClient = new Shuttle( + new MockHandler([ + function (Request $request) { $requestParams = [ "method" => $request->getMethod(), "version" => $request->getHeaderLine("Plaid-Version"), @@ -28,10 +27,9 @@ function(Request $request) { ]; return new Response(200, \json_encode($requestParams)); - } ]) - ]); + ); $plaid = new Plaid("client_id", "secret", $environment); $plaid->setHttpClient($httpClient);