From a4bb0dd13b3ab4c9664a8bff4566706572828b5b Mon Sep 17 00:00:00 2001 From: Tom Pallister Date: Sat, 3 Feb 2018 09:02:01 +0000 Subject: [PATCH 1/3] fix for #214 and some tests for the class it was in but not for the error (cant be arsed to test as have to spin up IIS) (#218) --- src/Ocelot/Responder/HttpContextResponder.cs | 4 +- test/Ocelot.UnitTests/Ocelot.UnitTests.csproj | 4 -- .../Responder/HttpContextResponderTests.cs | 64 +++++++++++++++++++ 3 files changed, 66 insertions(+), 6 deletions(-) create mode 100644 test/Ocelot.UnitTests/Responder/HttpContextResponderTests.cs diff --git a/src/Ocelot/Responder/HttpContextResponder.cs b/src/Ocelot/Responder/HttpContextResponder.cs index 76e8956a..fbfbc6c2 100644 --- a/src/Ocelot/Responder/HttpContextResponder.cs +++ b/src/Ocelot/Responder/HttpContextResponder.cs @@ -55,7 +55,7 @@ namespace Ocelot.Responder using (Stream stream = new MemoryStream(content)) { - if (response.StatusCode != HttpStatusCode.NotModified) + if (response.StatusCode != HttpStatusCode.NotModified && context.Response.ContentLength != 0) { await stream.CopyToAsync(context.Response.Body); } @@ -79,4 +79,4 @@ namespace Ocelot.Responder } } } -} \ No newline at end of file +} diff --git a/test/Ocelot.UnitTests/Ocelot.UnitTests.csproj b/test/Ocelot.UnitTests/Ocelot.UnitTests.csproj index 9c0f0a4f..7993644f 100644 --- a/test/Ocelot.UnitTests/Ocelot.UnitTests.csproj +++ b/test/Ocelot.UnitTests/Ocelot.UnitTests.csproj @@ -19,10 +19,6 @@ True - - - - diff --git a/test/Ocelot.UnitTests/Responder/HttpContextResponderTests.cs b/test/Ocelot.UnitTests/Responder/HttpContextResponderTests.cs new file mode 100644 index 00000000..ae465774 --- /dev/null +++ b/test/Ocelot.UnitTests/Responder/HttpContextResponderTests.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http; +using System.Text; +using Microsoft.AspNetCore.Http; +using Ocelot.Headers; +using Ocelot.Responder; +using Shouldly; +using Xunit; + +namespace Ocelot.UnitTests.Responder +{ + public class HttpContextResponderTests + { + private readonly HttpContextResponder _responder; + private RemoveOutputHeaders _removeOutputHeaders; + + public HttpContextResponderTests() + { + _removeOutputHeaders = new RemoveOutputHeaders(); + _responder = new HttpContextResponder(_removeOutputHeaders); + } + + [Fact] + public void should_remove_transfer_encoding_header() + { + var httpContext = new DefaultHttpContext(); + var httpResponseMessage = new HttpResponseMessage {Content = new StringContent("")}; + httpResponseMessage.Headers.Add("Transfer-Encoding", "woop"); + _responder.SetResponseOnHttpContext(httpContext, httpResponseMessage).GetAwaiter().GetResult(); + var header = httpContext.Response.Headers["Transfer-Encoding"]; + header.ShouldBeEmpty(); + } + + [Fact] + public void should_have_content_length() + { + var httpContext = new DefaultHttpContext(); + var httpResponseMessage = new HttpResponseMessage { Content = new StringContent("test") }; + _responder.SetResponseOnHttpContext(httpContext, httpResponseMessage).GetAwaiter().GetResult(); + var header = httpContext.Response.Headers["Content-Length"]; + header.First().ShouldBe("4"); + } + + [Fact] + public void should_add_header() + { + var httpContext = new DefaultHttpContext(); + var httpResponseMessage = new HttpResponseMessage { Content = new StringContent("test") }; + httpResponseMessage.Headers.Add("test", "test"); + _responder.SetResponseOnHttpContext(httpContext, httpResponseMessage).GetAwaiter().GetResult(); + var header = httpContext.Response.Headers["test"]; + header.First().ShouldBe("test"); + } + + [Fact] + public void should_call_without_exception() + { + var httpContext = new DefaultHttpContext(); + _responder.SetErrorResponseOnContext(httpContext, 500); + } + } +} From d3e53062a22cec4c0eff88c532171e88927c0917 Mon Sep 17 00:00:00 2001 From: Tom Pallister Date: Sat, 3 Feb 2018 10:46:18 +0000 Subject: [PATCH 2/3] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index dd2569d4..7145dc38 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,9 @@ [![Build status](https://ci.appveyor.com/api/projects/status/r6sv51qx36sis1je?svg=true)](https://ci.appveyor.com/project/TomPallister/ocelot-fcfpb) +[![Windows Build history](https://buildstats.info/appveyor/chart/TomPallister/ocelot-fcfpb?branch=develop&includeBuildsFromPullRequest=false)](https://ci.appveyor.com/project/TomPallister/ocelot-fcfpb/history?branch=develop) + + [![Coverage Status](https://coveralls.io/repos/github/TomPallister/Ocelot/badge.svg?branch=develop)](https://coveralls.io/github/TomPallister/Ocelot?branch=develop) Ocelot is a .NET Api Gateway. This project is aimed at people using .NET running From 35fff08f48b378a6ac58323e22ed6c0940933115 Mon Sep 17 00:00:00 2001 From: Tom Gardham-Pallister Date: Sat, 3 Feb 2018 11:00:36 +0000 Subject: [PATCH 3/3] checking what happens on app veyor --- build.cake | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build.cake b/build.cake index db4f168c..af2f9364 100644 --- a/build.cake +++ b/build.cake @@ -421,6 +421,8 @@ private void PublishPackages(ConvertableDirectoryPath packagesDir, ConvertableFi var codePackage = packagesDir + File(artifacts["nuget"]); Information("Pushing package " + codePackage); + + Information("Calling NuGetPush"); NuGetPush( codePackage,