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()); }