예제 #1
0
        public void FileServiceRestoreAsyncTest()
        {
            SQLiteDatabase  db    = new SQLiteDatabase(".\\", nameof(FileServiceRestoreAsyncTest));
            CoreFileService fmSvc = new CoreFileService(new DaoRepository(db));

            fmSvc.ChunkLength = 111299;
            ConsoleLogger logger = new ConsoleLogger();

            logger.AddDetails = false;
            logger.StartLoggingThread();
            FileInfo testDataFile             = new FileInfo("C:\\BamTestData\\TestDataFile.dll");
            ChunkedFileDescriptor chunkedFile = fmSvc.StoreFileChunksInRepo(testDataFile);
            FileInfo          writeTo         = new FileInfo($".\\{nameof(FileServiceRestoreAsyncTest)}_restored.dat");
            DateTime          start           = DateTime.UtcNow;
            ChunkedFileWriter writer          = ChunkedFileWriter.FromFileHash(fmSvc, chunkedFile.FileHash, logger);

            writer.Write(writeTo.FullName).Wait();
            TimeSpan took    = DateTime.UtcNow.Subtract(start);
            FileInfo written = new FileInfo(writeTo.FullName);

            OutLine(took.ToString(), ConsoleColor.Cyan);
            Expect.IsTrue(written.Exists);
            Expect.AreEqual(testDataFile.Md5(), written.Md5(), "file content didn't match");
        }
예제 #2
0
 public ChunkedFileWriter GetFileWriter(string fileHash)
 {
     return(ChunkedFileWriter.FromFileHash(this, fileHash, Logger));
 }