1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2025-12-12 20:34:03 +00:00

Passing tests with DB storage driver

This commit is contained in:
Samuel Štancl 2019-09-18 20:08:30 +02:00
parent 12c05c0af6
commit 6b0ec1b554
4 changed files with 15 additions and 20 deletions

View file

@ -59,7 +59,7 @@ class DatabaseStorageDriver implements StorageDriver
throw new TenantWithThisIdAlreadyExistsException($tenant->id); throw new TenantWithThisIdAlreadyExistsException($tenant->id);
} }
if (Domains::whereIn('domain', [$tenant->domains])->exists()) { if (Domains::whereIn('domain', $tenant->domains)->exists()) {
throw new DomainOccupiedByOtherTenantException(); throw new DomainOccupiedByOtherTenantException();
} }
} }

View file

@ -203,12 +203,12 @@ class Tenant implements ArrayAccess
public function getDatabaseName() 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() public function getConnectionName()
{ {
return $this['_tenancy_db_connection'] ?? 'tenant'; return $this->data['_tenancy_db_connection'] ?? 'tenant';
} }
/** /**

View file

@ -77,6 +77,11 @@ class TenantManager
return $this; return $this;
} }
public static function create($domains, array $data = []): Tenant
{
return Tenant::create($domains, $data);
}
/** /**
* Ensure that a tenant can be created. * Ensure that a tenant can be created.
* *

View file

@ -52,14 +52,6 @@ class TenantManagerTest extends TestCase
$this->assertEquals(tenant(), tenancy()->find(tenant('id'))); $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 */ /** @test */
public function findByDomain_throws_an_exception_when_an_unused_domain_is_supplied() public function findByDomain_throws_an_exception_when_an_unused_domain_is_supplied()
{ {
@ -159,14 +151,13 @@ class TenantManagerTest extends TestCase
} }
/** @test */ /** @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']; $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['id']);
unset($tenant_data['domain']);
$this->assertSame($data, $tenant_data); $this->assertSame($data, $tenant_data);
} }
@ -174,14 +165,13 @@ class TenantManagerTest extends TestCase
/** @test */ /** @test */
public function database_name_can_be_passed_in_the_create_method() public function database_name_can_be_passed_in_the_create_method()
{ {
$database = 'abc'; $database = 'abc' . $this->randomString();
config(['tenancy.database_name_key' => '_stancl_tenancy_database_name']);
$tenant = tenant()->create('foo.localhost', [ $tenant = tenancy()->create(['foo.localhost'], [
'_stancl_tenancy_database_name' => $database, '_tenancy_db_name' => $database,
]); ]);
$this->assertSame($database, tenant()->getDatabaseName($tenant)); $this->assertSame($database, $tenant->getDatabaseName());
} }
/** @test */ /** @test */