|
@@ -2,6 +2,9 @@
|
|
|
|
|
|
namespace Mpociot\ApiDoc\Tests\Unit;
|
|
|
|
|
|
+use Illuminate\Contracts\Filesystem\FileNotFoundException;
|
|
|
+use Illuminate\Support\Facades\Config;
|
|
|
+use Illuminate\Support\Facades\Storage;
|
|
|
use Orchestra\Testbench\TestCase;
|
|
|
use Mpociot\ApiDoc\Tools\Generator;
|
|
|
use Mpociot\ApiDoc\ApiDocGeneratorServiceProvider;
|
|
@@ -268,14 +271,9 @@ abstract class GeneratorTestCase extends TestCase
|
|
|
/** @test */
|
|
|
public function can_parse_response_file_tag()
|
|
|
{
|
|
|
- // Create a file
|
|
|
- $fp = fopen(storage_path('test.json'), 'w');
|
|
|
- fwrite($fp, json_encode([
|
|
|
- 'id' => 5,
|
|
|
- 'name' => 'Jessica Jones',
|
|
|
- 'gender' => 'female',
|
|
|
- ]));
|
|
|
- fclose($fp);
|
|
|
+ // copy file to storage
|
|
|
+ $fixtureFileJson = file_get_contents(__DIR__.'/../Fixtures/response_test.json');
|
|
|
+ Storage::put('response_test.json', $fixtureFileJson);
|
|
|
|
|
|
$route = $this->createRoute('GET', '/responseFileTag', 'responseFileTag');
|
|
|
$parsed = $this->generator->processRoute($route);
|
|
@@ -284,10 +282,40 @@ abstract class GeneratorTestCase extends TestCase
|
|
|
$this->assertTrue($parsed['showresponse']);
|
|
|
$this->assertSame(
|
|
|
$parsed['response'],
|
|
|
- '{"id":5,"name":"Jessica Jones","gender":"female"}'
|
|
|
+ $fixtureFileJson
|
|
|
);
|
|
|
|
|
|
- unlink(storage_path('test.json'));
|
|
|
+ Storage::delete('response_test.json');
|
|
|
+ }
|
|
|
+
|
|
|
+ /** @test */
|
|
|
+ public function can_parse_response_file_tag_using_another_filesystem_driver()
|
|
|
+ {
|
|
|
+ // Mocking
|
|
|
+ Storage::fake('s3');
|
|
|
+
|
|
|
+ // copy file to storage
|
|
|
+ $fixtureFileJson = file_get_contents(__DIR__.'/../Fixtures/response_test.json');
|
|
|
+ Storage::disk('s3')->put('response_test.json', $fixtureFileJson);
|
|
|
+
|
|
|
+ $route = $this->createRoute('GET', '/responseFileTag', 'responseFileTag');
|
|
|
+
|
|
|
+ // Exception, because the file is not on Local storage
|
|
|
+ $this->expectException(FileNotFoundException::class);
|
|
|
+ $this->generator->processRoute($route);
|
|
|
+
|
|
|
+ // Now, set the default config to s3
|
|
|
+ Config::set('filesystems.default', 's3');
|
|
|
+ $parsed = $this->generator->processRoute($route);
|
|
|
+ $this->assertTrue(is_array($parsed));
|
|
|
+ $this->assertArrayHasKey('showresponse', $parsed);
|
|
|
+ $this->assertTrue($parsed['showresponse']);
|
|
|
+ $this->assertSame(
|
|
|
+ $parsed['response'],
|
|
|
+ $fixtureFileJson
|
|
|
+ );
|
|
|
+
|
|
|
+ Storage::disk('s3')->delete('response_test.json');
|
|
|
}
|
|
|
|
|
|
/** @test */
|