public void GenericComparerTest2()
        {
            GenericComparer <IDjvuNode> nodeComparer =
                new GenericComparer <IDjvuNode>(
                    x => (x.ChunkType.GetHashCode() + x.DataOffset.GetHashCode()),
                    (x, y) => x.ChunkType == y.ChunkType && x.DataOffset == y.DataOffset);

            Mock <IDjvuNode> nodeMock1 = new Mock <IDjvuNode>();

            nodeMock1.Setup(x => x.ChunkType).Returns(ChunkType.Anta);
            nodeMock1.Setup(x => x.DataOffset).Returns(2048);

            Mock <IDjvuNode> nodeMock2 = new Mock <IDjvuNode>();

            nodeMock2.Setup(x => x.ChunkType).Returns(ChunkType.Anta);
            nodeMock2.Setup(x => x.DataOffset).Returns(2048);

            Mock <IDjvuNode> nodeMock3 = new Mock <IDjvuNode>();

            nodeMock3.Setup(x => x.ChunkType).Returns(ChunkType.Antz);
            nodeMock3.Setup(x => x.DataOffset).Returns(2048);

            Assert.NotSame(nodeMock1.Object, nodeMock2.Object);
            Assert.True(nodeComparer.Equals(nodeMock1.Object, nodeMock2.Object));
            Assert.Equal <int>(nodeComparer.GetHashCode(nodeMock1.Object), nodeComparer.GetHashCode(nodeMock2.Object));

            Assert.NotSame(nodeMock1.Object, nodeMock3.Object);
            Assert.False(nodeComparer.Equals(nodeMock1.Object, nodeMock3.Object));
            Assert.NotEqual <int>(nodeComparer.GetHashCode(nodeMock1.Object), nodeComparer.GetHashCode(nodeMock3.Object));
        }
Exemple #2
0
        public static bool Equals <E>(this E x, E y)
        {
            var genericComparer = new GenericComparer <E>();

            return(genericComparer.Equals(x, y));
        }