1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
|
// Copyright (c) Microsoft Corporation. All rights reserved. See License.txt in the project root for license information.
using System.Collections.Specialized;
using Xunit;
using Xunit.Extensions;
using Assert = Microsoft.TestCommon.AssertEx;
using Microsoft.TestCommon;
namespace System.Net.Http.Headers
{
class CookieStateTest
{
[Fact]
public void CookieState_CtorThrowsOnNullName()
{
Assert.ThrowsArgumentNull(() => new CookieState(null, "value"), "name");
}
[Theory]
[InlineData("<acb>")]
[InlineData("{acb}")]
[InlineData("[acb]")]
public void CookieState_CtorThrowsOnInvalidName(string name)
{
Assert.ThrowsArgument(() => new CookieState(name, "value"), "name");
}
[Theory]
[InlineData("\"acb\"")]
[InlineData("a,b")]
[InlineData("a;b")]
[InlineData("a\\b")]
public void CookieState_CtorThrowsOnInvalidValue(string value)
{
Assert.ThrowsArgument(() => new CookieState("name", value), "value");
}
[Fact]
public void CookieState_CtorThrowsOnNullNameValueCollection()
{
Assert.ThrowsArgumentNull(() => new CookieState("name", (NameValueCollection)null), "values");
}
[Theory]
[InlineData("name", "")]
[InlineData("name", "value")]
public void CookieState_Ctor1InitializesCorrectly(string name, string value)
{
CookieState cookie = new CookieState(name, value);
Assert.Equal(name, cookie.Name);
Assert.Equal(value, cookie.Values.AllKeys[0]);
Assert.Equal(value, cookie.Value);
}
[Fact]
public void CookieState_Ctor2InitializesCorrectly()
{
// Arrange
NameValueCollection nvc = new NameValueCollection();
nvc.Add("n1", "v1");
// Act
CookieState cookie = new CookieState("name", nvc);
// Assert
Assert.Equal("name", cookie.Name);
Assert.Equal(1, cookie.Values.Count);
Assert.Equal("n1", cookie.Values.AllKeys[0]);
Assert.Equal("v1", cookie.Values["n1"]);
Assert.Equal("n1=v1", cookie.Value);
}
[Fact]
public void CookieState_Value()
{
CookieState cookie = new CookieState("name");
Assert.Equal(String.Empty, cookie.Value);
cookie.Value = "value1";
Assert.Equal("value1", cookie.Value);
cookie.Values.AllKeys[0] = "value2";
Assert.Equal("value2", cookie.Value);
}
[Fact]
public void CookieState_Clone()
{
// Arrange
NameValueCollection nvc = new NameValueCollection();
nvc.Add("n1", "v1");
CookieState expectedValue = new CookieState("name", nvc);
// Act
CookieState actualValue = expectedValue.Clone() as CookieState;
// Assert
Assert.Equal("name", actualValue.Name);
Assert.Equal(1, actualValue.Values.Count);
Assert.Equal("n1", actualValue.Values.AllKeys[0]);
Assert.Equal("v1", actualValue.Values["n1"]);
}
[Fact]
public void CookieState_ToStringWithSingleValue()
{
// Arrange
CookieState cookie = new CookieState("name", "value");
// Act
string actualValue = cookie.ToString();
// Assert
Assert.Equal("name=value", actualValue);
}
[Fact]
public void CookieState_ToStringWithNameValueCollection()
{
// Arrange
NameValueCollection nvc = new NameValueCollection();
nvc.Add("n1", "v1");
nvc.Add("n2", "v2");
nvc.Add("n3", "v3");
CookieState cookie = new CookieState("name", nvc);
// Act
string actualValue = cookie.ToString();
// Assert
Assert.Equal("name=n1=v1&n2=v2&n3=v3", actualValue);
}
}
}
|