From 5887bb2c74e8247e60dcbfe109406f6e9ec7731e Mon Sep 17 00:00:00 2001 From: c-harris Date: Tue, 18 Feb 2020 17:24:07 +1000 Subject: [PATCH 1/3] Split the regression tests out for ease of adding more, later --- .../Regression/Bgoak}/Models/Address.php | 2 +- .../Regression/Bgoak}/Models/City.php | 2 +- .../Regression/Bgoak}/Models/Person.php | 2 +- .../Bgoak/Tests}/Functional/ExpandTest.php | 10 +-- .../Functional/IronicSerialiserTest.php | 10 +-- .../Unit}/MetadataKeyMethodNamesTraitTest.php | 4 +- .../Bgoak/Tests/Unit/RelationTest.php | 23 ++----- ...02_09_133748_create_bgoak_models_table.php | 0 tests/Regression/TestCase.php | 63 +++++++++++++++++++ tests/Regression/TestServiceProvider.php | 32 ++++++++++ 10 files changed, 116 insertions(+), 32 deletions(-) rename {testsorchestra => tests/Regression/Bgoak}/Models/Address.php (92%) rename {testsorchestra => tests/Regression/Bgoak}/Models/City.php (92%) rename {testsorchestra => tests/Regression/Bgoak}/Models/Person.php (92%) rename {testsorchestra => tests/Regression/Bgoak/Tests}/Functional/ExpandTest.php (92%) rename {testsorchestra => tests/Regression/Bgoak/Tests}/Functional/IronicSerialiserTest.php (91%) rename {testsorchestra/Unit/Models => tests/Regression/Bgoak/Tests/Unit}/MetadataKeyMethodNamesTraitTest.php (95%) rename testsorchestra/Unit/BgOakRelationTest.php => tests/Regression/Bgoak/Tests/Unit/RelationTest.php (79%) rename {testsorchestra => tests/Regression/Bgoak}/database/migrations/2020_02_09_133748_create_bgoak_models_table.php (100%) create mode 100644 tests/Regression/TestCase.php create mode 100644 tests/Regression/TestServiceProvider.php diff --git a/testsorchestra/Models/Address.php b/tests/Regression/Bgoak/Models/Address.php similarity index 92% rename from testsorchestra/Models/Address.php rename to tests/Regression/Bgoak/Models/Address.php index f051c60c..8766f5a1 100644 --- a/testsorchestra/Models/Address.php +++ b/tests/Regression/Bgoak/Models/Address.php @@ -5,7 +5,7 @@ * Date: 9/02/20 * Time: 1:29 PM. */ -namespace AlgoWeb\PODataLaravel\Orchestra\Tests\Models; +namespace Tests\Regression\AlgoWeb\PODataLaravel\Bgoak\Models; use Illuminate\Database\Eloquent\Model; diff --git a/testsorchestra/Models/City.php b/tests/Regression/Bgoak/Models/City.php similarity index 92% rename from testsorchestra/Models/City.php rename to tests/Regression/Bgoak/Models/City.php index 42570418..e3b17d1e 100644 --- a/testsorchestra/Models/City.php +++ b/tests/Regression/Bgoak/Models/City.php @@ -5,7 +5,7 @@ * Date: 9/02/20 * Time: 1:29 PM. */ -namespace AlgoWeb\PODataLaravel\Orchestra\Tests\Models; +namespace Tests\Regression\AlgoWeb\PODataLaravel\Bgoak\Models; use Illuminate\Database\Eloquent\Model; diff --git a/testsorchestra/Models/Person.php b/tests/Regression/Bgoak/Models/Person.php similarity index 92% rename from testsorchestra/Models/Person.php rename to tests/Regression/Bgoak/Models/Person.php index f5794a5f..e22d622e 100644 --- a/testsorchestra/Models/Person.php +++ b/tests/Regression/Bgoak/Models/Person.php @@ -5,7 +5,7 @@ * Date: 9/02/20 * Time: 1:28 PM. */ -namespace AlgoWeb\PODataLaravel\Orchestra\Tests\Models; +namespace Tests\Regression\AlgoWeb\PODataLaravel\Bgoak\Models; use Illuminate\Database\Eloquent\Model; diff --git a/testsorchestra/Functional/ExpandTest.php b/tests/Regression/Bgoak/Tests/Functional/ExpandTest.php similarity index 92% rename from testsorchestra/Functional/ExpandTest.php rename to tests/Regression/Bgoak/Tests/Functional/ExpandTest.php index 23a3152f..af115894 100644 --- a/testsorchestra/Functional/ExpandTest.php +++ b/tests/Regression/Bgoak/Tests/Functional/ExpandTest.php @@ -5,12 +5,12 @@ * Date: 9/02/20 * Time: 2:38 PM. */ -namespace AlgoWeb\PODataLaravel\Orchestra\Tests\Functional; +namespace Tests\Regression\AlgoWeb\PODataLaravel\Bgoak\Tests\Functional; -use AlgoWeb\PODataLaravel\Orchestra\Tests\Models\Address; -use AlgoWeb\PODataLaravel\Orchestra\Tests\Models\City; -use AlgoWeb\PODataLaravel\Orchestra\Tests\Models\Person; -use AlgoWeb\PODataLaravel\Orchestra\Tests\TestCase; +use Tests\Regression\AlgoWeb\PODataLaravel\Bgoak\Models\Address; +use Tests\Regression\AlgoWeb\PODataLaravel\Bgoak\Models\City; +use Tests\Regression\AlgoWeb\PODataLaravel\Bgoak\Models\Person; +use Tests\Regression\AlgoWeb\PODataLaravel\TestCase; use Illuminate\Foundation\Testing\DatabaseMigrations; class ExpandTest extends TestCase diff --git a/testsorchestra/Functional/IronicSerialiserTest.php b/tests/Regression/Bgoak/Tests/Functional/IronicSerialiserTest.php similarity index 91% rename from testsorchestra/Functional/IronicSerialiserTest.php rename to tests/Regression/Bgoak/Tests/Functional/IronicSerialiserTest.php index e691c718..a9379af4 100644 --- a/testsorchestra/Functional/IronicSerialiserTest.php +++ b/tests/Regression/Bgoak/Tests/Functional/IronicSerialiserTest.php @@ -5,12 +5,12 @@ * Date: 9/02/20 * Time: 6:42 PM. */ -namespace AlgoWeb\PODataLaravel\Orchestra\Tests\Functional; +namespace Tests\Regression\AlgoWeb\PODataLaravel\Bgoak\Tests\Functional; -use AlgoWeb\PODataLaravel\Orchestra\Tests\Models\Address; -use AlgoWeb\PODataLaravel\Orchestra\Tests\Models\City; -use AlgoWeb\PODataLaravel\Orchestra\Tests\Models\Person; -use AlgoWeb\PODataLaravel\Orchestra\Tests\TestCase; +use Tests\Regression\AlgoWeb\PODataLaravel\Bgoak\Models\Address; +use Tests\Regression\AlgoWeb\PODataLaravel\Bgoak\Models\City; +use Tests\Regression\AlgoWeb\PODataLaravel\Bgoak\Models\Person; +use Tests\Regression\AlgoWeb\PODataLaravel\TestCase; use AlgoWeb\PODataLaravel\Serialisers\IronicSerialiser; use Illuminate\Foundation\Testing\DatabaseMigrations; use Illuminate\Http\Request; diff --git a/testsorchestra/Unit/Models/MetadataKeyMethodNamesTraitTest.php b/tests/Regression/Bgoak/Tests/Unit/MetadataKeyMethodNamesTraitTest.php similarity index 95% rename from testsorchestra/Unit/Models/MetadataKeyMethodNamesTraitTest.php rename to tests/Regression/Bgoak/Tests/Unit/MetadataKeyMethodNamesTraitTest.php index e4afe472..13404b57 100644 --- a/testsorchestra/Unit/Models/MetadataKeyMethodNamesTraitTest.php +++ b/tests/Regression/Bgoak/Tests/Unit/MetadataKeyMethodNamesTraitTest.php @@ -5,9 +5,9 @@ * Date: 14/02/20 * Time: 1:52 AM. */ -namespace AlgoWeb\PODataLaravel\Orchestra\Tests\Unit\Models; +namespace Tests\Regression\AlgoWeb\PODataLaravel\Bgoak\Unit\Models; -use AlgoWeb\PODataLaravel\Orchestra\Tests\Models\Address; +use Tests\Regression\AlgoWeb\PODataLaravel\Bgoak\Models\Address; use AlgoWeb\PODataLaravel\Orchestra\Tests\Models\OrchestraTestModel; use AlgoWeb\PODataLaravel\Orchestra\Tests\Models\RelationTestDummyModel; use AlgoWeb\PODataLaravel\Orchestra\Tests\TestCase; diff --git a/testsorchestra/Unit/BgOakRelationTest.php b/tests/Regression/Bgoak/Tests/Unit/RelationTest.php similarity index 79% rename from testsorchestra/Unit/BgOakRelationTest.php rename to tests/Regression/Bgoak/Tests/Unit/RelationTest.php index edcab1e9..4a9f4440 100644 --- a/testsorchestra/Unit/BgOakRelationTest.php +++ b/tests/Regression/Bgoak/Tests/Unit/RelationTest.php @@ -1,19 +1,10 @@ getProperty('namespace'); + $prop->setAccessible(true); + $regretionName = explode('\\', get_class($this))[4]; + $prop->setValue($app, __NAMESPACE__ . '\\' . $regretionName); + $app['config']->set('testRegressionName', $regretionName); + // Setup default database to use sqlite :memory: + $app['config']->set('database.default', 'testbench'); + $app['config']->set('database.connections.testbench', [ + 'driver' => 'sqlite', + 'database' => ':memory:', + 'prefix' => '', + ]); + } + + public function setUp() : void + { + parent::setUp(); + //$this->loadMigrationsFrom(realpath(__DIR__ . '/database/migrations')); + date_default_timezone_set('UTC'); + } + + protected function assertSeeShim($result, $expected) + { + if (method_exists($result, 'assertSee')) { + $result->assertSee($expected); + } else { + $this->assertContains($expected, $result->response->getOriginalContent()); + } + } +} \ No newline at end of file diff --git a/tests/Regression/TestServiceProvider.php b/tests/Regression/TestServiceProvider.php new file mode 100644 index 00000000..aa21be42 --- /dev/null +++ b/tests/Regression/TestServiceProvider.php @@ -0,0 +1,32 @@ +loadMigrationsFrom( + __DIR__ . DIRECTORY_SEPARATOR . config('testRegressionName') .'/database/migrations' + ); + } + + protected function loadMigrationsFrom($path) + { + $migrator = $this->app->make('migrator'); + $migrationRepository = $migrator->getRepository(); + $migrationRepository->setSource('testbench'); + $migrationRepository->createRepository(); + $migrator->run($path); + } +} From 3ad6d9ec3c32e0a648cfe70bd2866e1d72090c8f Mon Sep 17 00:00:00 2001 From: Alex Goodwin Date: Tue, 18 Feb 2020 17:42:32 +1000 Subject: [PATCH 2/3] Stop StyleCI complaining --- tests/Regression/TestCase.php | 6 +++--- tests/Regression/TestServiceProvider.php | 8 +++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/tests/Regression/TestCase.php b/tests/Regression/TestCase.php index e3448fe0..81fa2e9d 100644 --- a/tests/Regression/TestCase.php +++ b/tests/Regression/TestCase.php @@ -33,9 +33,9 @@ protected function getEnvironmentSetUp($app) $reflec = new \ReflectionClass($app); $prop = $reflec->getProperty('namespace'); $prop->setAccessible(true); - $regretionName = explode('\\', get_class($this))[4]; - $prop->setValue($app, __NAMESPACE__ . '\\' . $regretionName); - $app['config']->set('testRegressionName', $regretionName); + $regressionName = explode('\\', get_class($this))[4]; + $prop->setValue($app, __NAMESPACE__ . '\\' . $regressionName); + $app['config']->set('testRegressionName', $regressionName); // Setup default database to use sqlite :memory: $app['config']->set('database.default', 'testbench'); $app['config']->set('database.connections.testbench', [ diff --git a/tests/Regression/TestServiceProvider.php b/tests/Regression/TestServiceProvider.php index aa21be42..446ab882 100644 --- a/tests/Regression/TestServiceProvider.php +++ b/tests/Regression/TestServiceProvider.php @@ -3,7 +3,6 @@ namespace Tests\Regression\AlgoWeb\PODataLaravel; - use Illuminate\Support\ServiceProvider as BaseServiceProvider; class TestServiceProvider extends BaseServiceProvider @@ -14,6 +13,9 @@ public function register() { } + /** + * @throws \Illuminate\Contracts\Container\BindingResolutionException + */ public function boot() { $this->loadMigrationsFrom( @@ -21,6 +23,10 @@ public function boot() ); } + /** + * @param array|string $path + * @throws \Illuminate\Contracts\Container\BindingResolutionException + */ protected function loadMigrationsFrom($path) { $migrator = $this->app->make('migrator'); From 4cf6866799aa5831ba2b9b74ffff9321d50bd93d Mon Sep 17 00:00:00 2001 From: Alex Goodwin Date: Tue, 18 Feb 2020 17:45:49 +1000 Subject: [PATCH 3/3] Stop Style CI complaining, redux --- tests/Regression/TestCase.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/Regression/TestCase.php b/tests/Regression/TestCase.php index 81fa2e9d..ee0abc34 100644 --- a/tests/Regression/TestCase.php +++ b/tests/Regression/TestCase.php @@ -1,9 +1,7 @@ assertContains($expected, $result->response->getOriginalContent()); } } -} \ No newline at end of file +}