private static void ShouldBeEqualAccordingToCompareToMethods( SomeComparableObject first, SomeComparableObject second) { first.CompareTo(second).Should().Be(0); first.CompareToObject(second).Should().Be(0); }
private static void ShouldBeGreaterAccordingToCompareToMethods( SomeComparableObject greater, SomeComparableObject smaller) { greater.CompareTo(smaller).Should().BePositive(); greater.CompareToObject(smaller).Should().BePositive(); }
private static void ShouldBeLesserThanAccordingToCompareToMethods( SomeComparableObject smaller, SomeComparableObject greater) { smaller.CompareTo(greater).Should().BeNegative(); smaller.CompareToObject(greater).Should().BeNegative(); }
public void cannot_compare_objects_of_two_different_types() { var first = new SomeComparableObject(1); var second = "some string"; Action comparing = () => first.CompareToObject(second); comparing.ShouldThrow <ArgumentException>(); }
public void any_object_compares_greater_than_null() { var some = new SomeComparableObject(1); ShouldBeGreaterAccordingToCompareToMethods(some, null); ShouldBeGreaterThanAccordingToOperators(some, null); ShouldBeLesserThanAccordingToOperators(null, some); }
private void ShouldBeLesserThanAccordingToOperators(SomeComparableObject first, SomeComparableObject second) { (first > second).Should().BeFalse(); (first >= second).Should().BeFalse(); (first == second).Should().BeFalse(); (first <= second).Should().BeTrue(); (first < second).Should().BeTrue(); (first != second).Should().BeTrue(); }
public void equality_comparing_objects_of_two_different_types_should_still_be_possible() { var first = new SomeComparableObject(1); var second = "some string"; // ReSharper disable once SuspiciousTypeConversion.Global // ReSharper disable once ReturnValueOfPureMethodIsNotUsed Action equalityComparing = () => first.Equals(second); equalityComparing.ShouldNotThrow(); }
public void greater_object_compares_greater_than_smaller_one() { var greater = new SomeComparableObject(2); var smaller = new SomeComparableObject(1); ShouldBeGreaterAccordingToCompareToMethods(greater, smaller); ShouldBeLesserThanAccordingToCompareToMethods(smaller, greater); ShouldBeGreaterThanAccordingToOperators(greater, smaller); ShouldBeLesserThanAccordingToOperators(smaller, greater); }
public void equal_objects_compare_equal() { var first = new SomeComparableObject(1); var second = new SomeComparableObject(1); ShouldBeEqualAccordingToCompareToMethods(first, second); ShouldBeEqualAccordingToCompareToMethods(second, first); ShouldBeEqualAccordingToOperators(first, second); ShouldBeEqualAccordingToOperators(second, first); }
protected override int CompareToNotNull(SomeComparableObject notNullOther) => _value.CompareTo(notNullOther._value);