using Microsoft.VisualStudio.TestTools.UnitTesting; using Moq; using System.Web.Http.Results; using System; using System.Collections.Generic; using LCU.API.Internal.CoreSoapApiWrapper.Controllers; using LCU.API.Internal.CoreSoapApiWrapper.Services; using LCU.API.Internal.CoreSoapApiWrapper.Models.Response; using Cmc = LCU.API.Internal.CoreSoapApiWrapper.Models.Cmc; namespace LCU.API.Internal.CoreSoapApiWrapperTest.Controllers { [TestClass] public class indirectLoanControllerTest { private IndirectLoanController _controller; private Mock _mockIndirectLoanService; public indirectLoanControllerTest() { _mockIndirectLoanService = new Mock(); _controller = new IndirectLoanController(_mockIndirectLoanService.Object); } [TestMethod] public void PutDealerOriginalBalanceRequest_OK() { var request = "19618754052"; var response = new UpdateDealerOriginalBalanceResponse(); var responseList = new List { response }; _mockIndirectLoanService.Setup(x => x.UpdateDealerOriginalBalances(request)).Returns(responseList).Verifiable(); var result = _controller.PutDealerOriginalBalance(request); Assert.IsNotNull(result); var okResult = result as OkNegotiatedContentResult>; Assert.IsNotNull(okResult); _mockIndirectLoanService.Verify(); } [TestMethod] public void PutDealerOriginalBalance_Exception() { var request = "19618754052"; var response = new UpdateDealerOriginalBalanceResponse() { AccountNumber = "19618754052", ErrorMessage = "Error: 000000 This account has failed to update." }; var responseList = new List { response }; _mockIndirectLoanService.Setup(x => x.UpdateDealerOriginalBalances(request)).Throws(new Exception("Error thrown in unit test.")).Verifiable(); var result = _controller.PutDealerOriginalBalance(request); Assert.IsNotNull(result); var badResult = result as BadRequestErrorMessageResult; Assert.IsNotNull(badResult); _mockIndirectLoanService.Verify(); } } }