diff --git a/src/database/SsiCredentialIssuer.DbAccess/Models/OwnedVerifiedCredentialData.cs b/src/database/SsiCredentialIssuer.DbAccess/Models/OwnedVerifiedCredentialData.cs index 6cf03d0..221dc76 100644 --- a/src/database/SsiCredentialIssuer.DbAccess/Models/OwnedVerifiedCredentialData.cs +++ b/src/database/SsiCredentialIssuer.DbAccess/Models/OwnedVerifiedCredentialData.cs @@ -26,5 +26,6 @@ public record OwnedVerifiedCredentialData( VerifiedCredentialTypeId CredentialType, CompanySsiDetailStatusId Status, DateTimeOffset? ExpiryDate, - string Authority + string Authority, + string? Version ); diff --git a/src/database/SsiCredentialIssuer.DbAccess/Repositories/CompanySsiDetailsRepository.cs b/src/database/SsiCredentialIssuer.DbAccess/Repositories/CompanySsiDetailsRepository.cs index df47ecc..220585f 100644 --- a/src/database/SsiCredentialIssuer.DbAccess/Repositories/CompanySsiDetailsRepository.cs +++ b/src/database/SsiCredentialIssuer.DbAccess/Repositories/CompanySsiDetailsRepository.cs @@ -175,7 +175,8 @@ public IAsyncEnumerable GetOwnCredentialDetails(str c.VerifiedCredentialTypeId, c.CompanySsiDetailStatusId, c.ExpiryDate, - c.IssuerBpn)) + c.IssuerBpn, + c.VerifiedCredentialExternalTypeDetailVersion!.Version)) .ToAsyncEnumerable(); /// diff --git a/tests/issuer/SsiCredentialIssuer.Service.Tests/BusinessLogic/IssuerBusinessLogicTests.cs b/tests/issuer/SsiCredentialIssuer.Service.Tests/BusinessLogic/IssuerBusinessLogicTests.cs index 87e3f6a..caeccca 100644 --- a/tests/issuer/SsiCredentialIssuer.Service.Tests/BusinessLogic/IssuerBusinessLogicTests.cs +++ b/tests/issuer/SsiCredentialIssuer.Service.Tests/BusinessLogic/IssuerBusinessLogicTests.cs @@ -989,4 +989,50 @@ private void ConfigureHttpClientFactoryFixture(HttpResponseMessage httpResponseM } #endregion + + #region GetCredentialsForBpn + + [Fact] + public async void GetCredentialsForBpn_WithVersion_ReturnExpected() + { + OwnedVerifiedCredentialData[] ownedVerifiedCredentialData = [new OwnedVerifiedCredentialData( + Guid.NewGuid(), + VerifiedCredentialTypeId.TRACEABILITY_FRAMEWORK, + CompanySsiDetailStatusId.ACTIVE, + DateTimeOffset.Now, + "Test Authority", + "3.0")]; + + A.CallTo(() => _companySsiDetailsRepository.GetOwnCredentialDetails(_identity.Bpnl)).Returns(ownedVerifiedCredentialData.ToAsyncEnumerable()); + + var ownedCredentials = _sut.GetCredentialsForBpn(); + + await foreach (var credentialData in ownedCredentials) + { + credentialData.Version.Should().Be(ownedVerifiedCredentialData[0].Version); + } + } + + [Fact] + public async void GetCredentialsForBpn_WithoutVersion_ReturnExpected() + { + OwnedVerifiedCredentialData[] ownedVerifiedCredentialData = [new OwnedVerifiedCredentialData( + Guid.NewGuid(), + VerifiedCredentialTypeId.TRACEABILITY_FRAMEWORK, + CompanySsiDetailStatusId.ACTIVE, + DateTimeOffset.Now, + "Test Authority", + null)]; + + A.CallTo(() => _companySsiDetailsRepository.GetOwnCredentialDetails(_identity.Bpnl)).Returns(ownedVerifiedCredentialData.ToAsyncEnumerable()); + + var ownedCredentials = _sut.GetCredentialsForBpn(); + + await foreach (var credentialData in ownedCredentials) + { + credentialData.Version.Should().BeNull(); + } + } + + #endregion }