public void Equals_UseContentDispositionWithAndWithoutParameters_EqualOrNotEqualNoExceptions()
    {
        var contentDisposition1 = new ContentDispositionHeaderValue("inline");
        var contentDisposition2 = new ContentDispositionHeaderValue("inline");

        contentDisposition2.Name = "myName";
        var contentDisposition3 = new ContentDispositionHeaderValue("inline");

        contentDisposition3.Parameters.Add(new NameValueHeaderValue("name", "value"));
        var contentDisposition4 = new ContentDispositionHeaderValue("INLINE");
        var contentDisposition5 = new ContentDispositionHeaderValue("INLINE");

        contentDisposition5.Parameters.Add(new NameValueHeaderValue("NAME", "MYNAME"));
        var contentDisposition6 = new ContentDispositionHeaderValue("INLINE");

        contentDisposition6.Parameters.Add(new NameValueHeaderValue("NAME", "MYNAME"));
        contentDisposition6.Parameters.Add(new NameValueHeaderValue("custom", "value"));
        var contentDisposition7 = new ContentDispositionHeaderValue("attachment");

        Assert.False(contentDisposition1.Equals(contentDisposition2), "No params vs. name.");
        Assert.False(contentDisposition2.Equals(contentDisposition1), "name vs. no params.");
        Assert.False(contentDisposition1.Equals(null), "No params vs. <null>.");
        Assert.False(contentDisposition1 !.Equals(contentDisposition3), "No params vs. custom param.");
        Assert.False(contentDisposition2.Equals(contentDisposition3), "name vs. custom param.");
        Assert.True(contentDisposition1.Equals(contentDisposition4), "Different casing.");
        Assert.True(contentDisposition2.Equals(contentDisposition5), "Different casing in name.");
        Assert.False(contentDisposition5.Equals(contentDisposition6), "name vs. custom param.");
        Assert.False(contentDisposition1.Equals(contentDisposition7), "inline vs. text/other.");
    }