using LCU.API.Internal.CoreSoapApiWrapper.Controllers; using LCU.API.Internal.CoreSoapApiWrapper.CoreSoapUtilities; using LCU.API.Internal.CoreSoapApiWrapper.Models.Requests; using LCU.API.Internal.CoreSoapApiWrapper.Models.Responses; using LCU.API.Internal.CoreSoapApiWrapper.Services; using Microsoft.VisualStudio.TestTools.UnitTesting; using Moq; using System; using System.Web.Http.Results; namespace LCU.API.Internal.CoreSoapApiWrapperTest.Controllers { [TestClass] public class CollateralMaintenanceControllerTest { private CollateralMaintenanceController _controller; private Mock _mockCollateralMaintenanceService; public CollateralMaintenanceControllerTest() { _mockCollateralMaintenanceService = new Mock(); _controller = new CollateralMaintenanceController(_mockCollateralMaintenanceService.Object); } [TestMethod] public void GetPropertyByPropertyNumber_OK() { var searchResponse = new CollateralSearchResponse() { WasSuccessful = true }; _mockCollateralMaintenanceService.Setup(x => x.GetCollateralMaintenanceByPropertyNumber(15000)).Returns(searchResponse).Verifiable(); var result = _controller.Get(15000); Assert.IsNotNull(result); var okResult = result as OkNegotiatedContentResult; Assert.IsNotNull(okResult); Assert.IsTrue((bool)okResult.Content.WasSuccessful); _mockCollateralMaintenanceService.Verify(); } [TestMethod] public void GetPropertyByPropertyNumber_IntIsZero_BadRequest() { _mockCollateralMaintenanceService.Verify(x => x.GetCollateralMaintenanceByPropertyNumber(It.IsAny()), Times.Never); var result = _controller.Get(0); Assert.IsNotNull(result); var okResult = result as BadRequestErrorMessageResult; Assert.IsNotNull(okResult); _mockCollateralMaintenanceService.Verify(x => x.GetCollateralMaintenanceByPropertyNumber(It.IsAny()), Times.Never); } [TestMethod] public void GetPropertyByPropertyNumber_Exception() { _mockCollateralMaintenanceService.Setup(x => x.GetCollateralMaintenanceByPropertyNumber(15000)).Throws(new Exception("Error thrown in unit test.")).Verifiable(); var result = _controller.Get(15000); Assert.IsNotNull(result); var okResult = result as BadRequestErrorMessageResult; Assert.IsNotNull(okResult); _mockCollateralMaintenanceService.Verify(); } [TestMethod] public void PutCollateralMaintenanceRequest_OK() { var fieldRequest = new UserFieldRequest() { PropertyNumber = 11111, UserFieldCode = "TEST", Value = "TEST" }; var maintenanceResponse = new CollateralMaintenanceResponse() { WasSuccessful = true }; _mockCollateralMaintenanceService.Setup(x => x.UpdateCollateralMaintenance(fieldRequest)).Returns(new BasicResponse(maintenanceResponse)).Verifiable(); var result = _controller.PutCollateralMaintenance(fieldRequest); Assert.IsNotNull(result); var okResult = result as OkNegotiatedContentResult; Assert.IsNotNull(okResult); Assert.IsTrue((bool)okResult.Content.Success); _mockCollateralMaintenanceService.Verify(); } [TestMethod] public void PutAccountMaintenanceRequest_Exception() { var fieldRequest = new UserFieldRequest() { PropertyNumber = 11111, UserFieldCode = "TEST", Value = "TEST" }; _mockCollateralMaintenanceService.Setup(x => x.UpdateCollateralMaintenance(fieldRequest)).Throws(new Exception("Error thrown in unit test.")).Verifiable(); var result = _controller.PutCollateralMaintenance(fieldRequest); Assert.IsNotNull(result); var okResult = result as BadRequestErrorMessageResult; Assert.IsNotNull(okResult); _mockCollateralMaintenanceService.Verify(); } [TestMethod] public void PostCollateralMaintenanceRequest_OK() { var fieldRequest = new UserFieldRequest() { PropertyNumber = 11111, UserFieldCode = "TEST", Value = "TEST" }; var maintenanceResponse = new CollateralMaintenanceResponse() { WasSuccessful = true }; _mockCollateralMaintenanceService.Setup(x => x.InsertCollateralMaintenance(fieldRequest)).Returns(new BasicResponse(maintenanceResponse)).Verifiable(); var result = _controller.PostCollateralMaintenance(fieldRequest); Assert.IsNotNull(result); var okResult = result as OkNegotiatedContentResult; Assert.IsNotNull(okResult); Assert.IsTrue((bool)okResult.Content.Success); _mockCollateralMaintenanceService.Verify(); } [TestMethod] public void PostCollateralMaintenanceRequest_Exception() { var fieldRequest = new UserFieldRequest() { PropertyNumber = 11111, UserFieldCode = "TEST", Value = "TEST" }; _mockCollateralMaintenanceService.Setup(x => x.InsertCollateralMaintenance(fieldRequest)).Throws(new Exception("Error thrown in unit test.")).Verifiable(); var result = _controller.PostCollateralMaintenance(fieldRequest); Assert.IsNotNull(result); var okResult = result as BadRequestErrorMessageResult; Assert.IsNotNull(okResult); _mockCollateralMaintenanceService.Verify(); } } }