예제 #1
0
    public void GetHashCode_NameUseDifferentCasing_HashDiffersAccordingToRfc()
    {
        var nameValue1 = new NameValueHeaderValue("text");
        var nameValue2 = new NameValueHeaderValue("TEXT");

        Assert.Equal(nameValue1.GetHashCode(), nameValue2.GetHashCode());
    }
예제 #2
0
    public void GetHashCode_ValuesUseDifferentValues_HashDiffersAccordingToRfc()
    {
        var nameValue1 = new NameValueHeaderValue("text");
        var nameValue2 = new NameValueHeaderValue("text");

        nameValue1.Value = null;
        nameValue2.Value = null;
        Assert.Equal(nameValue1.GetHashCode(), nameValue2.GetHashCode());

        nameValue1.Value = "token";
        nameValue2.Value = null;
        Assert.NotEqual(nameValue1.GetHashCode(), nameValue2.GetHashCode());

        nameValue1.Value = "token";
        nameValue2.Value = string.Empty;
        Assert.NotEqual(nameValue1.GetHashCode(), nameValue2.GetHashCode());

        nameValue1.Value = null;
        nameValue2.Value = string.Empty;
        Assert.Equal(nameValue1.GetHashCode(), nameValue2.GetHashCode());

        nameValue1.Value = "token";
        nameValue2.Value = "TOKEN";
        Assert.Equal(nameValue1.GetHashCode(), nameValue2.GetHashCode());

        nameValue1.Value = "token";
        nameValue2.Value = "token";
        Assert.Equal(nameValue1.GetHashCode(), nameValue2.GetHashCode());

        nameValue1.Value = "\"quoted string\"";
        nameValue2.Value = "\"QUOTED STRING\"";
        Assert.NotEqual(nameValue1.GetHashCode(), nameValue2.GetHashCode());

        nameValue1.Value = "\"quoted string\"";
        nameValue2.Value = "\"quoted string\"";
        Assert.Equal(nameValue1.GetHashCode(), nameValue2.GetHashCode());
    }
 /// <inheritdoc />
 public override int GetHashCode()
 {
     // The dispositionType string is case-insensitive.
     return(StringSegmentComparer.OrdinalIgnoreCase.GetHashCode(_dispositionType) ^ NameValueHeaderValue.GetHashCode(_parameters));
 }