public void Equals_UseSameAndDifferentRanges_EqualOrNotEqualNoExceptions() { RangeHeaderValue range1 = new RangeHeaderValue(1, 2); RangeHeaderValue range2 = new RangeHeaderValue(1, 2); range2.Unit = "BYTES"; RangeHeaderValue range3 = new RangeHeaderValue(1, null); RangeHeaderValue range4 = new RangeHeaderValue(null, 2); RangeHeaderValue range5 = new RangeHeaderValue(); range5.Ranges.Add(new RangeItemHeaderValue(1, 2)); range5.Ranges.Add(new RangeItemHeaderValue(3, 4)); RangeHeaderValue range6 = new RangeHeaderValue(); range6.Ranges.Add(new RangeItemHeaderValue(3, 4)); // reverse order of range5 range6.Ranges.Add(new RangeItemHeaderValue(1, 2)); RangeHeaderValue range7 = new RangeHeaderValue(1, 2); range7.Unit = "other"; Assert.False(range1.Equals(null), "bytes=1-2 vs. <null>"); Assert.True(range1.Equals(range2), "bytes=1-2 vs. BYTES=1-2"); Assert.False(range1.Equals(range3), "bytes=1-2 vs. bytes=1-"); Assert.False(range1.Equals(range4), "bytes=1-2 vs. bytes=-2"); Assert.False(range1.Equals(range5), "bytes=1-2 vs. bytes=1-2,3-4"); Assert.True(range5.Equals(range6), "bytes=1-2,3-4 vs. bytes=3-4,1-2"); Assert.False(range1.Equals(range7), "bytes=1-2 vs. other=1-2"); }