[Fact] public async Task UploadBattersTest() { var returnData = new List <BhqBattingStats> { new BhqBattingStats() }; var section = new Mock <IConfigurationSection>(); section.Setup(o => o.Value).Returns("batters.csv"); var config = new Mock <IConfiguration>(); config.Setup(o => o.GetSection("CsvFiles:BatterFile")).Returns(section.Object); var uploadService = new Mock <ICsvFileUploaderService>(); uploadService.Setup(o => o.UploadFile(It.IsAny <FormFileReader>(), "batters.csv")).Returns(Task.FromResult(0)); var readService = new Mock <ICsvFileReaderService>(); readService.Setup(o => o.ReadCsvData <BhqBattingStats>(It.IsAny <FormFileReader>())).Returns(Task.FromResult(returnData)); var request = new Mock <HttpRequest>(); var httpContext = new Mock <HttpContext>(); httpContext.SetupGet(a => a.Request).Returns(request.Object); var controller = new BhqStatsController(readService.Object, uploadService.Object, config.Object); controller.ControllerContext = new ControllerContext() { HttpContext = httpContext.Object }; await controller.UploadBatterFile(); readService.VerifyAll(); uploadService.VerifyAll(); }
[Fact] public async Task UploadBattersExceptionTest() { var readService = new Mock <ICsvFileReaderService>(); readService.Setup(o => o.ReadCsvData <BhqBattingStats>(It.IsAny <FormFileReader>())).ThrowsAsync(new Exception("Bad Request")); var request = new Mock <HttpRequest>().Object; var httpContext = new Mock <HttpContext>(); httpContext.SetupGet(a => a.Request).Returns(request); var controller = new BhqStatsController(readService.Object, null, null); controller.ControllerContext = new ControllerContext() { HttpContext = httpContext.Object }; await Assert.ThrowsAsync <BadRequestException>(() => controller.UploadBatterFile()); readService.VerifyAll(); }