Пример #1
0
        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);
        }
Пример #2
0
        public void op_FromString_string()
        {
            HttpHeader expected = "name: value";

            var obj = HttpHeaderDictionary.FromString(expected);

            var actual = obj.First <HttpHeader>();

            Assert.Equal(expected, actual);
        }
Пример #3
0
        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"));
        }
Пример #4
0
        public void op_Add_HttpHeader()
        {
            var expected = new HttpHeader("name", "value");

            var obj = new HttpHeaderDictionary
            {
                expected
            };

            Assert.Equal("value", obj["name"]);
        }
Пример #5
0
        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>());
        }
Пример #6
0
        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);
        }
Пример #7
0
        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);
            }
        }
Пример #8
0
 public void op_FromString_stringNull()
 {
     Assert.Throws <ArgumentNullException>(() => HttpHeaderDictionary.FromString(null));
 }
Пример #9
0
 public void op_FromString_stringEmpty()
 {
     Assert.Empty(HttpHeaderDictionary.FromString(string.Empty).ToList <HttpHeader>());
 }