From edea513edf382ee1b4f91809cafa45a3cf02a4a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20=C5=A0tancl?= Date: Tue, 23 Apr 2019 17:56:54 +0200 Subject: [PATCH] Test jobs' handle() (#40) * Test jobs' handle() * Switch (fix) method names --- tests/TenantDatabaseManagerTest.php | 40 +++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/tests/TenantDatabaseManagerTest.php b/tests/TenantDatabaseManagerTest.php index 3c16378f..8d25913a 100644 --- a/tests/TenantDatabaseManagerTest.php +++ b/tests/TenantDatabaseManagerTest.php @@ -21,6 +21,22 @@ class TenantDatabaseManagerTest extends TestCase $this->assertFileNotExists(database_path($db_name)); } + /** @test */ + public function sqlite_database_can_be_created_and_deleted_using_queued_commands() + { + $db_name = 'testdatabase' . $this->randomString(10) . '.sqlite'; + + $databaseManagers = config('tenancy.database_managers'); + $job = new QueuedTenantDatabaseCreator(app($databaseManagers['sqlite']), $db_name); + $job->handle(); + + $this->assertFileExists(database_path($db_name)); + + $job = new QueuedTenantDatabaseDeleter(app($databaseManagers['sqlite']), $db_name); + $job->handle(); + $this->assertFileNotExists(database_path($db_name)); + } + /** @test */ public function mysql_database_can_be_created_and_deleted() { @@ -38,6 +54,30 @@ class TenantDatabaseManagerTest extends TestCase $this->assertEmpty(DB::select("SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '$db_name'")); } + /** @test */ + public function mysql_database_can_be_created_and_deleted_using_queued_commands() + { + if (! $this->isTravis()) { + $this->markTestSkipped('As to not bloat your MySQL instance with test databases, this test is not run by default.'); + } + + config()->set('database.default', 'mysql'); + + $db_name = 'testdatabase' . $this->randomString(10); + + $databaseManagers = config('tenancy.database_managers'); + $job = new QueuedTenantDatabaseCreator(app($databaseManagers['mysql']), $db_name); + $job->handle(); + + $this->assertNotEmpty(DB::select("SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '$db_name'")); + + $databaseManagers = config('tenancy.database_managers'); + $job = new QueuedTenantDatabaseDeleter(app($databaseManagers['mysql']), $db_name); + $job->handle(); + + $this->assertEmpty(DB::select("SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '$db_name'")); + } + /** @test */ public function database_creation_can_be_queued() {