Files
monorepo/LCU.API.Internal.CoreSoapApiWrapper/LCU.API.Internal.CoreSoapApiWrapperTest/Services/PersonAgreementServiceTest.cs
T
2026-03-13 12:58:13 -05:00

91 lines
3.4 KiB
C#

using System;
using System.Collections.Generic;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;
using LCU.API.Internal.CoreSoapApiWrapper.CoreSoapUtilities;
using LCU.API.Internal.CoreSoapApiWrapper.DataAccess;
using LCU.API.Internal.CoreSoapApiWrapper.Models.Requests;
using LCU.API.Internal.CoreSoapApiWrapper.Services;
namespace LCU.API.Internal.CoreSoapApiWrapperTest.Services
{
[TestClass]
public class PersonAgreementServiceTest
{
private PersonAgreementService _service;
private Mock<IPersonAgreementDao> _mockPersonAgreementDao;
public PersonAgreementServiceTest()
{
_mockPersonAgreementDao = new Mock<IPersonAgreementDao>();
_service = new PersonAgreementService(_mockPersonAgreementDao.Object);
}
[TestMethod]
public void UpdatePersonAgreementsDetailTypes_OK()
{
var response = new PersonAgreementMaintenanceResponse()
{
WasSuccessful = true
};
_mockPersonAgreementDao.Setup(x => x.SendPersonAgreementMaintenanceRequest(It.IsAny<PersonAgreementMaintenanceRequest>()))
.Returns(response).Verifiable();
var request = new PersonAgreementDetailTypeRequest()
{
PersonNumber = 1,
AgreeNumber = 2,
DetailTypes = new List<DetailType>()
{
new DetailType()
{
DetailTypeCode = "Stat",
DetailValue = "CLOS"
}
}
};
var result = _service.UpdatePersonAgreementsDetailTypes(request);
Assert.IsNotNull(result);
Assert.IsTrue((bool)result.Success);
_mockPersonAgreementDao.Verify();
}
[TestMethod]
public void UpdatePersonAgreementsDetailTypes_Exception()
{
_mockPersonAgreementDao.Setup(x => x.SendPersonAgreementMaintenanceRequest(It.IsAny<PersonAgreementMaintenanceRequest>()))
.Throws(new Exception("Error thrown in unit test.")).Verifiable();
var request = new PersonAgreementDetailTypeRequest()
{
PersonNumber = 1,
AgreeNumber = 2,
DetailTypes = new List<DetailType>()
{
new DetailType()
{
DetailTypeCode = "Stat",
DetailValue = "CLOS"
}
}
};
Assert.ThrowsException<Exception>(() => _service.UpdatePersonAgreementsDetailTypes(request));
_mockPersonAgreementDao.Verify();
}
[TestMethod]
public void UpdatePersonAgreementsDetailTypes_DetailTypes_Null_Exception()
{
var request = new PersonAgreementDetailTypeRequest()
{
PersonNumber = 1,
AgreeNumber = 2,
DetailTypes = null
};
Assert.ThrowsException<ArgumentNullException>(() => _service.UpdatePersonAgreementsDetailTypes(request));
_mockPersonAgreementDao.Verify(x => x.SendPersonAgreementMaintenanceRequest(
It.IsAny<PersonAgreementMaintenanceRequest>()), Times.Never);
}
}
}