From 0d61d68432cad37380683bf085ecee82a62a9cb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=8Dtalo?= Date: Wed, 27 Jan 2021 15:59:12 -0300 Subject: [PATCH] adiciona ApiFilesFake --- src/Facades/ApiFiles.php | 6 +++ tests/Fakes/ApiFIlesFake.php | 72 ++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 tests/Fakes/ApiFIlesFake.php diff --git a/src/Facades/ApiFiles.php b/src/Facades/ApiFiles.php index 3f0ba4f..fba0b7b 100644 --- a/src/Facades/ApiFiles.php +++ b/src/Facades/ApiFiles.php @@ -3,6 +3,7 @@ namespace Sysvale\ApiFiles\Facades; use Illuminate\Support\Facades\Facade; +use Tests\Fakes\ApiFilesFake; class ApiFiles extends Facade { @@ -10,4 +11,9 @@ protected static function getFacadeAccessor() { return 'apifiles'; } + + public static function fake() + { + static::swap(new ApiFilesFake); + } } diff --git a/tests/Fakes/ApiFIlesFake.php b/tests/Fakes/ApiFIlesFake.php new file mode 100644 index 0000000..0c2f02e --- /dev/null +++ b/tests/Fakes/ApiFIlesFake.php @@ -0,0 +1,72 @@ +content = $content; + } + public function getStatusCode() + { + return 200; + } + public function getBody() + { + return $this; + } + public function getContents() + { + return $this->content; + } + }; + } + + public static function send($path) + { + self::$sent_files[] = [ + 'path' => $path, + 'content' => file_get_contents($path) + ]; + + return (object) [ + 'statusCode' => 200, + 'id' => array_key_last(self::$sent_files) . '-api_file.fake' + ]; + } + + public static function assertSent($filename, $callback = null) + { + $files = array_column(self::$sent_files, 'path'); + + PHPUnit::assertContains($filename, $files, "The file $filename was not sent to ApiFiles"); + + if ($callback instanceof Closure) { + foreach (self::$sent_files as $file) { + if ($callback($file)) { + return true; + } + } + } + + throw new ExpectationFailedException("The file $filename was not sent to ApiFiles"); + } +}