コード例 #1
0
        public void SmallCanCompressAndDecompressUsingStreamTransformer()
        {
            var str = "This is a string to compress and uncompress";
            var data = Encoding.UTF8.GetBytes(str);

            byte[] compData;
            using (var cms = new AsyncMemoryStream())
            using (var compressed = cms.AddTransformer(_compressor.CompressWriteStream))
            {
                compressed.WriteAsync(data, 0, data.Length, CancellationToken.None).Wait();
                compressed.Complete(CancellationToken.None).Wait();

                compData = cms.ToArray();
            }

            byte[] decData;
            using (var reader = new ReadStreamWrapper(new MemoryStream(compData)))
            using (var decompressed = reader.AddTransformer(_compressor.DecompressReadStream))
            {
                decData = decompressed.ReadBytes().Result;
            }

            var decStr = Encoding.UTF8.GetString(decData, 0, decData.Length);
            Assert.AreEqual(str, decStr);
        }
コード例 #2
0
        public void LargeCanCompressAndDecompressUsingStreamTransformer()
        {
            var data = RandomData(1);

            byte[] compData;
            using (var cms = new AsyncMemoryStream())
            using (var compressed = cms.AddTransformer(_compressor.CompressWriteStream))
            {
                compressed.WriteAsync(data, 0, data.Length, CancellationToken.None).Wait();
                compressed.Complete(CancellationToken.None).Wait();

                compData = cms.ToArray();
            }

            byte[] newData;
            using (var reader = new ReadStreamWrapper(new MemoryStream(compData)))
            using (var decompressed = reader.AddTransformer(_compressor.DecompressReadStream))
            {
                newData = decompressed.ReadBytes().Result;
            }

            Assert.IsTrue(data.SequenceEqual(newData));
        }