コード例 #1
0
        private byte[] generateResponseBody(ResponseCompression compressionType)
        {
            using (var memoryStream = new MemoryStream(8092))
            {
                switch (compressionType)
                {
                case ResponseCompression.None:
                    var none = Encoding.UTF8.GetBytes(_minified);
                    memoryStream.Write(none, 0, none.Length);
                    break;

                case ResponseCompression.Gzip:
                    using (var writer = new GZipStream(memoryStream, CompressionMode.Compress))
                    {
                        var bytes = Encoding.UTF8.GetBytes(_minified);
                        writer.Write(bytes, 0, bytes.Length);
                        writer.Flush();
                    }
                    break;

                case ResponseCompression.Deflate:
                    using (var writer = new DeflateStream(memoryStream, CompressionMode.Compress))
                    {
                        var bytes = Encoding.UTF8.GetBytes(_minified);
                        writer.Write(bytes, 0, bytes.Length);
                        writer.Flush();
                    }
                    break;

                default:
                    throw new ArgumentOutOfRangeException("compressionType");
                }

                var array = memoryStream.ToArray();

                return(array);
            }
        }
コード例 #2
0
 public void GetResponseBodyBytes_CorrectlyCompressesCombination(ResponseCompression compression, string content, byte[] expected)
 {
     var combination = new IncludeCombination(IncludeType.Js, new[] { "foo.js" }, content, Clock.UtcNow, new JsTypeElement());
     byte[] result = null;
     Assert.DoesNotThrow(() => result = combination.Bytes[compression]);
     Assert.Equal(expected, result);
 }