public async Task PostAsync_Test() { var fileMock = new Mock <IFormFile>(); var ms = new MemoryStream(); var writer = new StreamWriter(ms); writer.Write("Mock file content"); writer.Flush(); ms.Position = 0; fileMock.Setup(x => x.OpenReadStream()).Returns(ms); fileMock.Setup(x => x.FileName).Returns("Test.pdf"); fileMock.Setup(x => x.Length).Returns(ms.Length); fileMock.Setup(x => x.CopyToAsync(It.IsAny <Stream>(), It.IsAny <CancellationToken>())) .Returns((Stream stream, CancellationToken token) => ms.CopyToAsync(stream)); var beforeCount = await _context.DmsFiles.CountAsync(); var dmsFileService = new DmsFileService(_context); var dmsContorller = new PdfController(dmsFileService); //Act var result = await dmsContorller.PostAsync(fileMock.Object) as ObjectResult; //Assert var afterCount = await _context.DmsFiles.CountAsync(); Assert.IsInstanceOf <IActionResult>(result); Assert.IsTrue(afterCount - beforeCount == 1); }
public async Task AddFileAsync_Test(IFormFile mockFile, int expectedResultStatusCode, string expectedResultValue, bool fileCheckResult) { var mockFileService = new Mock <IDmsFileService>(); mockFileService.Setup(x => x.CheckFileExistAsync(It.IsAny <string>())) .Returns(Task.FromResult <bool>(fileCheckResult)) .Verifiable(); mockFileService.Setup(x => x.AddFileAsync(It.IsAny <DmsFile>())) .Returns(Task.FromResult <int>(1)) .Verifiable(); var controller = new PdfController(mockFileService.Object); //Act var result = await controller.PostAsync(mockFile) as ObjectResult; //Assert Assert.IsInstanceOf <IActionResult>(result); Assert.AreEqual(expectedResultStatusCode, result.StatusCode); Assert.AreEqual(expectedResultValue, result.Value.ToString()); }