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)); }
public static bool Equals <E>(this E x, E y) { var genericComparer = new GenericComparer <E>(); return(genericComparer.Equals(x, y)); }