1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2026-02-06 05:04:03 +00:00

Refactor cached tenant resolvers with decorator pattern

This commit is contained in:
Erik Gaal 2022-09-24 20:15:47 +02:00
parent 8e3b74f9d1
commit 97e45ab9cc
No known key found for this signature in database
GPG key ID: 8733B288F439A599
15 changed files with 424 additions and 251 deletions

View file

@ -0,0 +1,33 @@
<?php
use Stancl\Tenancy\Exceptions\TenantCouldNotBeIdentifiedOnDomainException;
use Stancl\Tenancy\Resolvers\DomainTenantResolver;
use Stancl\Tenancy\Tests\Etc\Tenant;
use Stancl\Tenancy\Tests\Repository\InMemoryTenantRepository;
beforeEach(function () {
$this->repository = new InMemoryTenantRepository();
$this->tenant = new Tenant();
$this->tenant->domains = ['acme'];
$this->repository->store($this->tenant);
});
it('resolves the tenant with domain', function () {
$resolver = new DomainTenantResolver(
tenantRepository: $this->repository,
);
$result = $resolver->resolve('acme');
expect($result)->toBe($this->tenant);
});
it('throws when unable to find tenant', function () {
$resolver = new DomainTenantResolver(
tenantRepository: $this->repository,
);
$resolver->resolve('foo');
})->throws(TenantCouldNotBeIdentifiedOnDomainException::class);