public void Headers_Response() { HttpRequestMessage message = new HttpRequestMessage(); HttpRequestHeaders headers = message.Headers; headers.Add("Age", "vv"); Assert.AreEqual("vv", headers.GetValues("Age").First(), "#1"); headers.Clear(); headers.AddWithoutValidation("Age", "vv"); Assert.AreEqual("vv", headers.GetValues("Age").First(), "#2"); Assert.AreEqual("Method: GET, RequestUri: '<null>', Version: 1.1, Content: <null>, Headers:\r\n{\r\nAge: vv\r\n}", message.ToString(), "#3"); }
public void Headers_Invalid() { HttpRequestMessage message = new HttpRequestMessage(); HttpRequestHeaders headers = message.Headers; try { headers.Add("Allow", ""); Assert.Fail("#1"); } catch (InvalidOperationException) { } try { headers.Add(null, ""); Assert.Fail("#2"); } catch (ArgumentException) { } try { headers.Add("mm", null as IEnumerable <string>); Assert.Fail("#2b"); } catch (ArgumentNullException) { } try { headers.Add("accept", "audio"); Assert.Fail("#2c"); } catch (FormatException) { } try { headers.AddWithoutValidation("Allow", ""); Assert.Fail("#3"); } catch (InvalidOperationException) { } try { headers.AddWithoutValidation(null, ""); Assert.Fail("#4"); } catch (ArgumentException) { } try { headers.Contains(null); Assert.Fail("#5"); } catch (ArgumentException) { } try { headers.GetValues(null); Assert.Fail("#6a"); } catch (ArgumentException) { } try { headers.GetValues("bbbb"); Assert.Fail("#6b"); } catch (InvalidOperationException) { } try { headers.Add("from", new[] { "*****@*****.**", "*****@*****.**" }); Assert.Fail("#7a"); } catch (FormatException) { } headers.AddWithoutValidation("from", "*****@*****.**"); try { headers.Add("from", "*****@*****.**"); Assert.Fail("#7b"); } catch (FormatException) { } }
public void Header_BaseImplementation() { HttpRequestMessage message = new HttpRequestMessage(); HttpRequestHeaders headers = message.Headers; headers.Add("a", "a-value"); headers.Add("b", new List <string> { "v1", "v2" }); headers.Add("c", null as string); headers.Add("d", new string[0]); headers.AddWithoutValidation("accept", "audio"); Assert.IsFalse(headers.Contains("nn"), "#1a"); Assert.IsTrue(headers.Contains("b"), "#1b"); var values = headers.GetValues("b").ToList(); Assert.AreEqual("v1", values[0], "#2a"); Assert.AreEqual("v2", values[1], "#2b"); Assert.IsFalse(headers.Remove("p"), "#3a"); Assert.IsTrue(headers.Remove("b"), "#3b"); Assert.IsFalse(headers.Contains("b"), "#3b-c"); IEnumerable <string> values2; Assert.IsTrue(headers.TryGetValues("c", out values2)); values = values2.ToList(); Assert.AreEqual("", values[0], "#4a"); int counter = 0; foreach (var i in headers) { ++counter; } Assert.AreEqual(3, counter, "#5"); headers.Clear(); headers.Accept.Add(new MediaTypeWithQualityHeaderValue("audio/x")); headers.AddWithoutValidation("accept", "audio"); values = headers.GetValues("accept").ToList(); Assert.AreEqual(2, values.Count, "#6"); Assert.AreEqual("audio/x", values[0], "#6a"); Assert.AreEqual("audio", values[1], "#6b"); Assert.AreEqual(1, headers.Accept.Count, "#6c"); headers.Clear(); headers.AddWithoutValidation("from", new[] { "*****@*****.**", "*****@*****.**" }); values = headers.GetValues("from").ToList(); Assert.AreEqual(2, values.Count, "#7"); Assert.AreEqual("*****@*****.**", values[0], "#7a"); Assert.AreEqual("*****@*****.**", values[1], "#7b"); Assert.AreEqual("*****@*****.**", headers.From, "#7c"); headers.Clear(); headers.AddWithoutValidation("Date", "wrong date"); var value = headers.Date; Assert.IsNull(headers.Date, "#8"); }