Пример #1
0
        /// <summary>
        /// Creates a new object.
        /// </summary>
        /// <param name="response"></param>
        /// <param name="collection"></param>
        public HeadersWrapper_Response(IHttpListenerResponse response) : base(StringComparer.OrdinalIgnoreCase)
        {
            _Response = response;

            _DoingInitialCopy = true;
            try {
                foreach (var key in response.Headers.AllKeys)
                {
                    var value = response.Headers[key];
                    base[key] = HeadersDictionary.SplitRawHeaderValue(value).ToArray();
                }
            } finally {
                _DoingInitialCopy = false;
            }
        }
Пример #2
0
 /// <summary>
 /// See interface docs.
 /// </summary>
 /// <param name="key"></param>
 /// <returns></returns>
 public virtual string[] this[string key]
 {
     get {
         var headerValue = _Collection[key];
         return(headerValue == null
             ? null
             : HeadersDictionary.SplitRawHeaderValue(headerValue)?.ToArray());
     }
     set {
         if (key == null)
         {
             throw new ArgumentNullException(nameof(key));
         }
         _Collection[key] = HeadersDictionary.JoinCookedHeaderValues(value);
     }
 }
        public void Static_SplitRawHeaderValue_Round_Trips_With_JoinCookedHeaderValues(string [] splitValues, string headerValue)
        {
            var splitHeaderValues = HeadersDictionary.SplitRawHeaderValue(headerValue);

            if (splitValues == null)
            {
                Assert.IsNull(splitHeaderValues);
            }
            else
            {
                Assert.IsTrue(splitValues.SequenceEqual(splitHeaderValues));
            }

            var rejoinedHeader = HeadersDictionary.JoinCookedHeaderValues(splitHeaderValues);

            if (headerValue == null)
            {
                Assert.IsNull(rejoinedHeader);
            }
            else
            {
                Assert.AreEqual(headerValue, rejoinedHeader);
            }
        }
        public void Static_SplitRawHeaderValue_Returns_Correct_Array_For_Header_Value(string[] expected, string rawString)
        {
            var actual = HeadersDictionary.SplitRawHeaderValue(rawString);

            Assert.IsTrue(expected.SequenceEqual(actual));
        }