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