public void CompareChainCanCompareNullables() { Assert.AreEqual( 0, CompareChain.Of(new { foo = (int?)1 }, new { foo = (int?)1 }) .Value(it => it.foo) .Result ); Assert.AreEqual( -1, CompareChain.Of(new { foo = (int?)null }, new { foo = (int?)1 }) .Value(it => it.foo) .Result ); Assert.AreEqual( 1, CompareChain.Of(new { foo = (int?)1 }, new { foo = (int?)null }) .Value(it => it.foo) .Result ); Assert.AreEqual( -1, CompareChain.Of(new { foo = (int?)1 }, new { foo = (int?)2 }) .Value(it => it.foo) .Result ); Assert.AreEqual( 1, CompareChain.Of(new { foo = (int?)2 }, new { foo = (int?)1 }) .Value(it => it.foo) .Result ); }
public void CompareChainReturnsFirstNonZeroDefaultComparerResult() { Assert.AreEqual( -1, CompareChain.Of(new { foo = "foo", bar = "bar" }, new { foo = "foo1", bar = "bar" }) .Value(it => it.foo) .Value(it => it.bar) .Result ); Assert.AreEqual( 1, CompareChain.Of(new { foo = "foo", bar = "bar1" }, new { foo = "foo", bar = "bar" }) .Value(it => it.foo) .Value(it => it.bar) .Result ); Assert.AreEqual( 0, CompareChain.Of(new { foo = "foo", bar = "bar" }, new { foo = "foo", bar = "bar" }) .Value(it => it.foo) .Value(it => it.bar) .Result ); }
public void CompareChainStartsAtZero() { Assert.AreEqual(0, CompareChain.Of("foo", "bar").Result); }