thalos-service/tests/Thalos.Service.Application.UnitTests/IssueIdentityTokenUseCaseTests.cs
2026-02-25 13:13:56 -06:00

33 lines
1.1 KiB
C#

using BuildingBlock.Identity.Contracts.Requests;
using BuildingBlock.Identity.Contracts.Conventions;
using Thalos.Service.Application.Ports;
using Thalos.Service.Application.UseCases;
using Thalos.Domain.Contracts;
using Thalos.Domain.Decisions;
namespace Thalos.Service.Application.UnitTests;
public class IssueIdentityTokenUseCaseTests
{
[Fact]
public async Task HandleAsync_WhenCalled_DelegatesToReadPort()
{
var decisionService = new IdentityTokenDecisionService();
var port = new FakeIdentityTokenReadPort();
var useCase = new IssueIdentityTokenUseCase(port, decisionService);
var response = await useCase.HandleAsync(new IssueIdentityTokenRequest("user-1", "tenant-1"));
Assert.Equal("token-123", response.Token);
Assert.Equal(3600, response.ExpiresInSeconds);
}
private sealed class FakeIdentityTokenReadPort : IIdentityTokenReadPort
{
public Task<IdentityTokenData> ReadTokenAsync(IssueIdentityTokenRequest request)
{
return Task.FromResult(new IdentityTokenData("token-123", 3600, IdentityAuthProvider.InternalJwt));
}
}
}