public void ShouldCompareByTimeAndValue() { // given var list = new List <TestObj> { new TestObj { Value = 10, Time = new DateTime(2015, 9, 15, 10, 0, 0) }, new TestObj { Value = 7, Time = new DateTime(2015, 9, 15, 11, 0, 0) }, new TestObj { Value = 6, Time = new DateTime(2015, 9, 15, 11, 0, 0) }, new TestObj { Value = 8, Time = new DateTime(2015, 9, 15, 8, 0, 0) }, new TestObj { Value = 3, Time = new DateTime(2015, 9, 15, 15, 0, 0) } }; var comparer = MultiComparer.Of( new TimeComparer(), new ValueComparer()); // when var sorted = list.SortBy(comparer); // then Check.That(sorted).ContainsExactly( new TestObj { Value = 8, Time = new DateTime(2015, 9, 15, 8, 0, 0) }, new TestObj { Value = 10, Time = new DateTime(2015, 9, 15, 10, 0, 0) }, new TestObj { Value = 6, Time = new DateTime(2015, 9, 15, 11, 0, 0) }, new TestObj { Value = 7, Time = new DateTime(2015, 9, 15, 11, 0, 0) }, new TestObj { Value = 3, Time = new DateTime(2015, 9, 15, 15, 0, 0) }); }
public void ShouldIgnoreComparationWhenNoComparersSpecified() { // given var list = new List <TestObj> { new TestObj { Value = 10, Time = new DateTime(2015, 9, 15, 10, 0, 0) }, new TestObj { Value = 7, Time = new DateTime(2015, 9, 15, 11, 0, 0) }, new TestObj { Value = 6, Time = new DateTime(2015, 9, 15, 11, 0, 0) }, new TestObj { Value = 8, Time = new DateTime(2015, 9, 15, 8, 0, 0) }, new TestObj { Value = 3, Time = new DateTime(2015, 9, 15, 15, 0, 0) } }; var comparer = MultiComparer.Of <TestObj>(); // when var sorted = list.SortBy(comparer); // then Check.That(sorted).ContainsExactly( new TestObj { Value = 10, Time = new DateTime(2015, 9, 15, 10, 0, 0) }, new TestObj { Value = 7, Time = new DateTime(2015, 9, 15, 11, 0, 0) }, new TestObj { Value = 6, Time = new DateTime(2015, 9, 15, 11, 0, 0) }, new TestObj { Value = 8, Time = new DateTime(2015, 9, 15, 8, 0, 0) }, new TestObj { Value = 3, Time = new DateTime(2015, 9, 15, 15, 0, 0) }); }