Ejemplo n.º 1
0
 //合并操作符用于多级比较
 public int Compare(Product first, Product second)
 {
     return(PartialComparer.Compare(first, second) ??
            PartialComparer.Compare(first.Price, second.Price) ??
            PartialComparer.Compare(first.SupplierID, second.SupplierID) ??
            PartialComparer.Compare(first.Name, second.Name) ?? 0);
 }
Ejemplo n.º 2
0
        public void DifferentNonNullReferencesReturnNull()
        {
            // Just to be extra careful, make two different references to equal strings.
            // That way we know we're not actually doing comparisons!
            string x1 = new string(new [] { 'x' });
            string x2 = new string(new [] { 'x' });

            Assert.AreNotSame(x1, x2);
            Assert.IsNull(PartialComparer.ReferenceCompare(x1, x2));
        }
Ejemplo n.º 3
0
        public void CompareReturnsNullWhenSpecifiedComparerReturnsZero()
        {
            MockRepository     factory  = new MockRepository();
            IComparer <string> comparer = factory.CreateMock <IComparer <string> >();

            Expect.Call(comparer.Compare("first", "second")).Return(0);

            factory.ReplayAll();

            Assert.IsNull(PartialComparer.Compare(comparer, "first", "second"));

            factory.VerifyAll();
        }
Ejemplo n.º 4
0
 public void DefaultEqualReturnsNull()
 {
     Assert.IsNull(PartialComparer.Compare(4, 4));
 }
Ejemplo n.º 5
0
 public void DefaultGreaterThanReturnsGreaterThanZero()
 {
     Assert.IsTrue(PartialComparer.Compare(5, 3) > 0);
 }
Ejemplo n.º 6
0
 public void DefaultLessThanReturnsLessThanZero()
 {
     Assert.IsTrue(PartialComparer.Compare(3, 5) < 0);
 }
Ejemplo n.º 7
0
 public void NonNullGreaterThanNull()
 {
     Assert.AreEqual(1, PartialComparer.ReferenceCompare("x", null).Value);
 }
Ejemplo n.º 8
0
 public void TwoNullReferencesReturnZero()
 {
     Assert.AreEqual(0, PartialComparer.ReferenceCompare <string>(null, null).Value);
 }
Ejemplo n.º 9
0
 public void NullLessThanNonNull()
 {
     Assert.AreEqual(-1, PartialComparer.ReferenceCompare(null, "x").Value);
 }
Ejemplo n.º 10
0
 public void DifferentNonNullReferencesReturnMaybe()
 {
     Assert.IsNull(PartialComparer.Equals("first", "second"));
 }
Ejemplo n.º 11
0
 public void NonNullAndNullAreUnequal()
 {
     Assert.IsFalse(PartialComparer.Equals("non-null", null).Value);
 }
Ejemplo n.º 12
0
 public void EqualNonNullReferencesReturnZero()
 {
     Assert.AreEqual(0, PartialComparer.ReferenceCompare("x", "x").Value);
 }
Ejemplo n.º 13
0
 public void NullAndNonNullAreUnequal()
 {
     Assert.IsFalse(PartialComparer.Equals <string>(null, "non-null").Value);
 }
Ejemplo n.º 14
0
 public void TwoNullReferencesAreEqual()
 {
     Assert.IsTrue(PartialComparer.Equals <string>(null, null).Value);
 }