using Core.Blueprint.Common.Contracts; using Thalos.DAL.Contracts; namespace Thalos.DAL.UnitTests; public class ContractShapeTests { [Fact] public void IdentityPolicyLookupRequest_WhenCreated_StoresTransportNeutralData() { var envelope = new IdentityContractEnvelope("1.0.0", "corr-123"); var request = new IdentityPolicyLookupRequest(envelope, "user-1", "tenant-1", "identity.token.issue"); Assert.Equal("1.0.0", request.Envelope.ContractVersion); Assert.Equal("corr-123", request.Envelope.CorrelationId); Assert.Equal("user-1", request.SubjectId); Assert.Equal("tenant-1", request.TenantId); Assert.Equal("identity.token.issue", request.PermissionCode); Assert.Equal(BuildingBlock.Identity.Contracts.Conventions.IdentityAuthProvider.InternalJwt, request.Provider); } [Fact] public void IdentityTokenRecord_WhenCreated_StoresTransportNeutralData() { var envelope = new IdentityContractEnvelope("1.0.0", "corr-123"); var record = new IdentityTokenRecord(envelope, "user-1", "tenant-1", "token-xyz", 1800); Assert.Equal("1.0.0", record.Envelope.ContractVersion); Assert.Equal("corr-123", record.Envelope.CorrelationId); Assert.Equal("user-1", record.SubjectId); Assert.Equal("tenant-1", record.TenantId); Assert.Equal("token-xyz", record.Token); Assert.Equal(1800, record.ExpiresInSeconds); Assert.Equal(BuildingBlock.Identity.Contracts.Conventions.IdentityAuthProvider.InternalJwt, record.Provider); } [Fact] public void ThalosDalPackageContract_WhenCreated_UsesBlueprintDescriptorContract() { IBlueprintPackageContract contract = new ThalosDalPackageContract(); Assert.Equal("Thalos.DAL.Contracts", contract.Descriptor.PackageId); Assert.Equal(PackageVersionPolicy.Minor, contract.Descriptor.VersionPolicy); Assert.Contains("Core.Blueprint.Common", contract.Descriptor.DependencyPackageIds); } }