using LCU.API.Collections.RepoApi.Services.AutoIms; using LCU.Shared.Collections.RepoApiLib.Models; using Moq; using Xunit; using AuctionAssignment = LCU.Shared.Collections.RepoApiLib.Models.AuctionAssignment; namespace LCU.API.Collections.RepoApiTests.Processor { public class AutoImsAuctionProcessorServiceTest { private readonly Mock mockAuctionProcessorDao; private readonly IAutoImsAuctionProcessorService autoImsAuctionProcessorService; public AutoImsAuctionProcessorServiceTest() { mockAuctionProcessorDao = new Mock(); autoImsAuctionProcessorService = new AutoImsAuctionProcessorService( mockAuctionProcessorDao.Object); } [Fact] public void Basic_Construct_Test() { Assert.NotNull(autoImsAuctionProcessorService); } [Fact] public void ImportSingleAutoImsAuction_NO_VIN_Test() { var singleItem = new ImsAutoFileData() { VIN = "1FMCU93G-19KB115 " }; Assert.NotNull(autoImsAuctionProcessorService); var result = autoImsAuctionProcessorService.ImportSingleAutoImsAuction(singleItem); Assert.NotNull(result); Assert.False(result.Success); } [Fact] public void ImportSingleAutoImsAuction_Update_Test() { var incomingAutoFile = new ImsAutoFileData() { VIN = "1FMCU93G19KB11152", AuctionCustomerNo = "12345-678", AuctionAssignmentId = 99 }; var repoAccount = new RepoAccount() { RepoId = 1, PrimaryIndividualId = "12345", LoanNo = 678 }; var auctionAssignment = new AuctionAssignment() { ID = 99, AutoIMS = new ImsAutoFileData() { } }; var existingAutoFile = auctionAssignment.AutoIMS; mockAuctionProcessorDao .Setup(x => x.FindRepoForImsAuctionItem(incomingAutoFile)) .Returns(repoAccount); mockAuctionProcessorDao.Setup(x => x.FindAuctionAssignment(incomingAutoFile)) .Returns(auctionAssignment); mockAuctionProcessorDao.Setup(x => x.FindImsAuctionFileData(auctionAssignment.ID, incomingAutoFile.AuctionCustomerNo, incomingAutoFile.VIN)) .Returns( (ImsAutoFileData)null); mockAuctionProcessorDao.Setup(x => x.FindByAuctionAssignmentIdAsync(auctionAssignment.ID)) .Returns(existingAutoFile); mockAuctionProcessorDao.Setup( x =>x.UpdateExistingFile(existingAutoFile,incomingAutoFile)).Returns(incomingAutoFile); mockAuctionProcessorDao.Setup( x =>x.Add(existingAutoFile)).Verifiable(); Assert.NotNull(autoImsAuctionProcessorService); var result = autoImsAuctionProcessorService.ImportSingleAutoImsAuction(incomingAutoFile); Assert.NotNull(result); } } }