Files
2026-03-13 09:28:55 -05:00

158 lines
6.5 KiB
C#

using Moq;
using NUnit.Framework;
using LCU.Api.Internal.DataCleanUp.Services;
using LCU.Api.Internal.DataCleanUp.DataAccess;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.MemberAgreements;
using System.Collections.Generic;
using System.Threading.Tasks;
using LCU.Library.Internal.DataCleanUpModel.Enum;
using LCU.Library.Internal.DataCleanUpModel.Models;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreResponses;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreSoapRequests;
namespace LCU.Api.Internal.DataCleanUpTest.Services;
public class CloseCustodialVruAgreementsServiceTest
{
private CloseCustodialVruAgreementsService _closeCustodialVruAgreementsService;
private Mock<ICoreApiWrapperService> _mockCoreApiWrapperService;
[SetUp]
public void Setup()
{
_mockCoreApiWrapperService = new Mock<ICoreApiWrapperService>();
_closeCustodialVruAgreementsService = new CloseCustodialVruAgreementsService(_mockCoreApiWrapperService.Object);
}
[Test]
public async Task CleanUp_Success()
{
//Set Up GetActiveCustodialVruCardAgreementAgreePersons
var testAgreePersons = new List<AgreePerson>()
{
new AgreePerson()
{
PersonNumber = 1,
UserId = "11",
AgreeNumber = 1
}
};
_mockCoreApiWrapperService.Setup(x => x.GetActiveCustodialVruCardAgreementAgreePersons()).ReturnsAsync(testAgreePersons);
//Set Up UpdateAccessChannelPersons
var basicResponse = new BasicResponse()
{
Success = true,
Errors = new List<string>()
};
_mockCoreApiWrapperService.Setup(x => x.UpdatePersonAgreementDetailTypes(It.IsAny<PersonAgreementDetailTypeRequest>()))
.ReturnsAsync(basicResponse);
var testRequest = new DataCleanUpRequest()
{
CleanUpType = CleanUpTypes.HyphenatedUserId
};
var result = await _closeCustodialVruAgreementsService.CleanUp(testRequest);
Assert.NotNull(result);
Assert.AreEqual(testRequest, result.Request);
Assert.IsTrue(result.Successful);
Assert.IsEmpty(result.ResponseStack);
_mockCoreApiWrapperService.Verify(x => x.GetActiveCustodialVruCardAgreementAgreePersons(), Times.Once);
_mockCoreApiWrapperService.Verify(x => x.UpdatePersonAgreementDetailTypes(It.IsAny<PersonAgreementDetailTypeRequest>()), Times.Once);
}
[Test]
public async Task CleanUp_AgreePersons_Null_Fail()
{
//Set Up GetActiveCustodialVruCardAgreementAgreePersons
List<AgreePerson> testAgreePersons = null;
_mockCoreApiWrapperService.Setup(x => x.GetActiveCustodialVruCardAgreementAgreePersons()).ReturnsAsync(testAgreePersons);
var testRequest = new DataCleanUpRequest()
{
CleanUpType = CleanUpTypes.HyphenatedUserId
};
var result = await _closeCustodialVruAgreementsService.CleanUp(testRequest);
Assert.NotNull(result);
Assert.AreEqual(testRequest, result.Request);
Assert.IsFalse(result.Successful);
Assert.AreEqual(1, result.ResponseStack.Count);
_mockCoreApiWrapperService.Verify(x => x.GetActiveCustodialVruCardAgreementAgreePersons(), Times.Once);
_mockCoreApiWrapperService.Verify(x => x.UpdatePersonAgreementDetailTypes(It.IsAny<PersonAgreementDetailTypeRequest>()), Times.Never);
}
[Test]
public async Task CleanUp_UpdateResult_Null_Fail()
{
//Set Up GetActiveCustodialVruCardAgreementAgreePersons
var testAgreePersons = new List<AgreePerson>()
{
new AgreePerson()
{
PersonNumber = 1,
UserId = "11",
AgreeNumber = 1
}
};
_mockCoreApiWrapperService.Setup(x => x.GetActiveCustodialVruCardAgreementAgreePersons()).ReturnsAsync(testAgreePersons);
//Set Up UpdateAccessChannelPersons
BasicResponse? basicResponse = null;
_mockCoreApiWrapperService.Setup(x => x.UpdatePersonAgreementDetailTypes(It.IsAny<PersonAgreementDetailTypeRequest>()))
.ReturnsAsync(basicResponse);
var testRequest = new DataCleanUpRequest()
{
CleanUpType = CleanUpTypes.HyphenatedUserId
};
var result = await _closeCustodialVruAgreementsService.CleanUp(testRequest);
Assert.NotNull(result);
Assert.AreEqual(testRequest, result.Request);
Assert.IsFalse(result.Successful);
Assert.AreEqual(1, result.ResponseStack.Count);
_mockCoreApiWrapperService.Verify(x => x.GetActiveCustodialVruCardAgreementAgreePersons(), Times.Once);
_mockCoreApiWrapperService.Verify(x => x.UpdatePersonAgreementDetailTypes(It.IsAny<PersonAgreementDetailTypeRequest>()), Times.Once);
}
[Test]
public async Task CleanUp_BasicResponse_Return_NotSuccessful_Fail()
{
//Set Up GetActiveCustodialVruCardAgreementAgreePersons
var testAgreePersons = new List<AgreePerson>()
{
new AgreePerson()
{
PersonNumber = 1,
UserId = "11",
AgreeNumber = 1
}
};
_mockCoreApiWrapperService.Setup(x => x.GetActiveCustodialVruCardAgreementAgreePersons()).ReturnsAsync(testAgreePersons);
//Set Up UpdateAccessChannelPersons
var basicResponse = new BasicResponse()
{
Success = false,
Errors = new List<string>() { "Error has occured" }
};
_mockCoreApiWrapperService.Setup(x => x.UpdatePersonAgreementDetailTypes(It.IsAny<PersonAgreementDetailTypeRequest>()))
.ReturnsAsync(basicResponse);
var testRequest = new DataCleanUpRequest()
{
CleanUpType = CleanUpTypes.HyphenatedUserId
};
var result = await _closeCustodialVruAgreementsService.CleanUp(testRequest);
Assert.NotNull(result);
Assert.AreEqual(testRequest, result.Request);
Assert.IsFalse(result.Successful);
Assert.AreEqual(1, result.ResponseStack.Count);
_mockCoreApiWrapperService.Verify(x => x.GetActiveCustodialVruCardAgreementAgreePersons(), Times.Once);
_mockCoreApiWrapperService.Verify(x => x.UpdatePersonAgreementDetailTypes(It.IsAny<PersonAgreementDetailTypeRequest>()), Times.Once);
}
}