Files
2026-03-31 14:32:23 -05:00

190 lines
6.8 KiB
C#

using System;
using System.Threading.Tasks;
using System.Collections.Generic;
using System.Linq;
using Moq;
using NUnit.Framework;
using LCU.Api.Internal.CoreApiWrapper.Services;
using LCU.Library.Internal.CoreApiWrapperLib.DataAccess;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.MemberAgreements;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreSoapRequests;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreResponses;
namespace LCU.Api.Internal.CoreApiWrapperTest.Service
{
public class AgreePersonServiceTest
{
private AgreePersonService _agreePersonService;
private Mock<IAgreePersonDao> _mockAgreePersonDao;
[SetUp]
public void SetUp()
{
_mockAgreePersonDao = new Mock<IAgreePersonDao>();
_agreePersonService = new AgreePersonService(_mockAgreePersonDao.Object);
}
[Test]
public async Task GetByUserId_OK()
{
_mockAgreePersonDao.Setup(x => x.FindByUserId(It.IsAny<string>())).ReturnsAsync(
new AgreePerson()
{
AgreeNumber = 100,
PersonNumber = 10,
UserId = "1"
}).Verifiable();
var result = await _agreePersonService.GetByUserId("1");
Assert.NotNull(result);
Assert.AreEqual(100, result.AgreeNumber);
Assert.AreEqual(10, result.PersonNumber);
Assert.AreEqual("1", result.UserId);
}
[Test]
public void GetByUserId_Exception()
{
_mockAgreePersonDao.Setup(x => x.FindByUserId(It.IsAny<string>())).Throws(new Exception("Dang"));
Assert.ThrowsAsync<Exception>(async () =>
await _agreePersonService.GetByUserId("1"));
}
[Test]
public async Task GetAgreePersonsWithHyphenatedUserId_OK()
{
_mockAgreePersonDao.Setup(x => x.FindAgreePersonsWithHyphenatedUserId()).ReturnsAsync(
new List<AgreePerson>()
{
new AgreePerson()
{
AgreeNumber = 100,
PersonNumber = 10,
UserId = "1-1"
},
new AgreePerson()
{
AgreeNumber = 200,
PersonNumber = 20,
UserId = "2-2"
}
}).Verifiable();
var results = await _agreePersonService.GetAgreePersonsWithHyphenatedUserId();
Assert.NotNull(results);
Assert.AreEqual(2, results.Count());
var result1 = results.FirstOrDefault();
Assert.AreEqual(100, result1.AgreeNumber);
Assert.AreEqual(10, result1.PersonNumber);
Assert.AreEqual("1-1", result1.UserId);
}
[Test]
public void GetAgreePersonsWithHyphenatedUserId_Exception()
{
_mockAgreePersonDao.Setup(x => x.FindAgreePersonsWithHyphenatedUserId())
.Throws(new Exception("Dang"));
Assert.ThrowsAsync<Exception>(async () =>
await _agreePersonService.GetAgreePersonsWithHyphenatedUserId());
}
[Test]
public async Task GetActiveCustodialVruCardAgreementAgreePersons_OK()
{
_mockAgreePersonDao.Setup(x => x.FindActiveCustodialVruCardAgreementAgreePersons()).ReturnsAsync(
new List<AgreePerson>()
{
new AgreePerson()
{
AgreeNumber = 100,
PersonNumber = 10,
UserId = "11"
},
new AgreePerson()
{
AgreeNumber = 200,
PersonNumber = 20,
UserId = null
}
}).Verifiable();
var results = await _agreePersonService.GetActiveCustodialVruCardAgreementAgreePersons();
Assert.NotNull(results);
Assert.AreEqual(2, results.Count());
var result1 = results.FirstOrDefault();
Assert.AreEqual(100, result1.AgreeNumber);
Assert.AreEqual(10, result1.PersonNumber);
Assert.AreEqual("11", result1.UserId);
}
[Test]
public void GetActiveCustodialVruCardAgreementAgreePersons_Exception()
{
_mockAgreePersonDao.Setup(x => x.FindActiveCustodialVruCardAgreementAgreePersons())
.Throws(new Exception("Dang"));
Assert.ThrowsAsync<Exception>(async () =>
await _agreePersonService.GetActiveCustodialVruCardAgreementAgreePersons());
}
[Test]
public async Task UpdatePersonAgreementDetailTypes_OK()
{
_mockAgreePersonDao.Setup(x => x.UpdatePersonAgreementDetailTypes(It.IsAny<PersonAgreementDetailTypeRequest>())).ReturnsAsync(
new BasicResponse
{
Success = true,
Errors = new List<string>()
}).Verifiable();
var personAgreementDetailTypeRequest = new PersonAgreementDetailTypeRequest()
{
PersonNumber = 1,
AgreeNumber = 2,
AgreeTypeCode = "VRUTEST",
DetailTypes = new List<DetailType>()
{
new DetailType()
{
DetailTypeCode = "STATUSTEST",
DetailValue = "CLOSTEST"
}
}
};
var result = await _agreePersonService.UpdatePersonAgreementDetailTypes(personAgreementDetailTypeRequest);
Assert.NotNull(result);
Assert.IsTrue(result.Success);
Assert.IsEmpty(result.Errors);
}
[Test]
public void UpdatePersonAgreementDetailTypes_Exception()
{
_mockAgreePersonDao.Setup(x => x.UpdatePersonAgreementDetailTypes(It.IsAny<PersonAgreementDetailTypeRequest>()))
.Throws(new Exception("Dang"));
var personAgreementDetailTypeRequest = new PersonAgreementDetailTypeRequest()
{
PersonNumber = 1,
AgreeNumber = 2,
AgreeTypeCode = "VRUTEST",
DetailTypes = new List<DetailType>()
{
new DetailType()
{
DetailTypeCode = "STATUSTEST",
DetailValue = "CLOSTEST"
}
}
};
Assert.ThrowsAsync<Exception>(async () =>
await _agreePersonService.UpdatePersonAgreementDetailTypes(personAgreementDetailTypeRequest));
}
}
}