public void CompressDecompressProcessorsTest(int bufferSize)
        {
            var rnd            = new Random();
            var originalBuffer = new byte[bufferSize];

            rnd.NextBytes(originalBuffer);

            byte[] processed = null;

            var compressor = new CompressApplicationProcessor(new GZipOperation(new CompressorDataTransform()));

            using (var source = new MemoryStream(originalBuffer))
                using (var target = new MemoryStream())
                {
                    compressor.Process(source, target);
                    processed = target.ToArray();
                }

            byte[] decompressed = null;

            var decompressor = new DecompressApplicationProcessor(new GZipOperation(new DecompressorDataTransform()));

            using (var source = new MemoryStream(processed))
                using (var target = new MemoryStream())
                {
                    decompressor.Process(source, target);
                    decompressed = target.ToArray();
                }


            Assert.AreEqual(originalBuffer.Length, decompressed.Length);
            Assert.IsTrue(originalBuffer.SequenceEqual(decompressed));
        }
        private void Decompress(string source, string target)
        {
            try
            {
                using var sourceStream = File.OpenRead(source);
                using var targetStream = File.Open(target, FileMode.Create);

                var operation = new GZipOperation(new DecompressorDataTransform());
                var processor = new DecompressApplicationProcessor(operation);

                processor.Process(sourceStream, targetStream);
            }
            catch (Exception e)
            {
                _logger.Exception(e);
            }
        }