diff --git a/src/TenancyServiceProvider.php b/src/TenancyServiceProvider.php index 9491f46f..2300bee8 100644 --- a/src/TenancyServiceProvider.php +++ b/src/TenancyServiceProvider.php @@ -57,8 +57,8 @@ class TenancyServiceProvider extends ServiceProvider { $this->mergeConfigFrom(__DIR__ . '/assets/config.php', 'tenancy'); - $this->app->bind(StorageDriver::class, $this->app['config']['tenancy.storage_driver']); $this->app->bind(TenantModel::class, $this->app['config']['tenancy.tenant_model']); + $this->app->bind(StorageDriver::class, $this->app['config']['tenancy.storage_driver']); $this->app->bind(ServerConfigManager::class, $this->app['config']['tenancy.server.manager']); $this->app->singleton(DatabaseManager::class); $this->app->singleton(TenantManager::class, function ($app) { diff --git a/src/Tenant.php b/src/Tenant.php index 65d967a3..b7926841 100644 --- a/src/Tenant.php +++ b/src/Tenant.php @@ -3,6 +3,7 @@ namespace Stancl\Tenancy; use Illuminate\Database\Eloquent\Model; +use Stancl\Tenancy\Interfaces\TenantModel; class Tenant extends Model implements TenantModel { diff --git a/src/TenantManager.php b/src/TenantManager.php index b76a84a8..afa9e01e 100644 --- a/src/TenantManager.php +++ b/src/TenantManager.php @@ -320,4 +320,9 @@ class TenantManager return $this->tenant[(string) $attribute]; } + + public function getStorageDriver(): Interfaces\StorageDriver + { + return $this->storage; + } } diff --git a/tests/TenantStorageTest.php b/tests/TenantStorageTest.php index 5979bf57..f7751468 100644 --- a/tests/TenantStorageTest.php +++ b/tests/TenantStorageTest.php @@ -2,6 +2,9 @@ namespace Stancl\Tenancy\Tests; +use Stancl\Tenancy\StorageDrivers\DatabaseStorageDriver; +use Stancl\Tenancy\StorageDrivers\RedisStorageDriver; + class TenantStorageTest extends TestCase { /** @test */ @@ -109,8 +112,16 @@ class TenantStorageTest extends TestCase { $value = ['foo' => 'bar', 'abc' => 'xyz']; - dd(\Stancl\Tenancy\Tenant::find(tenant('uuid'))); - $this->assertSame($value, tenancy()->put($value)); } + + /** @test */ + public function correct_storage_driver_is_used() + { + if (config('tenancy.storage_driver') == DatabaseStorageDriver::class) { + $this->assertSame('DatabaseStorageDriver', class_basename(tenancy()->getStorageDriver())); + } elseif (config('tenancy.storage_driver') == RedisStorageDriver::class) { + $this->assertSame('RedisStorageDriver', class_basename(tenancy()->getStorageDriver())); + } + } } diff --git a/tests/TestCase.php b/tests/TestCase.php index 27373df1..da74d763 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -3,6 +3,7 @@ namespace Stancl\Tenancy\Tests; use Illuminate\Support\Facades\Redis; +use Illuminate\Support\Facades\Artisan; use Stancl\Tenancy\StorageDrivers\DatabaseStorageDriver; abstract class TestCase extends \Orchestra\Testbench\TestCase @@ -21,7 +22,7 @@ abstract class TestCase extends \Orchestra\Testbench\TestCase Redis::connection('tenancy')->flushdb(); Redis::connection('cache')->flushdb(); - Artisan::call('migrate'); + Artisan::call('migrate'); // todo load default migration if ($this->autoCreateTenant) { $this->createTenant();