瀏覽代碼

Added support for PHP 7.4 and updated dependencies to the latest versions
Also see https://github.com/sebastianbergmann/phpunit/pull/3765/commits/015ac15d7f3b1d4da8d40d18ccbf81339314bba0

Andrey Helldar 5 年之前
父節點
當前提交
6146b5d3ca

+ 1 - 1
.travis.yml

@@ -17,7 +17,7 @@ matrix:
     - php: 7.4
     - php: 7.4
       env: SETUP=lowest
-    - php: 7.4
+    - php: 7.3
       env: SETUP=lint
 
 cache:

+ 11 - 10
composer.json

@@ -17,23 +17,24 @@
     "require": {
         "php": ">=7.2.0",
         "fzaninotto/faker": "^1.8",
-        "illuminate/routing": "^5.7|^6.0",
-        "illuminate/support": "^5.7|^6.0",
-        "illuminate/console": "^5.7|^6.0",
+        "illuminate/console": "^5.7|^6.0|^7.0",
+        "illuminate/routing": "^5.7|^6.0|^7.0",
+        "illuminate/support": "^5.7|^6.0|^7.0",
+        "league/flysystem": "^1.0",
         "mpociot/documentarian": "^0.3.0",
         "mpociot/reflection-docblock": "^1.0.1",
+        "nunomaduro/collision": "^3.0",
         "ramsey/uuid": "^3.8",
-        "symfony/var-exporter": "^4.0",
-        "league/flysystem": "^1.0",
-        "nunomaduro/collision": "^3.0"
+        "symfony/var-exporter": "^4.0|^5.0"
     },
     "require-dev": {
-        "orchestra/testbench": "^3.7.0 || ^4.0",
-        "phpunit/phpunit": "^7.5.0",
         "dingo/api": "^2.3.0",
-        "mockery/mockery": "^1.2.0",
+        "dms/phpunit-arraysubset-asserts": "^0.1.0",
         "league/fractal": "^0.17.0",
-        "phpstan/phpstan": "^0.11.15"
+        "mockery/mockery": "^1.2.0",
+        "orchestra/testbench": "^3.7|^4.0",
+        "phpstan/phpstan": "^0.11.15",
+        "phpunit/phpunit": "^8.0"
     },
     "suggest": {
         "league/fractal": "Required for transformers support"

+ 1 - 1
src/Extracting/Generator.php

@@ -51,7 +51,7 @@ class Generator
      */
     public function processRoute(Route $route, array $routeRules = [])
     {
-        list($controllerName, $methodName) = Utils::getRouteClassAndMethodNames($route->getAction());
+        [$controllerName, $methodName] = Utils::getRouteClassAndMethodNames($route->getAction());
         $controller = new ReflectionClass($controllerName);
         $method = $controller->getMethod($methodName);
 

+ 2 - 2
src/Extracting/Strategies/Responses/UseTransformerTags.php

@@ -125,9 +125,9 @@ class UseTransformerTags extends Strategy
             $type = $modelTag->getContent();
         } else {
             $parameter = Arr::first($transformerMethod->getParameters());
-            if ($parameter->hasType() && ! $parameter->getType()->isBuiltin() && class_exists((string) $parameter->getType())) {
+            if ($parameter->hasType() && ! $parameter->getType()->isBuiltin() && class_exists($parameter->getType()->getName())) {
                 // Ladies and gentlemen, we have a type!
-                $type = (string) $parameter->getType();
+                $type = $parameter->getType()->getName();
             }
         }
 

+ 13 - 13
tests/GenerateDocumentationTest.php

@@ -65,8 +65,8 @@ class GenerateDocumentationTest extends TestCase
         config(['apidoc.routes.0.match.prefixes' => ['api/*']]);
         $output = $this->artisan('apidoc:generate');
 
-        $this->assertContains('Skipping route: [GET] api/closure', $output);
-        $this->assertContains('Processed route: [GET] api/test', $output);
+        $this->assertStringContainsString('Skipping route: [GET] api/closure', $output);
+        $this->assertStringContainsString('Processed route: [GET] api/test', $output);
     }
 
     /** @test */
@@ -85,8 +85,8 @@ class GenerateDocumentationTest extends TestCase
         config(['apidoc.routes.0.match.versions' => ['v1']]);
         $output = $this->artisan('apidoc:generate');
 
-        $this->assertContains('Skipping route: [GET] closure', $output);
-        $this->assertContains('Processed route: [GET] test', $output);
+        $this->assertStringContainsString('Skipping route: [GET] closure', $output);
+        $this->assertStringContainsString('Processed route: [GET] test', $output);
     }
 
     /** @test */
@@ -97,8 +97,8 @@ class GenerateDocumentationTest extends TestCase
         config(['apidoc.routes.0.match.prefixes' => ['api/*']]);
         $output = $this->artisan('apidoc:generate');
 
-        $this->assertNotContains('Skipping route: [GET] api/array/test', $output);
-        $this->assertContains('Processed route: [GET] api/array/test', $output);
+        $this->assertStringNotContainsString('Skipping route: [GET] api/array/test', $output);
+        $this->assertStringContainsString('Processed route: [GET] api/array/test', $output);
     }
 
     /** @test */
@@ -110,8 +110,8 @@ class GenerateDocumentationTest extends TestCase
         config(['apidoc.routes.0.match.prefixes' => ['api/*']]);
         $output = $this->artisan('apidoc:generate');
 
