public void AppliesHeadersFromMethod() { var requestInfo = new RequestInfo(HttpMethod.Get, "foo"); requestInfo.AddMethodHeader("User-Agent", "RestEase"); requestInfo.AddMethodHeader("X-API-Key", "Foo"); var message = new HttpRequestMessage(); this.requester.ApplyHeaders(requestInfo, message); Assert.Equal("User-Agent: RestEase\r\nX-API-Key: Foo\r\n", message.Headers.ToString()); }
public void MultipleHeadersAreAllowed() { var requestInfo = new RequestInfo(HttpMethod.Get, "foo"); requestInfo.AddMethodHeader("User-Agent", "SomethingElse"); requestInfo.AddMethodHeader("User-Agent", "RestEase"); requestInfo.AddMethodHeader("X-API-Key", "Foo"); var message = new HttpRequestMessage(); this.requester.ApplyHeaders(requestInfo, message); Assert.Equal("User-Agent: SomethingElse RestEase\r\nX-API-Key: Foo\r\n", message.Headers.ToString()); }
public void DoesNotAttemptToApplyContentHeadersIfThereIsNoContent() { var requestInfo = new RequestInfo(HttpMethod.Get, "foo"); requestInfo.AddMethodHeader("Content-Type", "text/html"); var message = new HttpRequestMessage(); Assert.Throws <ArgumentException>(() => this.requester.ApplyHeaders(requestInfo, message)); }
public void HeadersFromMethodOverrideHeadersFromProperties() { var requestInfo = new RequestInfo(HttpMethod.Get, "foo"); requestInfo.AddPropertyHeader("This-Will-Stay", "YesIWill", null); requestInfo.AddPropertyHeader("Something", "SomethingElse", null); requestInfo.AddPropertyHeader("User-Agent", "RestEase", null); requestInfo.AddPropertyHeader("X-API-Key", "Foo", null); requestInfo.AddMethodHeader("Something", null); // Remove requestInfo.AddMethodHeader("User-Agent", ""); // Replace with null requestInfo.AddMethodHeader("X-API-Key", "Bar"); // Change value requestInfo.AddMethodHeader("This-Is-New", "YesIAM"); // New value var message = new HttpRequestMessage(); this.requester.ApplyHeaders(requestInfo, message); Assert.Equal("This-Will-Stay: YesIWill\r\nThis-Is-New: YesIAM\r\nUser-Agent: \r\nX-API-Key: Bar\r\n", message.Headers.ToString()); }
public void AppliesContentHeadersToContent() { var requestInfo = new RequestInfo(HttpMethod.Get, "foo"); requestInfo.AddMethodHeader("Content-Type", "text/html"); var message = new HttpRequestMessage(); message.Content = new StringContent("hello"); this.requester.ApplyHeaders(requestInfo, message); Assert.Equal("", message.Headers.ToString()); Assert.Equal("Content-Type: text/html\r\n", message.Content.Headers.ToString()); }
public void SendsBodyHeadersIfBodyIsNull() { var requestInfo = new RequestInfo(HttpMethod.Post, "foo"); requestInfo.AddMethodHeader("Content-Type", "text/plain"); requestInfo.SetBodyParameterInfo <object>(BodySerializationMethod.Default, null); var message = new HttpRequestMessage(); this.requester.ApplyHeaders(requestInfo, message); Assert.NotNull(message.Content); Assert.Equal("text/plain", message.Content.Headers.ContentType.MediaType); }
public void AddsContentIfContentHeaderAppliedToMethodButThereIsNoContent() { var requestInfo = new RequestInfo(HttpMethod.Get, "foo"); requestInfo.AddMethodHeader("Content-Type", "text/html"); var message = new HttpRequestMessage(); this.requester.ApplyHeaders(requestInfo, message); Assert.NotNull(message.Content); Assert.Equal(0, message.Content.Headers.ContentLength); Assert.Equal("text/html", message.Content.Headers.ContentType.ToString()); }
public void HeadersFromParamsCombineWithHeadersFromMethod() { var requestInfo = new RequestInfo(HttpMethod.Get, "foo"); requestInfo.AddMethodHeader("This-Will-Stay", "YesIWill"); requestInfo.AddMethodHeader("Something", "SomethingElse"); requestInfo.AddMethodHeader("User-Agent", "RestEase"); requestInfo.AddMethodHeader("X-API-Key", "Foo"); requestInfo.AddHeaderParameter <string>("Something", null); requestInfo.AddHeaderParameter("User-Agent", ""); requestInfo.AddHeaderParameter("X-API-Key", "Bar"); requestInfo.AddHeaderParameter("This-Is-New", "YesIAm"); var message = new HttpRequestMessage(); this.requester.ApplyHeaders(requestInfo, message); Assert.Equal(new[] { "YesIWill" }, message.Headers.GetValues("This-Will-Stay")); Assert.Equal(new[] { "SomethingElse" }, message.Headers.GetValues("Something")); Assert.Equal(new[] { "RestEase", "" }, message.Headers.GetValues("User-Agent")); Assert.Equal(new[] { "Foo", "Bar" }, message.Headers.GetValues("X-API-Key")); Assert.Equal(new[] { "YesIAm" }, message.Headers.GetValues("This-Is-New")); }
public void DoesNotAttemptToApplyContentHeadersIfThereIsNoContent() { var requestInfo = new RequestInfo(HttpMethod.Get, "foo"); requestInfo.AddMethodHeader("Content-Type", "text/html"); var message = new HttpRequestMessage(); Assert.Throws<ArgumentException>(() => this.requester.ApplyHeaders(requestInfo, message)); }
public void HeadersFromParamsCombineWithHeadersFromMethod() { var requestInfo = new RequestInfo(HttpMethod.Get, "foo"); requestInfo.AddMethodHeader("This-Will-Stay", "YesIWill"); requestInfo.AddMethodHeader("Something", "SomethingElse"); requestInfo.AddMethodHeader("User-Agent", "RestEase"); requestInfo.AddMethodHeader("X-API-Key", "Foo"); requestInfo.AddHeaderParameter<string>("Something", null); requestInfo.AddHeaderParameter("User-Agent", ""); requestInfo.AddHeaderParameter("X-API-Key", "Bar"); requestInfo.AddHeaderParameter("This-Is-New", "YesIAm"); var message = new HttpRequestMessage(); this.requester.ApplyHeaders(requestInfo, message); Assert.Equal(new[] { "YesIWill" }, message.Headers.GetValues("This-Will-Stay")); Assert.Equal(new[] { "SomethingElse" }, message.Headers.GetValues("Something")); Assert.Equal(new[] { "RestEase", "" }, message.Headers.GetValues("User-Agent")); Assert.Equal(new[] { "Foo", "Bar" }, message.Headers.GetValues("X-API-Key")); Assert.Equal(new[] { "YesIAm" }, message.Headers.GetValues("This-Is-New")); }