public static HttpHeaderDictionary FromString(string value) { if (null == value) { throw new ArgumentNullException("value"); } var result = new HttpHeaderDictionary(); #if NET20 var lines = IEnumerableExtensionMethods.ToQueue(StringExtensionMethods.Split(value, Environment.NewLine, StringSplitOptions.None)); #else var lines = value.Split(Environment.NewLine, StringSplitOptions.None).ToQueue(); #endif if (0 == lines.Count) { return(result); } while (0 != lines.Count) { var line = lines.Dequeue(); if (0 == line.Length) { break; } result.Add(HttpHeader.FromString(line)); } return(result); }
public void op_FromString_string() { HttpHeader expected = "name: value"; var obj = HttpHeaderDictionary.FromString(expected); var actual = obj.First <HttpHeader>(); Assert.Equal(expected, actual); }
public void op_Contains_Token() { var obj = new HttpHeaderDictionary(); Assert.False(obj.Contains("name")); obj.Add(new HttpHeader("name", "value")); Assert.True(obj.Contains("name")); }
public void op_Add_HttpHeader() { var expected = new HttpHeader("name", "value"); var obj = new HttpHeaderDictionary { expected }; Assert.Equal("value", obj["name"]); }
public void op_FromString_string_whenMultiple() { HttpHeader host = "Host: example.com"; HttpHeader ua = "User-Agent: Example"; var buffer = new StringBuilder(); buffer.AppendLine(host); buffer.AppendLine(ua); var obj = HttpHeaderDictionary.FromString(buffer.ToString()); Assert.Equal(host, obj.First <HttpHeader>()); Assert.Equal(ua, obj.Last <HttpHeader>()); }
protected string Load(string value) { if (null == value) { throw new ArgumentNullException("value"); } if (0 == value.Length) { throw new ArgumentOutOfRangeException("value"); } string body = null; var index = value.IndexOf(_break, StringComparison.Ordinal); if (-1 == index) { index = value.Length; } else { body = value.Substring(index + _break.Length); } var headers = value.Substring(0, index); index = headers.IndexOf(Environment.NewLine, StringComparison.Ordinal); string line; if (-1 == index) { line = headers; headers = string.Empty; } else { line = headers.Substring(0, index); headers = headers.Substring(index + Environment.NewLine.Length); } Headers = HttpHeaderDictionary.FromString(headers); Body = null == body ? null : new TextBody(body); return(line); }
public void op_GetEnumerator() { var expected = new KeyValuePair <Token, string>("name", "value"); var obj = new HttpHeaderDictionary { { "name", "value" } }; foreach (var actual in obj) { Assert.Equal(expected, actual); } }
public void op_FromString_stringNull() { Assert.Throws <ArgumentNullException>(() => HttpHeaderDictionary.FromString(null)); }
public void op_FromString_stringEmpty() { Assert.Empty(HttpHeaderDictionary.FromString(string.Empty).ToList <HttpHeader>()); }