public IActionResult PostCsvFile([FromForm] CsvInlaadFormViewModel model) { if (!ModelState.IsValid) { return(BadRequest()); } var stream = model.File.OpenReadStream(); IEnumerable <Module> modules = _csvLoader.ReadFromStream(stream); List <CreeerModuleCommandResponse> responses = new List <CreeerModuleCommandResponse>(); foreach (var module in modules) { module.Cohort = model.Cohort; try { var response = _service.SendCreeerModuleCommand(module); responses.Add(response); } catch (DestinationQueueException) { } } return(Ok(responses.Where(r => r.StatusCode == 200).Count())); }
public void PostCsv_ShouldReturn200IfSuccesful() { // Arrange ICsvLoader loader = new CsvLoader(); Mock <IModuleService> service = new Mock <IModuleService>(MockBehavior.Loose); service.Setup(s => s.SendCreeerModuleCommand(It.IsAny <Module>())).Returns(new CreeerModuleCommandResponse() { Message = "xd", StatusCode = 200 }); ModuleController sut = new ModuleController(service.Object, loader); Mock <IFormFile> formFileMock = new Mock <IFormFile>(); using (FileStream fs = File.OpenRead(file2)) { formFileMock.Setup(file => file.OpenReadStream()).Returns(fs); CsvInlaadFormViewModel model = new CsvInlaadFormViewModel() { Cohort = "2017/2018", File = formFileMock.Object }; // Act var result = sut.PostCsvFile(model); // Assert Assert.IsInstanceOfType(result, typeof(OkObjectResult)); } }
public void PostCsv_ShouldCallOpenReadStreamOnce() { // Arrange Mock <ICsvLoader> csvMock = new Mock <ICsvLoader>(MockBehavior.Loose); Mock <IModuleService> service = new Mock <IModuleService>(MockBehavior.Loose); ModuleController sut = new ModuleController(service.Object, csvMock.Object); Mock <IFormFile> formFileMock = new Mock <IFormFile>(); using (FileStream fs = File.OpenRead(file2)) formFileMock.Setup(file => file.OpenReadStream()).Returns(fs); CsvInlaadFormViewModel model = new CsvInlaadFormViewModel() { Cohort = "2017/2018", File = formFileMock.Object }; // Act var result = sut.PostCsvFile(model); // Assert formFileMock.Verify(file => file.OpenReadStream(), Times.Once); }
public void PostCsv_ShouldReturnBadRequestIfModelErrors() { // Arrange Mock <ICsvLoader> csvMock = new Mock <ICsvLoader>(MockBehavior.Loose); Mock <IModuleService> service = new Mock <IModuleService>(MockBehavior.Loose); ModuleController sut = new ModuleController(service.Object, csvMock.Object); Mock <IFormFile> formFileMock = new Mock <IFormFile>(); using (FileStream fs = File.OpenRead(file2)) formFileMock.Setup(file => file.OpenReadStream()).Returns(fs); CsvInlaadFormViewModel model = new CsvInlaadFormViewModel() { Cohort = "2017/2018", File = formFileMock.Object }; // Act sut.ModelState.AddModelError("Een error", "Oh neeeeee"); var result = sut.PostCsvFile(model); // Assert Assert.IsInstanceOfType(result, typeof(BadRequestResult)); }