mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2026-02-12 04:29:36 +00:00
Added logic to delegate the info retrieval logic to another provider when giving an URL
This commit is contained in:
parent
47c7ee9f07
commit
10acc2e130
5 changed files with 169 additions and 11 deletions
|
|
@ -24,6 +24,7 @@ namespace App\Tests\Services\InfoProviderSystem;
|
|||
|
||||
use App\Services\InfoProviderSystem\ProviderRegistry;
|
||||
use App\Services\InfoProviderSystem\Providers\InfoProviderInterface;
|
||||
use App\Services\InfoProviderSystem\Providers\URLHandlerInfoProviderInterface;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class ProviderRegistryTest extends TestCase
|
||||
|
|
@ -44,9 +45,10 @@ class ProviderRegistryTest extends TestCase
|
|||
|
||||
public function getMockProvider(string $key, bool $active = true): InfoProviderInterface
|
||||
{
|
||||
$mock = $this->createMock(InfoProviderInterface::class);
|
||||
$mock = $this->createMockForIntersectionOfInterfaces([InfoProviderInterface::class, URLHandlerInfoProviderInterface::class]);
|
||||
$mock->method('getProviderKey')->willReturn($key);
|
||||
$mock->method('isActive')->willReturn($active);
|
||||
$mock->method('getHandledDomains')->willReturn(["$key.com", "test.$key.de"]);
|
||||
|
||||
return $mock;
|
||||
}
|
||||
|
|
@ -109,4 +111,18 @@ class ProviderRegistryTest extends TestCase
|
|||
|
||||
$registry->getProviders();
|
||||
}
|
||||
|
||||
public function testGetProviderHandlingDomain(): void
|
||||
{
|
||||
$registry = new ProviderRegistry($this->providers);
|
||||
|
||||
$this->assertEquals($this->providers[0], $registry->getProviderHandlingDomain('test1.com'));
|
||||
$this->assertEquals($this->providers[0], $registry->getProviderHandlingDomain('www.test1.com')); //Subdomain should also work
|
||||
|
||||
$this->assertEquals(
|
||||
$this->providers[1],
|
||||
$registry->getProviderHandlingDomain('test.test2.de')
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue