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; using Microsoft.VisualStudio.TestTools.UnitTesting; using Moq; using System; namespace LCU.API.Internal.CoreSoapApiWrapperTest.Services { [TestClass] public class CollateralMaintenanceServiceTest { private CollateralMaintenanceService _service; private Mock _mockCollateralDao; public CollateralMaintenanceServiceTest() { _mockCollateralDao = new Mock(); _service = new CollateralMaintenanceService(_mockCollateralDao.Object); } [TestMethod] public void GetPropertyByPropertyNumber_OK() { var searchResponse = new CollateralSearchResponse { WasSuccessful = true }; _mockCollateralDao.Setup(x => x.FindCollateralMaintenanceByPropertyNumber(100000)).Returns(searchResponse).Verifiable(); var result = _service.GetCollateralMaintenanceByPropertyNumber(100000); Assert.IsNotNull(result); Assert.IsTrue((bool)result.WasSuccessful); _mockCollateralDao.Verify(); } [TestMethod] public void GetPropertyByPropertyNumber_Exception() { _mockCollateralDao.Setup(x => x.FindCollateralMaintenanceByPropertyNumber(100000)).Throws(new Exception("Error thrown in unit test.")).Verifiable(); Assert.ThrowsException(() => _service.GetCollateralMaintenanceByPropertyNumber(100000)); _mockCollateralDao.Verify(); } [TestMethod] public void PostCollateralMaintenanceRequest_OK() { var fieldDetails = new UserFieldRequest() { PropertyNumber = 100000, UserFieldCode = "TEST", Value = "TEST" }; var maintenanceResponse = new CollateralMaintenanceResponse() { WasSuccessful = true }; _mockCollateralDao.Setup(x => x.AddCollateralMaintenanceByPropertyNumber(It.IsAny())).Returns(maintenanceResponse).Verifiable(); var result = _service.InsertCollateralMaintenance(fieldDetails); Assert.IsNotNull(result); Assert.IsTrue((bool)result.Success); _mockCollateralDao.Verify(); } [TestMethod] public void PostCollateralMaintenanceRequest_Exception() { var fieldDetails = new UserFieldRequest() { PropertyNumber = 100000, UserFieldCode = "TEST", Value = "TEST" }; _mockCollateralDao.Setup(x => x.AddCollateralMaintenanceByPropertyNumber(It.IsAny())).Throws(new Exception("Error thrown in unit test.")).Verifiable(); Assert.ThrowsException(() => _service.InsertCollateralMaintenance(fieldDetails)); _mockCollateralDao.Verify(); } [TestMethod] public void PutCollateralMaintenanceRequest_OK() { var fieldDetails = new UserFieldRequest() { PropertyNumber = 100000, UserFieldCode = "TEST", Value = "TEST" }; var maintenanceResponse = new CollateralMaintenanceResponse() { WasSuccessful = true }; _mockCollateralDao.Setup(x => x.UpdateCollateralMaintenanceByPropertyNumber(It.IsAny())).Returns(maintenanceResponse).Verifiable(); var result = _service.UpdateCollateralMaintenance(fieldDetails); Assert.IsNotNull(result); Assert.IsTrue((bool)result.Success); _mockCollateralDao.Verify(); } [TestMethod] public void PutCollateralMaintenanceRequest_Exception() { var fieldDetails = new UserFieldRequest() { PropertyNumber = 100000, UserFieldCode = "TEST", Value = "TEST" }; _mockCollateralDao.Setup(x => x.UpdateCollateralMaintenanceByPropertyNumber(It.IsAny())).Throws(new Exception("Error thrown in unit test.")).Verifiable(); Assert.ThrowsException(() => _service.UpdateCollateralMaintenance(fieldDetails)); _mockCollateralDao.Verify(); } } }