From 643d984767ae12ebb71bf8e9dc30881afc880a6b Mon Sep 17 00:00:00 2001 From: Ahmed-Ghanam Date: Tue, 8 Oct 2024 07:33:05 +0200 Subject: [PATCH] Implement two unit tests to validate the functionality of the user contact details retrieval use case. --- .../UserContactDetailsRetrieverTests.cs | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 test/Altinn.Profile.Tests/Profile.Integrations/UserContactDetailsRetrieverTests.cs diff --git a/test/Altinn.Profile.Tests/Profile.Integrations/UserContactDetailsRetrieverTests.cs b/test/Altinn.Profile.Tests/Profile.Integrations/UserContactDetailsRetrieverTests.cs new file mode 100644 index 0000000..218e116 --- /dev/null +++ b/test/Altinn.Profile.Tests/Profile.Integrations/UserContactDetailsRetrieverTests.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; + +using Altinn.Profile.Core; +using Altinn.Profile.Integrations.Entities; +using Altinn.Profile.Integrations.Services; +using Altinn.Profile.Models; +using Altinn.Profile.UseCases; + +using Moq; + +using Xunit; + +namespace Altinn.Profile.Tests.Profile.Integrations; + +public class UserContactDetailsRetrieverTests +{ + private readonly Mock _mockRegisterService; + private readonly UserContactDetailsRetriever _retriever; + + public UserContactDetailsRetrieverTests() + { + _mockRegisterService = new Mock(); + _retriever = new UserContactDetailsRetriever(_mockRegisterService.Object); + } + + [Fact] + public async Task RetrieveAsync_ThrowsArgumentNullException_WhenLookupCriteriaIsNull() + { + // Act & Assert + await Assert.ThrowsAsync(() => _retriever.RetrieveAsync(null)); + } + + [Fact] + public async Task RetrieveAsync_ReturnsFalse_WhenNationalIdentityNumbersIsEmpty() + { + // Arrange + var lookupCriteria = new UserContactPointLookup { NationalIdentityNumbers = [] }; + + // Act + var result = await _retriever.RetrieveAsync(lookupCriteria); + + // Assert + Assert.False(result.IsSuccess); + } + + [Fact] + public async Task RetrieveAsync_ReturnsFalse_WhenNoContactDetailsFound() + { + // Arrange + var lookupCriteria = new UserContactPointLookup + { + NationalIdentityNumbers = new List { "08119043698" } + }; + + _mockRegisterService.Setup(s => s.GetUserContactAsync(lookupCriteria.NationalIdentityNumbers)).ReturnsAsync(false); + + // Act + var result = await _retriever.RetrieveAsync(lookupCriteria); + + // Assert + Assert.False(result.IsSuccess); + } +}