2026-04-02 17:48:27 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace MintyPHP\Tests\Module\Helpdesk\Service;
|
|
|
|
|
|
2026-04-06 10:29:59 +02:00
|
|
|
use MintyPHP\Module\Helpdesk\Service\EffectiveHelpdeskSettingsService;
|
2026-04-02 17:48:27 +02:00
|
|
|
use MintyPHP\Module\Helpdesk\Service\HelpdeskOAuthTokenService;
|
|
|
|
|
use MintyPHP\Module\Helpdesk\Service\HelpdeskSettingsGateway;
|
|
|
|
|
use MintyPHP\Module\Helpdesk\Service\HelpdeskTokenRepository;
|
|
|
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
|
|
|
|
|
|
class HelpdeskOAuthTokenServiceTest extends TestCase
|
|
|
|
|
{
|
|
|
|
|
private function createService(?string $authMode = null, ?string $cachedToken = null): HelpdeskOAuthTokenService
|
|
|
|
|
{
|
2026-04-06 10:29:59 +02:00
|
|
|
$settings = $this->createMock(EffectiveHelpdeskSettingsService::class);
|
2026-04-02 17:48:27 +02:00
|
|
|
$settings->method('getAuthMode')->willReturn($authMode ?? HelpdeskSettingsGateway::AUTH_MODE_BASIC);
|
|
|
|
|
|
|
|
|
|
$tokenRepo = $this->createMock(HelpdeskTokenRepository::class);
|
|
|
|
|
$tokenRepo->method('findValidToken')->willReturn($cachedToken);
|
|
|
|
|
|
|
|
|
|
return new HelpdeskOAuthTokenService($settings, $tokenRepo);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testReturnsNullWhenAuthModeIsBasic(): void
|
|
|
|
|
{
|
|
|
|
|
$service = $this->createService(HelpdeskSettingsGateway::AUTH_MODE_BASIC);
|
|
|
|
|
$this->assertNull($service->getAccessToken(1));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testReturnsCachedTokenWhenAvailable(): void
|
|
|
|
|
{
|
|
|
|
|
$service = $this->createService(HelpdeskSettingsGateway::AUTH_MODE_OAUTH2, 'cached-bearer-token');
|
|
|
|
|
$this->assertSame('cached-bearer-token', $service->getAccessToken(1));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testReturnsNullWhenNoCachedTokenExists(): void
|
|
|
|
|
{
|
|
|
|
|
$service = $this->createService(HelpdeskSettingsGateway::AUTH_MODE_OAUTH2, null);
|
|
|
|
|
$this->assertNull($service->getAccessToken(1));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testReturnsNullForBasicAuthRegardlessOfTenantId(): void
|
|
|
|
|
{
|
|
|
|
|
$service = $this->createService(HelpdeskSettingsGateway::AUTH_MODE_BASIC);
|
|
|
|
|
$this->assertNull($service->getAccessToken(99));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testDoesNotQueryCacheWhenAuthModeIsBasic(): void
|
|
|
|
|
{
|
2026-04-06 10:29:59 +02:00
|
|
|
$settings = $this->createMock(EffectiveHelpdeskSettingsService::class);
|
2026-04-02 17:48:27 +02:00
|
|
|
$settings->method('getAuthMode')->willReturn(HelpdeskSettingsGateway::AUTH_MODE_BASIC);
|
|
|
|
|
|
|
|
|
|
$tokenRepo = $this->createMock(HelpdeskTokenRepository::class);
|
|
|
|
|
$tokenRepo->expects($this->never())->method('findValidToken');
|
|
|
|
|
|
|
|
|
|
$service = new HelpdeskOAuthTokenService($settings, $tokenRepo);
|
|
|
|
|
$service->getAccessToken(1);
|
|
|
|
|
}
|
2026-04-02 21:46:01 +02:00
|
|
|
|
|
|
|
|
public function testDoesNotQueryCacheForInvalidTenantId(): void
|
|
|
|
|
{
|
2026-04-06 10:29:59 +02:00
|
|
|
$settings = $this->createMock(EffectiveHelpdeskSettingsService::class);
|
2026-04-02 21:46:01 +02:00
|
|
|
$settings->method('getAuthMode')->willReturn(HelpdeskSettingsGateway::AUTH_MODE_OAUTH2);
|
|
|
|
|
|
|
|
|
|
$tokenRepo = $this->createMock(HelpdeskTokenRepository::class);
|
|
|
|
|
$tokenRepo->expects($this->never())->method('findValidToken');
|
|
|
|
|
|
|
|
|
|
$service = new HelpdeskOAuthTokenService($settings, $tokenRepo);
|
|
|
|
|
$this->assertNull($service->getAccessToken(0));
|
|
|
|
|
}
|
2026-04-02 17:48:27 +02:00
|
|
|
}
|