Merge pull request #820 from brendanzagaeski/master
[mono.git] / mcs / class / System.Net.Http / Test / System.Net.Http.Headers / HttpHeadersTest.cs
index 351055c8a03cce15c34a88b75c8a097ed7d2b884..cae4a65c82aacac1a726114b49646776d995fbd4 100644 (file)
@@ -31,6 +31,7 @@ using System.Collections;
 using System.Collections.Generic;
 using NUnit.Framework;
 using System.Net.Http.Headers;
+using System.Linq;
 
 namespace MonoTests.System.Net.Http.Headers
 {
@@ -72,5 +73,79 @@ namespace MonoTests.System.Net.Http.Headers
                        } catch (ArgumentException) {
                        }
                }
+
+               [Test]
+               public void Clear ()
+               {
+                       headers.Add ("aa", "value");
+                       headers.Clear ();
+               }
+
+               [Test]
+               public void GetEnumerator ()
+               {
+                       headers.Add ("aa", "value");
+                       int i = 0;
+                       foreach (var entry in headers) {
+                               ++i;
+                               Assert.AreEqual ("aa", entry.Key);
+                               var values = entry.Value.ToList ();
+                               Assert.AreEqual (1, values.Count);
+                               Assert.AreEqual ("value", values[0]);
+                       }
+
+                       Assert.AreEqual (1, i, "#10");
+               }
+
+               [Test]
+               public void GetValues ()
+               {
+                       headers.Add ("aa", "v");
+                       headers.Add ("aa", "v");
+
+                       var r = headers.GetValues ("aa").ToList ();
+                       Assert.AreEqual ("v", r[0], "#1");
+                       Assert.AreEqual ("v", r[1], "#2");
+               }
+
+               [Test]
+               public void GetValues_Invalid ()
+               {
+                       try {
+                               headers.GetValues (null);
+                               Assert.Fail ("#1");
+                       } catch (ArgumentException) {
+                       }
+
+                       try {
+                               headers.GetValues ("  ");
+                               Assert.Fail ("#2");
+                       } catch (FormatException) {
+                       }
+
+                       try {
+                               headers.GetValues ("x");
+                               Assert.Fail ("#3");
+                       } catch (InvalidOperationException) {
+                       }
+               }
+
+               [Test]
+               public void TryGetValuesTest ()
+               {
+                       IEnumerable<string> headerValues;
+                       Assert.IsFalse (headers.TryGetValues (null, out headerValues), "#1");
+                       Assert.IsFalse (headers.TryGetValues ("some-name", out headerValues), "#2");
+               }
+
+               [Test]
+               public void ToStringTest ()
+               {
+                       headers.Add ("aa", "v");
+                       headers.Add ("aa", "v");
+                       headers.Add ("x", "v");
+
+                       Assert.AreEqual ("aa: v, v\r\nx: v\r\n", headers.ToString ());
+               }
        }
 }