mirror of
https://github.com/archtechx/tenancy.git
synced 2025-12-12 19:14:04 +00:00
Passing tests with DB storage driver
This commit is contained in:
parent
12c05c0af6
commit
6b0ec1b554
4 changed files with 15 additions and 20 deletions
|
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -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 */
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue