public async Task ProcessFile_ChangedFile_ApplyDeltaChouldBeCalled() { var configMock = CreateConfigurationMock(); var domainFile = Helper.GetFileModel(); domainFile.Update(new System.IO.FileInfo(System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), "DropLocation", "dummy.txt"))); var eofMessage = new EofMessage(Guid.Empty, 15); var databaseMock = new Mock <IDatabase>(); var fileChunkRepositoryMock = new Mock <IFileChunkRepository>(); fileChunkRepositoryMock.Setup(x => x.GetFileChunkData(It.IsAny <Guid>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <IDatabase>())) .Returns(() => Task.FromResult(Result <ICollection <byte[]> > .Success(new List <byte[]>()))); fileChunkRepositoryMock.Setup(x => x.DeleteChunksForFile(It.IsAny <Guid>(), It.IsAny <IDatabase>())) .Returns(() => Task.FromResult(Result.Success())); var fileRepositoryMock = new Mock <IFileRepository>(); fileRepositoryMock.Setup(x => x.GetAllVersionsOfFile(It.IsAny <File>(), It.IsAny <IDatabase>())) .Returns(() => Task.FromResult(Result <ICollection <File> > .Success(new List <File>()))); fileRepositoryMock.Setup(x => x.UpdateFileAsAssembled(It.IsAny <Guid>(), It.IsAny <DateTime>(), It.IsAny <byte[]>(), It.IsAny <IDatabase>())) .Returns(() => Task.FromResult(Result.Success())); var fileAssemblerService = new FileAssemblerService(databaseMock.Object, fileRepositoryMock.Object, fileChunkRepositoryMock.Object); await fileAssemblerService.ProcessFile(domainFile, eofMessage); Assert.IsFalse(domainFile.IsNew()); }
public async Task ProcessFile_NewFile_QueryToGetChunkShouldGetCorrectParameters() { var configMock = CreateConfigurationMock(); var domainFile = Helper.GetFileModel(); var eofMessage = new EofMessage(Guid.Empty, 15); var databaseMock = new Mock <IDatabase>(); var toSkipSum = 0; var toTakeSum = 0; var fileChunkRepositoryMock = new Mock <IFileChunkRepository>(); fileChunkRepositoryMock.Setup(x => x.GetFileChunkData(It.IsAny <Guid>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <IDatabase>())) .Returns((Guid x, int y, int z, IDatabase d) => { toSkipSum += y; toTakeSum += z; return(Task.FromResult(Result <ICollection <byte[]> > .Success(new List <byte[]>()))); }); fileChunkRepositoryMock.Setup(x => x.DeleteChunksForFile(It.IsAny <Guid>(), It.IsAny <IDatabase>())) .Returns(() => Task.FromResult(Result.Success())); var fileRepositoryMock = new Mock <IFileRepository>(); fileRepositoryMock.Setup(x => x.GetAllVersionsOfFile(It.IsAny <File>(), It.IsAny <IDatabase>())) .Returns(() => Task.FromResult(Result <ICollection <File> > .Success(new List <File>()))); fileRepositoryMock.Setup(x => x.UpdateFileAsAssembled(It.IsAny <Guid>(), It.IsAny <DateTime>(), It.IsAny <byte[]>(), It.IsAny <IDatabase>())) .Returns(() => Task.FromResult(Result.Success())); var fileAssemblerService = new FileAssemblerService(databaseMock.Object, fileRepositoryMock.Object, fileChunkRepositoryMock.Object); await fileAssemblerService.ProcessFile(domainFile, eofMessage); Assert.AreEqual(11, toSkipSum); }
public async Task ProcessFile_NewFile_FinalizationShouldBeCalled() { var configMock = CreateConfigurationMock(); var domainFile = Helper.GetFileModel(); var eofMessage = new EofMessage(Guid.Empty, 15); var databaseMock = new Mock <IDatabase>(); var fileChunkRepositoryMock = new Mock <IFileChunkRepository>(); fileChunkRepositoryMock.Setup(x => x.GetFileChunkData(It.IsAny <Guid>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <IDatabase>())) .Returns(() => Task.FromResult(Result <ICollection <byte[]> > .Success(new List <byte[]>()))); var fileChunkDeleteCalled = false; fileChunkRepositoryMock.Setup(x => x.DeleteChunksForFile(It.IsAny <Guid>(), It.IsAny <IDatabase>())) .Callback(() => fileChunkDeleteCalled = true) .Returns(() => Task.FromResult(Result.Success())); var fileRepositoryMock = new Mock <IFileRepository>(); fileRepositoryMock.Setup(x => x.GetAllVersionsOfFile(It.IsAny <File>(), It.IsAny <IDatabase>())) .Returns(() => Task.FromResult(Result <ICollection <File> > .Success(new List <File>()))); var updateFileCalled = false; fileRepositoryMock.Setup(x => x.UpdateFileAsAssembled(It.IsAny <Guid>(), It.IsAny <DateTime>(), It.IsAny <byte[]>(), It.IsAny <IDatabase>())) .Callback(() => updateFileCalled = true) .Returns(() => Task.FromResult(Result.Success())); var fileAssemblerService = new FileAssemblerService(databaseMock.Object, fileRepositoryMock.Object, fileChunkRepositoryMock.Object); await fileAssemblerService.ProcessFile(domainFile, eofMessage); Assert.IsTrue(updateFileCalled); Assert.IsTrue(fileChunkDeleteCalled); }