@Override public int hashCode() { return edge.hashCode(); }
@Override @Test public void shouldReturnTrueForEqualsWithTheSameInstance() { // Given final Edge edge = new Edge.Builder() .group("group") .source("source vertex") .dest("dest vertex") .directed(true) .build(); // When boolean isEqual = edge.equals(edge); // Then assertTrue(isEqual); assertEquals(edge.hashCode(), edge.hashCode()); }
@Override @Test public void shouldReturnTrueForEqualsWhenAllCoreFieldsAreEqual() { final Edge edge1 = new Edge.Builder() .group("group") .source("source vertex") .dest("dest vertex") .directed(true) .property("some property", "some value") .build(); final Edge edge2 = cloneCoreFields(edge1); edge2.putProperty("some property", "some value"); // When boolean isEqual = edge1.equals((Object) edge2); // Then assertTrue(isEqual); assertEquals(edge1.hashCode(), edge2.hashCode()); }
@Test public void shouldReturnFalseForEqualsWhenPropertyIsDifferent() { // Given final Edge edge1 = new Edge.Builder() .group("group") .source("source vertex") .dest("dest vertex") .directed(true) .property("some property", "some value") .build(); final Edge edge2 = cloneCoreFields(edge1); edge2.putProperty("some property", "some other value"); // When boolean isEqual = edge1.equals((Object) edge2); // Then assertFalse(isEqual); assertNotEquals(edge1.hashCode(), edge2.hashCode()); }
@Test public void shouldReturnFalseForEqualsWhenDirectedIdentifiersFlipped() { // Given final Edge edge1 = new Edge.Builder() .group("group") .source("source vertex") .dest("dest vertex") .directed(true) .build(); // Given final Edge edge2 = new Edge.Builder() .group("group") .source("dest vertex") .dest("source vertex") .directed(true) .build(); // When boolean isEqual = edge1.equals((Object) edge2); // Then assertFalse(isEqual); assertFalse(edge1.hashCode() == edge2.hashCode()); }
@Test public void shouldReturnTrueForEqualsWhenUndirectedIdentifiersFlipped() { // Given final Edge edge1 = new Edge.Builder() .group("group") .source("source vertex") .dest("dest vertex") .directed(false) .build(); // Given final Edge edge2 = new Edge.Builder() .group("group") .source("dest vertex") .dest("source vertex") .directed(false) .build(); // When boolean isEqual = edge1.equals((Object) edge2); // Then assertTrue(isEqual); assertTrue(edge1.hashCode() == edge2.hashCode()); }
@Test public void shouldReturnFalseForEqualsWhenDestinationIsDifferent() { // Given final Edge edge1 = new Edge.Builder().group("group") .source("source vertex") .dest("dest vertex") .directed(true) .build(); final Edge edge2 = new Edge.Builder() .group(edge1.getGroup()) .source(edge1.getSource()) .dest("different destination") .directed(edge1.isDirected()) .build(); // When boolean isEqual = edge1.equals((Object) edge2); // Then assertFalse(isEqual); assertFalse(edge1.hashCode() == edge2.hashCode()); }
@Test public void shouldReturnFalseForEqualsWhenSourceIsDifferent() { // Given final Edge edge1 = new Edge.Builder() .group("group") .source("source vertex") .dest("dest vertex") .directed(true) .build(); final Edge edge2 = new Edge.Builder() .group(edge1.getGroup()) .source("different source") .dest(edge1.getDestination()) .directed(edge1.isDirected()) .build(); // When boolean isEqual = edge1.equals((Object) edge2); // Then assertFalse(isEqual); assertFalse(edge1.hashCode() == edge2.hashCode()); }
@Override @Test public void shouldReturnFalseForEqualsWhenGroupIsDifferent() { // Given final Edge edge1 = new Edge.Builder() .group("group") .source("source vertex") .dest("dest vertex") .directed(true) .build(); final Edge edge2 = new Edge.Builder() .group("a different group") .source(edge1.getSource()) .dest(edge1.getDestination()) .directed(edge1.isDirected()) .build(); // When boolean isEqual = edge1.equals((Object) edge2); // Then assertFalse(isEqual); assertFalse(edge1.hashCode() == edge2.hashCode()); }
@Test public void shouldReturnFalseForEqualsWhenDirectedIsDifferent() { // Given final Edge edge1 = new Edge.Builder() .group("group") .source("source vertex") .dest("dest vertex") .directed(true) .build(); final Edge edge2 = new Edge.Builder() .group(edge1.getGroup()) .source(edge1.getSource()) .dest(edge1.getDestination()) .directed(!edge1.isDirected()) .build(); // When boolean isEqual = edge1.equals((Object) edge2); // Then assertFalse(isEqual); assertFalse(edge1.hashCode() == edge2.hashCode()); }
@Override public int hashCode() { return edge.hashCode(); }