public void ReadFewPortions(int fileSize, int portionSize) { var bytes = TC.GetRandomBytes(fileSize); TC.CreateNewTestArchive(bytes); using (var reader = new UncompressedFileReader(TC.TestArchivePath, portionSize)) { var portionBytes = (reader.ReadNextPortion() as MemoryStream).ToArray(); CollectionAssert.AreEqual( bytes.Take(portionSize).ToArray(), portionBytes); Assert.AreEqual(portionSize, portionBytes.Length); portionBytes = (reader.ReadNextPortion() as MemoryStream).ToArray(); CollectionAssert.AreEqual( bytes.Skip(portionSize).Take(portionSize).ToArray(), portionBytes); Assert.AreEqual(portionSize, portionBytes.Length); portionBytes = (reader.ReadNextPortion() as MemoryStream).ToArray(); CollectionAssert.AreEqual( bytes.Skip(portionSize * 2).Take(portionSize).ToArray(), portionBytes); Assert.AreEqual(portionSize, portionBytes.Length); portionBytes = (reader.ReadNextPortion() as MemoryStream).ToArray(); CollectionAssert.AreEqual( bytes.Skip(portionSize * 3).ToArray(), portionBytes); Assert.AreEqual(fileSize - portionSize * 3, portionBytes.Length); Assert.AreEqual(null, reader.ReadNextPortion()); Assert.AreEqual(null, reader.ReadNextPortion()); Assert.AreEqual(null, reader.ReadNextPortion()); } }
public void ReadFromEmptyFile() { TC.CreateNewTestArchive(); using (var reader = new UncompressedFileReader(TC.TestArchivePath, 100)) { var portion = reader.ReadNextPortion(); Assert.IsNull(portion); } }
static void Main(string[] args) { Console.CancelKeyPress += (sender, ceArgs) => { StatusManager.ProcessIsCanceled = true; ConsoleLogger.WriteDiagnosticInfo(PROCESS_CANCELLED); Environment.Exit(FAILURE_EXIT_CODE); }; try { Validation.CheckInputParameters(args); var inputFile = new FileInfo(args[1]); var threadManager = new ThreadManager(); FileReader fileReader = null; FileWriter fileWriter = null; Archiever archiever = null; OperationType operationType = OperationType.Compress; GZipBlockArchiver compressor = new GZipBlockArchiver(args[1], args[2], threadManager, inputFile.Length); if (args[0] == Dictionary.COMPRESS_COMMAND) { fileReader = new UncompressedFileReader(args[1], compressor.CompressedDataManagers); fileWriter = new CompressedFileWriter(args[2], compressor.DictionaryWritingManager); archiever = new Compressor(compressor.CompressedDataManagers, compressor.DictionaryWritingManager); } else { fileReader = new CompressedFileReader(args[1], compressor.CompressedDataManagers); fileWriter = new DecompressedFileWriter(args[2], compressor.DictionaryWritingManager); archiever = new Decompressor(compressor.CompressedDataManagers, compressor.DictionaryWritingManager); operationType = OperationType.Decompress; } var processResult = compressor.Start(fileReader, archiever, fileWriter, operationType); Console.CursorTop += 1; if (processResult && !StatusManager.ProcessIsCanceled) { ConsoleLogger.WriteSuccessInfo($"{args[2]} : {SUCCESS_CREATED}"); } else { ConsoleLogger.WriteError($"{args[2]}: {FAILURE_CREATED}"); } } catch (Exception ex) { ConsoleLogger.WriteError(FAILURE_CREATED); Console.WriteLine(END_PROCESS); Console.ReadKey(); } }