Esempio n. 1
0
        public async Task <IActionResult> UploadCategoryImage(CategoryUpdateImageViewModel updateCategoryModel)
        {
            var imageInMemory = new MemoryStream();

            updateCategoryModel.CategoryImage.CopyTo(imageInMemory);

            await _categoriesService.UpdateCategoryImageAsync
                (updateCategoryModel.CategoryId, imageInMemory.ToArray());

            return(RedirectToAction("Index"));
        }
        public async Task UploadCategoryImage_CorrectData_ReturnViewWithModel()
        {
            var mockRepo   = new Mock <ICategoriesService>();
            var mockedFile = new Mock <IFormFile>();

            var content  = "Hello World from a Fake File";
            var fileName = "test.pdf";
            var ms       = new MemoryStream();
            var writer   = new StreamWriter(ms);

            writer.Write(content);
            writer.Flush();
            ms.Position = 0;
            mockedFile.Setup(_ => _.OpenReadStream()).Returns(ms);
            mockedFile.Setup(_ => _.FileName).Returns(fileName);
            mockedFile.Setup(_ => _.Length).Returns(ms.Length);

            var editedCategory = new CategoryUpdateImageViewModel()
            {
                CategoryId    = fixture.Create <int>(),
                CategoryImage = mockedFile.Object
            };

            var controller = new CategoriesController(mockRepo.Object, _mapper);

            var result = await controller.UploadCategoryImage(editedCategory);

            var redirectResult = Assert.IsType <RedirectToActionResult>(result);

            Assert.Equal("Index", redirectResult.ActionName);

            mockRepo.Verify(mock =>
                            mock.UpdateCategoryImageAsync(
                                It.Is <int>(v => v == editedCategory.CategoryId),
                                It.IsAny <byte[]>()
                                ), Times.Once());
        }