33 lines
1.1 KiB
C#
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));
|
|
}
|
|
}
|
|
}
|