Skip to content

Commit 7c6068e

Browse files
Merge pull request #1775 from specialtactics/feature/improve-laravel-8-testing
Improve laravel 8 testing (application stub & version detection)
2 parents 0f3394d + 6347855 commit 7c6068e

File tree

2 files changed

+222
-6
lines changed

2 files changed

+222
-6
lines changed

tests/ChecksLaravelVersionTrait.php

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,40 @@
22

33
namespace Dingo\Api\Tests;
44

5-
use Dingo\Api\Tests\Stubs\Application7Stub;
65
use Dingo\Api\Tests\Stubs\ApplicationStub;
6+
use Dingo\Api\Tests\Stubs\Application8Stub;
7+
use Dingo\Api\Tests\Stubs\Application7Stub;
78
use Dingo\Api\Tests\Stubs\Application6Stub;
89
use Dingo\Api\Tests\Stubs\Application58Stub;
910

1011
trait ChecksLaravelVersionTrait
1112
{
1213
public $installed_file_path = __DIR__.'/../vendor/composer/installed.json';
13-
public $current_release = '7.0';
14+
public $current_release = '8.0';
1415

1516
private function getFrameworkVersion()
1617
{
1718
$contents = file_get_contents($this->installed_file_path);
1819
$parsed_data = json_decode($contents, true);
19-
$just_laravel = array_filter($parsed_data, function ($val) {
20-
if ('laravel/framework' === $val['name'] || 'laravel/lumen-framework' === $val['name']) {
21-
return true;
20+
21+
// Changed array format in newer versions of composer (v2?)
22+
if (array_key_exists('packages', $parsed_data)) {
23+
$parsed_data = $parsed_data['packages'];
24+
}
25+
26+
// Find laravel/framework or lumen package
27+
$just_laravel = array_filter($parsed_data, function ($composerPackageData) {
28+
if (is_array($composerPackageData) && array_key_exists('name', $composerPackageData)) {
29+
if ('laravel/framework' === $composerPackageData['name'] || 'laravel/lumen-framework' === $composerPackageData['name']) {
30+
return true;
31+
}
2232
}
2333
});
34+
35+
if (empty($just_laravel)) {
36+
exit(PHP_EOL.'No Laravel version detected, please do a "composer require laravel/framework:x" prior to testing'.PHP_EOL);
37+
}
38+
2439
$laravelVersion = array_map(function ($val) {
2540
return $val['version'];
2641
}, array_values($just_laravel))[0];
@@ -39,7 +54,9 @@ private function getApplicationStub()
3954
$version = str_replace('v', '', $version);
4055

4156
// Return the version stub for the right version
42-
if (version_compare($version, '7.0.0', '>=')) {
57+
if (version_compare($version, '8.0.0', '>=')) {
58+
return new Application8Stub;
59+
} elseif (version_compare($version, '7.0.0', '>=')) {
4360
return new Application7Stub;
4461
} elseif (version_compare($version, '6.0.0', '>=')) {
4562
return new Application6Stub;

tests/Stubs/Application8Stub.php

Lines changed: 199 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
1+
<?php
2+
3+
namespace Dingo\Api\Tests\Stubs;
4+
5+
use Illuminate\Container\Container;
6+
use Illuminate\Contracts\Foundation\Application;
7+
8+
class Application8Stub extends Container implements Application
9+
{
10+
public function version()
11+
{
12+
return 'v1';
13+
}
14+
15+
public function basePath($path = '')
16+
{
17+
//
18+
}
19+
20+
public function bootstrapPath($path = '')
21+
{
22+
//
23+
}
24+
25+
public function configPath($path = '')
26+
{
27+
//
28+
}
29+
30+
public function databasePath($path = '')
31+
{
32+
//
33+
}
34+
35+
public function environmentPath()
36+
{
37+
//
38+
}
39+
40+
public function resourcePath($path = '')
41+
{
42+
//
43+
}
44+
45+
public function storagePath()
46+
{
47+
//
48+
}
49+
50+
public function environment(...$environments)
51+
{
52+
return 'testing';
53+
}
54+
55+
public function runningInConsole()
56+
{
57+
//
58+
}
59+
60+
public function runningUnitTests()
61+
{
62+
// TODO: Implement runningUnitTests() method.
63+
}
64+
65+
public function isDownForMaintenance()
66+
{
67+
return false;
68+
}
69+
70+
public function registerConfiguredProviders()
71+
{
72+
//
73+
}
74+
75+
public function register($provider, $options = [], $force = false)
76+
{
77+
//
78+
}
79+
80+
public function registerDeferredProvider($provider, $service = null)
81+
{
82+
//
83+
}
84+
85+
public function resolveProvider($provider)
86+
{
87+
//
88+
}
89+
90+
public function boot()
91+
{
92+
//
93+
}
94+
95+
public function booting($callback)
96+
{
97+
//
98+
}
99+
100+
public function booted($callback)
101+
{
102+
//
103+
}
104+
105+
public function bootstrapWith(array $bootstrappers)
106+
{
107+
//
108+
}
109+
110+
public function configurationIsCached()
111+
{
112+
//
113+
}
114+
115+
public function detectEnvironment(\Closure $callback)
116+
{
117+
//
118+
}
119+
120+
public function environmentFile()
121+
{
122+
//
123+
}
124+
125+
public function environmentFilePath()
126+
{
127+
//
128+
}
129+
130+
public function getCachedConfigPath()
131+
{
132+
//
133+
}
134+
135+
public function getCachedServicesPath()
136+
{
137+
//
138+
}
139+
140+
public function getCachedPackagesPath()
141+
{
142+
//
143+
}
144+
145+
public function getCachedRoutesPath()
146+
{
147+
//
148+
}
149+
150+
public function getLocale()
151+
{
152+
//
153+
}
154+
155+
public function getNamespace()
156+
{
157+
//
158+
}
159+
160+
public function getProviders($provider)
161+
{
162+
//
163+
}
164+
165+
public function hasBeenBootstrapped()
166+
{
167+
//
168+
}
169+
170+
public function loadDeferredProviders()
171+
{
172+
//
173+
}
174+
175+
public function loadEnvironmentFrom($file)
176+
{
177+
//
178+
}
179+
180+
public function routesAreCached()
181+
{
182+
//
183+
}
184+
185+
public function setLocale($locale)
186+
{
187+
//
188+
}
189+
190+
public function shouldSkipMiddleware()
191+
{
192+
//
193+
}
194+
195+
public function terminate()
196+
{
197+
//
198+
}
199+
}

0 commit comments

Comments
 (0)