コード例 #1
0
        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()));
        }
コード例 #2
0
        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));
            }
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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));
        }