-        $this->assertContains('Skipping route: [GET] api/skip', $output);
-        $this->assertContains('Processed route: [GET] api/test', $output);
+        $this->assertStringContainsString('Skipping route: [GET] api/skip', $output);
+        $this->assertStringContainsString('Processed route: [GET] api/test', $output);
     }
 
     /** @test */
@@ -122,8 +122,8 @@ class GenerateDocumentationTest extends TestCase
         config(['apidoc.routes.0.match.prefixes' => ['api/*']]);
         $output = $this->artisan('apidoc:generate');
 
-        $this->assertContains('Skipping route: [GET] api/non-existent', $output);
-        $this->assertContains('@responseFile i-do-not-exist.json does not exist', $output);
+        $this->assertStringContainsString('Skipping route: [GET] api/non-existent', $output);
+        $this->assertStringContainsString('@responseFile i-do-not-exist.json does not exist', $output);
     }
 
     /** @test */
@@ -392,7 +392,7 @@ class GenerateDocumentationTest extends TestCase
         $this->artisan('apidoc:generate');
 
         $generatedMarkdown = file_get_contents(__DIR__.'/../resources/docs/source/index.md');
-        $this->assertContains('Лорем ипсум долор сит амет', $generatedMarkdown);
+        $this->assertStringContainsString('Лорем ипсум долор сит амет', $generatedMarkdown);
     }
 
     /** @test */
@@ -437,7 +437,7 @@ class GenerateDocumentationTest extends TestCase
 
         $this->assertNull($thrownException);
         $generatedMarkdown = file_get_contents(__DIR__.'/../resources/docs/source/index.md');
-        $this->assertContains('Group A', $generatedMarkdown);
-        $this->assertContains('Group B', $generatedMarkdown);
+        $this->assertStringContainsString('Group A', $generatedMarkdown);
+        $this->assertStringContainsString('Group B', $generatedMarkdown);
     }
 }

+ 1 - 1
tests/TestHelpers.php

@@ -48,6 +48,6 @@ trait TestHelpers
     {
         $haystack = preg_replace('/\s/', '', $haystack);
         $needle = preg_replace('/\s/', '', $needle);
-        $this->assertContains($needle, $haystack);
+        $this->assertStringContainsString($needle, $haystack);
     }
 }

+ 3 - 0
tests/Unit/GeneratorPluginSystemTestCase.php

@@ -2,6 +2,7 @@
 
 namespace Mpociot\ApiDoc\Tests\Unit;
 
+use DMS\PHPUnitExtensions\ArraySubset\ArraySubsetAsserts;
 use Illuminate\Routing\Route;
 use Mpociot\ApiDoc\ApiDocGeneratorServiceProvider;
 use Mpociot\ApiDoc\Extracting\Generator;
@@ -13,6 +14,8 @@ use ReflectionMethod;
 
 class GeneratorPluginSystemTestCase extends LaravelGeneratorTest
 {
+    use ArraySubsetAsserts;
+
     /**
      * @var \Mpociot\ApiDoc\Extracting\Generator
      */

+ 3 - 0
tests/Unit/GeneratorTestCase.php

@@ -4,6 +4,7 @@
 
 namespace Mpociot\ApiDoc\Tests\Unit;
 
+use DMS\PHPUnitExtensions\ArraySubset\ArraySubsetAsserts;
 use Illuminate\Support\Arr;
 use Mpociot\ApiDoc\ApiDocGeneratorServiceProvider;
 use Mpociot\ApiDoc\Extracting\Generator;
@@ -14,6 +15,8 @@ use Orchestra\Testbench\TestCase;
 
 abstract class GeneratorTestCase extends TestCase
 {
+    use ArraySubsetAsserts;
+
     /**
      * @var \Mpociot\ApiDoc\Extracting\Generator
      */

+ 4 - 4
tests/Unit/RouteMatcherTest.php

@@ -37,7 +37,7 @@ class RouteMatcherTest extends TestCase
         $routes = $matcher->getRoutes();
         $this->assertCount(6, $routes);
         foreach ($routes as $route) {
-            $this->assertContains('domain1', $route['route']->getDomain());
+            $this->assertStringContainsString('domain1', $route['route']->getDomain());
         }
 
         $routeRules[0]['match']['domains'] = ['domain2.*'];
@@ -45,7 +45,7 @@ class RouteMatcherTest extends TestCase
         $routes = $matcher->getRoutes();
         $this->assertCount(6, $routes);
         foreach ($routes as $route) {
-            $this->assertContains('domain2', $route['route']->getDomain());
+            $this->assertStringContainsString('domain2', $route['route']->getDomain());
         }
     }
 
@@ -70,7 +70,7 @@ class RouteMatcherTest extends TestCase
         $routes = $matcher->getRoutes();
         $this->assertCount(6, $routes);
         foreach ($routes as $route) {
-            $this->assertContains('domain1', $route['route']->getDomain());
+            $this->assertStringContainsString('domain1', $route['route']->getDomain());
         }
 
         $routeRules[0]['match']['domains'] = ['domain2.*'];
@@ -78,7 +78,7 @@ class RouteMatcherTest extends TestCase
         $routes = $matcher->getRoutes();
         $this->assertCount(6, $routes);
         foreach ($routes as $route) {
-            $this->assertContains('domain2', $route['route']->getDomain());
+            $this->assertStringContainsString('domain2', $route['route']->getDomain());
         }
     }