Ejemplo n.º 1
0
        public void TestKeyEquatableEquals()
        {
            var sut = KeyEqualityComparer.Default;

            var a1 = new MyEntity("a", "v1") as IKeyEquatable;
            var a2 = new MyEntity("a", "v2") as IKeyEquatable;
            var b1 = new MyEntity("b", "v1") as IKeyEquatable;

            a1.KeyEquals(a2).ShouldBeEquivalentTo(true);
            a2.KeyEquals(a1).ShouldBeEquivalentTo(true);
            a1.KeyEquals(a1).ShouldBeEquivalentTo(true);
            a2.KeyEquals(a2).ShouldBeEquivalentTo(true);
            a1.KeyEquals(null).ShouldBeEquivalentTo(false);
            a1.KeyEquals("!!").ShouldBeEquivalentTo(false);
            b1.KeyEquals(a2).ShouldBeEquivalentTo(false);
            a1.KeyEquals(b1).ShouldBeEquivalentTo(false);

            sut.Equals(a1, a2).ShouldBeEquivalentTo(true);
            sut.Equals(a2, a1).ShouldBeEquivalentTo(true);
            sut.Equals(a1, a1).ShouldBeEquivalentTo(true);
            sut.Equals(a2, a2).ShouldBeEquivalentTo(true);
            sut.Equals(null, a2).ShouldBeEquivalentTo(false);
            sut.Equals(a1, null).ShouldBeEquivalentTo(false);
            sut.Equals(null, null).ShouldBeEquivalentTo(true);
            sut.Equals(b1, a2).ShouldBeEquivalentTo(false);
            sut.Equals(a1, b1).ShouldBeEquivalentTo(false);
        }