GetFromLaravelAPITest.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. namespace Knuckles\Scribe\Tests\Strategies\UrlParameters;
  3. use Knuckles\Camel\Extraction\ExtractedEndpointData;
  4. use Knuckles\Scribe\Extracting\Strategies\UrlParameters\GetFromLaravelAPI;
  5. use Knuckles\Scribe\Tests\BaseLaravelTest;
  6. use Knuckles\Scribe\Tests\Fixtures\TestController;
  7. use Knuckles\Scribe\Tools\DocumentationConfig;
  8. use DMS\PHPUnitExtensions\ArraySubset\ArraySubsetAsserts;
  9. class GetFromLaravelAPITest extends BaseLaravelTest
  10. {
  11. use ArraySubsetAsserts;
  12. /** @test */
  13. public function can_fetch_from_url()
  14. {
  15. $endpoint = new class extends ExtractedEndpointData {
  16. public function __construct(array $parameters = [])
  17. {
  18. $this->uri = 'users/{id}';
  19. $this->method = new \ReflectionMethod(TestController::class, 'withInjectedModel');
  20. }
  21. };
  22. $strategy = new GetFromLaravelAPI(new DocumentationConfig([]));
  23. $results = $strategy($endpoint, []);
  24. $this->assertArraySubset([
  25. "name" => "id",
  26. "description" => "",
  27. "required" => true,
  28. "type" => "int",
  29. ], $results['id']);
  30. $this->assertIsInt($results['id']['example']);
  31. }
  32. }