public void Equals_UseMediaTypeWithAndWithoutParameters_EqualOrNotEqualNoExceptions() { var mediaType1 = new MediaTypeHeaderValue("text/plain"); var mediaType2 = new MediaTypeHeaderValue("text/plain"); mediaType2.Charset = "utf-8"; var mediaType3 = new MediaTypeHeaderValue("text/plain"); mediaType3.Parameters.Add(new NameValueHeaderValue("name", "value")); var mediaType4 = new MediaTypeHeaderValue("TEXT/plain"); var mediaType5 = new MediaTypeHeaderValue("TEXT/plain"); mediaType5.Parameters.Add(new NameValueHeaderValue("CHARSET", "UTF-8")); var mediaType6 = new MediaTypeHeaderValue("TEXT/plain"); mediaType6.Parameters.Add(new NameValueHeaderValue("CHARSET", "UTF-8")); mediaType6.Parameters.Add(new NameValueHeaderValue("custom", "value")); var mediaType7 = new MediaTypeHeaderValue("text/other"); Assert.False(mediaType1.Equals(mediaType2), "No params vs. charset."); Assert.False(mediaType2.Equals(mediaType1), "charset vs. no params."); Assert.False(mediaType1.Equals(null), "No params vs. <null>."); Assert.False(mediaType1.Equals(mediaType3), "No params vs. custom param."); Assert.False(mediaType2.Equals(mediaType3), "charset vs. custom param."); Assert.True(mediaType1.Equals(mediaType4), "Different casing."); Assert.True(mediaType2.Equals(mediaType5), "Different casing in charset."); Assert.False(mediaType5.Equals(mediaType6), "charset vs. custom param."); Assert.False(mediaType1.Equals(mediaType7), "text/plain vs. text/other."); }