public void GetHashCode_UseSameAndDifferentRanges_SameOrDifferentHashCodes() { 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)); Assert.Equal(range1.GetHashCode(), range2.GetHashCode()); Assert.NotEqual(range1.GetHashCode(), range3.GetHashCode()); Assert.NotEqual(range1.GetHashCode(), range4.GetHashCode()); Assert.NotEqual(range1.GetHashCode(), range5.GetHashCode()); Assert.Equal(range5.GetHashCode(), range6.GetHashCode()); }