public void Does_create_content_from_gzip_byte_array() { byte[] deflateContent; using (var memoryStream = new MemoryStream()) { using (var deflateStream = new GZipStream(memoryStream, CompressionMode.Compress)) using (var writer = new StreamWriter(deflateStream)) { writer.Write("aabbcc"); } deflateContent = memoryStream.ToArray(); } deflateContent.Length.Should().BeGreaterThan(0); var sut = new TraceTransformation(); var traceFile = new TraceFile() { Content = deflateContent, Headers = new Dictionary <string, string>() { ["Content-Encoding"] = "gzip" } }; var result = sut.CreateFromTraceFile(traceFile); result.Content.Headers.ContentLength.Should().Be(6); var content = result.Content.ReadAsStringAsync().Result; content.Should().Be("aabbcc"); }
public HttpResponseMessage CreateFromTraceFile(TraceFile traceFile) { var result = new HttpResponseMessage(); CreateContent(traceFile, result); return(result); }
public void IsContentAvailable_is_true_when_content_length_is_greater_than_zero() { var traceFile = new TraceFile() { Headers = { { "Content-Length", "10" } } }; traceFile.IsContentAvailable.Should().BeTrue(); }
public void IsContentAvailable_is_false_when_content_length_is_zero() { var traceFile = new TraceFile() { Headers = { { "Content-Length", "0" } } }; traceFile.IsContentAvailable.Should().BeFalse(); }
public void IsViewable_is_false_when_content_type_is_not_a_viewable_content_type() { var traceFile = new TraceFile() { Headers = { { "Content-Type", "image/png" } } }; traceFile.IsViewable.Should().BeFalse(); }
public void IsViewable_is_enabled_when_content_type_is_text_plain() { var traceFile = new TraceFile() { Headers = { { "Content-Type", "text/plain" } } }; traceFile.IsViewable.Should().BeTrue(); }
private void CreateContent(TraceFile traceFile, HttpResponseMessage result) { var content = UncompressContentIfNeeded(traceFile); result.Content = new ByteArrayContent(content); result.Content.Headers.ContentLength = content.Length; result.Content.Headers.TryAddWithoutValidation("Content-Type", traceFile.Headers.ContainsKey("Content-Type") ? traceFile.Headers["Content-Type"] : String.Empty); }
public void Does_create_content_from_byte_array() { var sut = new TraceTransformation(); var traceFile = new TraceFile { // Content is abc Content = new byte[] { 97, 98, 99 } }; var result = sut.CreateFromTraceFile(traceFile); result.Content.Headers.ContentLength.Should().Be(3); var content = result.Content.ReadAsStringAsync().Result; content.Should().Be("abc"); }
public void Copies_header_correctly() { var sut = new TraceTransformation(); var traceFile = new TraceFile { Headers = new Dictionary <string, string> { { "Content-Type", "text/plain" }, } }; var result = sut.CreateFromTraceFile(traceFile); result.Content.Headers.ContentLength.Should().Be(0); result.Content.Headers.ContentType.ToString().Should().Be("text/plain"); }
private byte[] UncompressContentIfNeeded(TraceFile traceFile) { if (traceFile.Content == null) { return(new byte[0]); } var contentEncoding = traceFile.Headers.ContainsKey("content-encoding") ? traceFile.Headers["content-encoding"] : String.Empty; if (contentEncoding == "deflate") { return(UncompressDeflate(traceFile.Content)); } if (contentEncoding == "gzip") { return(UncompressGZip(traceFile.Content)); } return(traceFile.Content); }
public async Task <TraceFile> GetTraceFileAsync(string headerFileName) { var path = Path.Combine(_configuration.TraceFileDirectory, headerFileName); var result = new TraceFile { Headers = await _traceFileReader.ReadHeaderFileAsync(path), }; if (result.IsContentAvailable) { // TODO: Please refactor me :( var contentPath = path.Replace(OnPremiseConnectorHeaderExtension, OnPremiseConnectorContentExtension); if (contentPath.Equals(path)) { contentPath = path.Replace(OnPremiseTargetHeaderExtension, OnPremiseTargetContentExtension); } result.Content = await _traceFileReader.ReadContentFileAsync(contentPath); } return(result); }
public async Task <TraceFile> GetTraceFileAsync(string headerFileName) { var path = Path.Combine(_configuration.TraceFileDirectory, headerFileName); var result = new TraceFile() { Headers = await _traceFileReader.ReadHeaderFileAsync(path).ConfigureAwait(false), }; if (result.IsContentAvailable) { // TODO: Please refactor me :( var contentPath = path.Replace(_ON_PREMISE_CONNECTOR_HEADER_EXTENSION, _ON_PREMISE_CONNECTOR_CONTENT_EXTENSION); if (contentPath.Equals(path)) { contentPath = path.Replace(_ON_PREMISE_TARGET_HEADER_EXTENSION, _ON_PREMISE_TARGET_CONTENT_EXTENSION); } result.Content = await _traceFileReader.ReadContentFileAsync(contentPath).ConfigureAwait(false); } return(result); }
public void IsContentAvailable_is_false_when_no_content_length_is_set() { var traceFile = new TraceFile(); traceFile.IsContentAvailable.Should().BeFalse(); }
public void IsViewable_is_false_when_headers_are_not_set() { var traceFile = new TraceFile(); traceFile.IsViewable.Should().BeFalse(); }