73 lines
2.7 KiB
C#
73 lines
2.7 KiB
C#
using BuildingBlock.Identity.Contracts.Abstractions;
|
|
using BuildingBlock.Identity.Contracts.Conventions;
|
|
using BuildingBlock.Identity.Contracts.Requests;
|
|
using BuildingBlock.Identity.Contracts.Responses;
|
|
|
|
namespace BuildingBlock.Identity.Contracts.UnitTests;
|
|
|
|
public class ContractShapeTests
|
|
{
|
|
[Fact]
|
|
public void IdentityEnvelope_WhenCreated_PreservesValues()
|
|
{
|
|
var envelope = new IdentityContractEnvelope("1.0.0", "corr-identity-001");
|
|
|
|
Assert.Equal("1.0.0", envelope.ContractVersion);
|
|
Assert.Equal("corr-identity-001", envelope.CorrelationId);
|
|
}
|
|
|
|
[Fact]
|
|
public void IdentityContracts_WhenInstantiated_ImplementMarkerInterface()
|
|
{
|
|
IIdentityCapabilityContract issueRequest = new IssueIdentityTokenRequest(
|
|
"subject-a",
|
|
"tenant-a",
|
|
IdentityAuthProvider.AzureAd,
|
|
"external-token");
|
|
IIdentityCapabilityContract issueResponse = new IssueIdentityTokenResponse("token-a", 1800);
|
|
IIdentityCapabilityContract policyRequest = new EvaluateIdentityPolicyRequest(
|
|
"subject-b",
|
|
"tenant-b",
|
|
"identity.token.issue",
|
|
IdentityAuthProvider.Google);
|
|
IIdentityCapabilityContract policyResponse = new EvaluateIdentityPolicyResponse("subject-b", "identity.token.issue", true);
|
|
IIdentityCapabilityContract refreshRequest = new RefreshIdentitySessionRequest(
|
|
"refresh-a",
|
|
"corr-refresh",
|
|
IdentityAuthProvider.InternalJwt);
|
|
IIdentityCapabilityContract refreshResponse = new RefreshIdentitySessionResponse("token-b", 900);
|
|
IIdentityCapabilityContract exchangeRequest = new ExchangeIdentityProviderTokenRequest(
|
|
"tenant-c",
|
|
IdentityAuthProvider.AzureAd,
|
|
"provider-token",
|
|
"corr-exchange");
|
|
IIdentityCapabilityContract exchangeResponse = new ExchangeIdentityProviderTokenResponse(
|
|
"subject-c",
|
|
"tenant-c",
|
|
IdentityAuthProvider.AzureAd,
|
|
true);
|
|
|
|
Assert.NotNull(issueRequest);
|
|
Assert.NotNull(issueResponse);
|
|
Assert.NotNull(policyRequest);
|
|
Assert.NotNull(policyResponse);
|
|
Assert.NotNull(refreshRequest);
|
|
Assert.NotNull(refreshResponse);
|
|
Assert.NotNull(exchangeRequest);
|
|
Assert.NotNull(exchangeResponse);
|
|
}
|
|
|
|
[Fact]
|
|
public void IssueIdentityTokenRequest_WhenProviderSpecified_PreservesProviderMetadata()
|
|
{
|
|
var request = new IssueIdentityTokenRequest(
|
|
"subject-1",
|
|
"tenant-1",
|
|
IdentityAuthProvider.Google,
|
|
"google-token");
|
|
|
|
Assert.Equal(IdentityAuthProvider.Google, request.Provider);
|
|
Assert.Equal("google-token", request.ExternalToken);
|
|
}
|
|
}
|