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); } }
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); }