public async Task GetFileAsync_Test() { var fileName = "Test.pdf"; var dmsFile = new DmsFile { Id = 1, Name = fileName, FileContent = new byte[] { 1, 2, 3 } }; var mockFileService = new Mock <IDmsFileService>(); mockFileService.Setup(x => x.CheckFileExistAsync(It.IsAny <string>())) .Returns(Task.FromResult <bool>(true)) .Verifiable(); mockFileService.Setup(x => x.GetFileAsync(fileName)) .Returns(Task.FromResult <DmsFile>(dmsFile)) .Verifiable(); var contorller = new PdfController(mockFileService.Object); //Act var result = await contorller.GetFileAsync(fileName); //Assert Assert.IsInstanceOf <IActionResult>(result); }
public async Task <int> AddFileAsync(DmsFile dmsFile) { _context.DmsFiles.Add(dmsFile); await _context.SaveChangesAsync(); return(dmsFile.Id); }
public void Setup() { _options = new DbContextOptionsBuilder <DmsFileContext>() .UseInMemoryDatabase(databaseName: "Mock Dms File 1") .Options; var context = new DmsFileContext(_options); _mockFileItem = new DmsFile { Id = 1, Name = "MockFile1.pdf" }; context.DmsFiles.Add(_mockFileItem); context.DmsFiles.Add(new DmsFile { Id = 2, Name = "MockDeleteFile1.pdf" }); context.SaveChanges(); }
public async Task AddFileAsync_Test() { var testItem = new DmsFile { Id = 0, Name = "Test File Name", FileContent = new byte[] { 1, 2, 3, 4 } }; var context = new DmsFileContext(_options); var beforeCount = await context.DmsFiles.CountAsync(); IDmsFileService service = new DmsFileService(context); var result = await service.AddFileAsync(testItem); var afterCount = await context.DmsFiles.CountAsync(); Assert.IsTrue(result != 0); Assert.IsTrue(afterCount - beforeCount == 1); }
public async Task <IActionResult> PostAsync([FromBody] IFormFile file) { if (file == null) { return(BadRequest("Invalid input file.")); } if (file.Length > 5000000) { return(BadRequest("File too large. File must be under 5Mb size.")); } var extension = Path.GetExtension(file.FileName); if (extension.ToLower() != ".pdf") { return(BadRequest($"Invalid file type: {extension}")); } var fileExist = await _dmsFileService.CheckFileExistAsync(file.FileName); if (fileExist) { return(BadRequest($"File already exists: {file.FileName}")); } using var ms = new MemoryStream(); await file.CopyToAsync(ms); var dmsFile = new DmsFile { Name = file.FileName, FileSize = file.Length, Location = $"http://localhost:49826/api/pdf/{file.FileName}", // TODO make base URL configurable FileContent = ms.ToArray() }; return(Ok(await _dmsFileService.AddFileAsync(dmsFile))); }