static int Main(string[] args) { var logger = new CompositeLogger(); var fileLog = new FileLogger("GZipTest.log"); logger.AddChild(fileLog); logger.AddChild(new ConsoleLogger()); try { var argsParser = new ArgsParser(logger); var param = argsParser.ParsParams(args); if (param == null) { return(1); } _sourceFileNameProvider = new FileNameProviderStub(param.SourceFileName); _targetFileNameProvider = new FileNameProviderStub(param.TargetFileName); var systemInfoProvider = new SystemInfoProvider(); var appl = new Appl(logger, systemInfoProvider); switch (param.ApplMode) { case ApplMode.Compress: var compressStrategy = new SmartCompressStrategy(systemInfoProvider); appl.ExecuteCompress(compressStrategy, _sourceFileNameProvider, _targetFileNameProvider); break; case ApplMode.Decompress: var decompressStrategy = new SmartDecompressStrategy(systemInfoProvider); appl.ExecuteDecompress(decompressStrategy, _sourceFileNameProvider, _targetFileNameProvider); break; } return(0); } catch (Exception ex) { logger.Add("Произошла ошибка. Выполнение программы будет завершено\r\n" + ex.Message + "\r\n" + ex.StackTrace); AddInnerExceptionToLog(ex, logger); return(1); } finally { logger.Close(); } }
private void TestCompressDecompressCheck(string sourceFileName, string compressedFileName, string decompressedNewFileName) { // prepare if (File.Exists(compressedFileName)) { File.Delete(compressedFileName); } Assert.IsFalse(File.Exists(compressedFileName), "Не удалось удалить архив перед началом теста"); if (File.Exists(decompressedNewFileName)) { File.Delete(decompressedNewFileName); } Assert.IsFalse(File.Exists(decompressedNewFileName), "Не удалось удалить разархивированный файл перед началом теста"); // init var logger = new LoggerDummy(); var appl = new Appl(logger, new SystemInfoProvider()); var source = new FileNameProviderStub(sourceFileName); var archive = new FileNameProviderStub(compressedFileName); var systemInfoProvider = new SystemInfoProvider(); var strategy = new SmartCompressStrategy(systemInfoProvider); appl.ExecuteCompress(strategy, source, archive); Assert.IsTrue(File.Exists(compressedFileName), "Файл архива не обнаружен после архивации"); var decompress = new FileNameProviderStub(decompressedNewFileName); var decompressStrategy = new DecompressStrategyStub(1); appl.ExecuteDecompress(decompressStrategy, archive, decompress); Assert.IsTrue(File.Exists(compressedFileName), "Файл разархивированный не обнаружен после разархивации"); IsFilesEquals(sourceFileName, decompressedNewFileName); }