diff --git a/src/StorageDrivers/Database/DatabaseStorageDriver.php b/src/StorageDrivers/Database/DatabaseStorageDriver.php index c61bf226..baebafa7 100644 --- a/src/StorageDrivers/Database/DatabaseStorageDriver.php +++ b/src/StorageDrivers/Database/DatabaseStorageDriver.php @@ -59,7 +59,7 @@ class DatabaseStorageDriver implements StorageDriver throw new TenantWithThisIdAlreadyExistsException($tenant->id); } - if (Domains::whereIn('domain', [$tenant->domains])->exists()) { + if (Domains::whereIn('domain', $tenant->domains)->exists()) { throw new DomainOccupiedByOtherTenantException(); } } diff --git a/src/Tenant.php b/src/Tenant.php index 0da28d08..f5595dce 100644 --- a/src/Tenant.php +++ b/src/Tenant.php @@ -203,12 +203,12 @@ class Tenant implements ArrayAccess public function getDatabaseName() { - return $this['_tenancy_db_name'] ?? ($this->app['config']['tenancy.database.prefix'] . $this->id . $this->app['config']['tenancy.database.suffix']); + return $this->data['_tenancy_db_name'] ?? ($this->app['config']['tenancy.database.prefix'] . $this->id . $this->app['config']['tenancy.database.suffix']); } public function getConnectionName() { - return $this['_tenancy_db_connection'] ?? 'tenant'; + return $this->data['_tenancy_db_connection'] ?? 'tenant'; } /** diff --git a/src/TenantManager.php b/src/TenantManager.php index 8122a225..5522ceb3 100644 --- a/src/TenantManager.php +++ b/src/TenantManager.php @@ -77,6 +77,11 @@ class TenantManager return $this; } + public static function create($domains, array $data = []): Tenant + { + return Tenant::create($domains, $data); + } + /** * Ensure that a tenant can be created. * diff --git a/tests/TenantManagerTest.php b/tests/TenantManagerTest.php index da0119fe..a27d037c 100644 --- a/tests/TenantManagerTest.php +++ b/tests/TenantManagerTest.php @@ -52,14 +52,6 @@ class TenantManagerTest extends TestCase $this->assertEquals(tenant(), tenancy()->find(tenant('id'))); } - /** @test */ - public function getTenantById_works() - { - $tenant = Tenant::new()->withDomains(['foo.localhost'])->save(); - - $this->assertSame($tenant, tenancy()->getTenantById($tenant['id'])); - } - /** @test */ public function findByDomain_throws_an_exception_when_an_unused_domain_is_supplied() { @@ -159,14 +151,13 @@ class TenantManagerTest extends TestCase } /** @test */ - public function properites_can_be_passed_in_the_create_method() + public function data_can_be_passed_in_the_create_method() { $data = ['plan' => 'free', 'subscribed_until' => '2020-01-01']; - $tenant = Tenant::new()->withDomains(['foo.localhost', $data])->save(); + $tenant = Tenant::create(['foo.localhost'], $data); - $tenant_data = $tenant; + $tenant_data = $tenant->data; unset($tenant_data['id']); - unset($tenant_data['domain']); $this->assertSame($data, $tenant_data); } @@ -174,14 +165,13 @@ class TenantManagerTest extends TestCase /** @test */ public function database_name_can_be_passed_in_the_create_method() { - $database = 'abc'; - config(['tenancy.database_name_key' => '_stancl_tenancy_database_name']); + $database = 'abc' . $this->randomString(); - $tenant = tenant()->create('foo.localhost', [ - '_stancl_tenancy_database_name' => $database, + $tenant = tenancy()->create(['foo.localhost'], [ + '_tenancy_db_name' => $database, ]); - $this->assertSame($database, tenant()->getDatabaseName($tenant)); + $this->assertSame($database, $tenant->getDatabaseName()); } /** @test */