Exemple #1
0
        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());
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }