From 4b36dd1c653160ef1858122c04681d8da716bbed Mon Sep 17 00:00:00 2001 From: Chandler Davidson Date: Wed, 10 Jul 2019 12:52:51 -0500 Subject: [PATCH] Add WithHeaders methods - New WithHeaders methods accept an IEnumerable - Added tests --- src/Nancy/ResponseExtensions.cs | 24 +++++++++++++ .../Unit/ResponseExtensionsFixture.cs | 36 ++++++++++++++++++- 2 files changed, 59 insertions(+), 1 deletion(-) diff --git a/src/Nancy/ResponseExtensions.cs b/src/Nancy/ResponseExtensions.cs index ec0ed4eca6..6f69d01bcf 100644 --- a/src/Nancy/ResponseExtensions.cs +++ b/src/Nancy/ResponseExtensions.cs @@ -143,6 +143,30 @@ public static Response WithHeaders(this Response response, params Tuple + /// Adds headers to the response using anonymous types + /// + /// Enumerable of headers - each header should be a Tuple with two string elements + /// for header name and header value + /// + /// Modified response + public static Response WithHeaders(this Response response, IEnumerable> headers) + { + return response.WithHeaders(headers.ToArray()); + } + + /// + /// Adds headers to the response using anonymous types + /// + /// Enumerable of headers - each header should be a Tuple with two string elements + /// for header name and header value + /// + /// Modified response + public static Response WithHeaders(this Response response, IEnumerable headers) + { + return response.WithHeaders(headers.ToArray()); + } + /// /// Sets the content type of the response /// diff --git a/test/Nancy.Tests/Unit/ResponseExtensionsFixture.cs b/test/Nancy.Tests/Unit/ResponseExtensionsFixture.cs index bfe09d92bf..8c1c250962 100644 --- a/test/Nancy.Tests/Unit/ResponseExtensionsFixture.cs +++ b/test/Nancy.Tests/Unit/ResponseExtensionsFixture.cs @@ -133,6 +133,40 @@ public void Should_be_able_to_supply_withHeaders_headers_as_anonymous_types() result.Headers["test2"].ShouldEqual("test2value"); } + [Fact] + public void Should_be_able_to_add_headers_as_enumerable() + { + var headers = new List> + { + new Tuple("test", "testvalue"), + new Tuple("test2", "test2value") + }; + + var response = new Response(); + var result = response.WithHeaders(headers); + + result.Headers.ShouldNotBeNull(); + result.Headers["test"].ShouldEqual("testvalue"); + result.Headers["test2"].ShouldEqual("test2value"); + } + + [Fact] + public void Should_be_able_to_add_headers_as_enumerable_of_anonymous() + { + var headers = new List + { + new { Header = "test", Value = "testvalue" }, + new { Header = "test2", Value = "test2value" } + }; + + var response = new Response(); + var result = response.WithHeaders(headers); + + result.Headers.ShouldNotBeNull(); + result.Headers["test"].ShouldEqual("testvalue"); + result.Headers["test2"].ShouldEqual("test2value"); + } + [Fact] public void Should_be_able_to_chain_setting_single_headers() { @@ -193,4 +227,4 @@ private string GetFilePath() #endif } } -} \ No newline at end of file +}