DingoGeneratorTest.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace Mpociot\ApiDoc\Tests;
  3. use Orchestra\Testbench\TestCase;
  4. use Mpociot\ApiDoc\Generators\DingoGenerator;
  5. use Dingo\Api\Provider\LaravelServiceProvider;
  6. use Mpociot\ApiDoc\Tests\Fixtures\TestController;
  7. use Mpociot\ApiDoc\ApiDocGeneratorServiceProvider;
  8. class DingoGeneratorTest extends TestCase
  9. {
  10. /**
  11. * @var \Mpociot\ApiDoc\Generators\DingoGenerator
  12. */
  13. protected $generator;
  14. protected function getPackageProviders($app)
  15. {
  16. return [
  17. LaravelServiceProvider::class,
  18. ApiDocGeneratorServiceProvider::class,
  19. ];
  20. }
  21. /**
  22. * Setup the test environment.
  23. */
  24. public function setUp()
  25. {
  26. parent::setUp();
  27. $this->generator = new DingoGenerator();
  28. }
  29. public function testCanParseMethodDescription()
  30. {
  31. $api = app('Dingo\Api\Routing\Router');
  32. $api->version('v1', function ($api) {
  33. $api->get('/api/test', TestController::class.'@parseMethodDescription');
  34. });
  35. $route = app('Dingo\Api\Routing\Router')->getRoutes()['v1']->getRoutes()[0];
  36. $parsed = $this->generator->processRoute($route);
  37. $this->assertSame('Example title.', $parsed['title']);
  38. $this->assertSame("This will be the long description.\nIt can also be multiple lines long.", $parsed['description']);
  39. }
  40. public function testCanParseRouteMethods()
  41. {
  42. $api = app('Dingo\Api\Routing\Router');
  43. $api->version('v1', function ($api) {
  44. $api->get('/get', TestController::class.'@dummy');
  45. $api->post('/post', TestController::class.'@dummy');
  46. $api->put('/put', TestController::class.'@dummy');
  47. $api->delete('/delete', TestController::class.'@dummy');
  48. });
  49. $route = app('Dingo\Api\Routing\Router')->getRoutes()['v1']->getRoutes()[0];
  50. $parsed = $this->generator->processRoute($route);
  51. $this->assertSame(['GET'], $parsed['methods']);
  52. $route = app('Dingo\Api\Routing\Router')->getRoutes()['v1']->getRoutes()[1];
  53. $parsed = $this->generator->processRoute($route);
  54. $this->assertSame(['POST'], $parsed['methods']);
  55. $route = app('Dingo\Api\Routing\Router')->getRoutes()['v1']->getRoutes()[2];
  56. $parsed = $this->generator->processRoute($route);
  57. $this->assertSame(['PUT'], $parsed['methods']);
  58. $route = app('Dingo\Api\Routing\Router')->getRoutes()['v1']->getRoutes()[3];
  59. $parsed = $this->generator->processRoute($route);
  60. $this->assertSame(['DELETE'], $parsed['methods']);
  61. }
  62. }