### Question:
ReadPropertyRequest extends CacheableRequest { @Override public boolean equals( Object obj ) { if (obj == this) return true; if (this.getClass().isInstance(obj)) { ReadPropertyRequest that = (ReadPropertyRequest)obj; if (!this.on().isSame(that.on())) return false; if (!this.named().equals(that.named())) return false; if (!this.inWorkspace().equals(that.inWorkspace())) return false; return true; } return false; } ReadPropertyRequest( Location on,
                                String workspaceName,
                                Name propertyName ); @Override boolean isReadOnly(); Location on(); String inWorkspace(); Name named(); Property getProperty(); void setProperty( Property property ); void setActualLocationOfNode( Location actual ); Location getActualLocationOfNode(); @Override void cancel(); @Override int hashCode(); @Override boolean equals( Object obj ); @Override String toString(); @Override RequestType getType();  }### Answer:
@Test public void shouldConsiderNotEqualTwoRequestsWithDifferentLocations() { request = new ReadPropertyRequest(validPathLocation1, workspace1, validPropertyName); ReadPropertyRequest request2 = new ReadPropertyRequest(validPathLocation2, workspace1, validPropertyName); assertThat(request.equals(request2), is(false)); }
@Test public void shouldConsiderNotEqualTwoRequestsWithDifferentWorkspaceNames() { request = new ReadPropertyRequest(validPathLocation1, workspace1, validPropertyName); ReadPropertyRequest request2 = new ReadPropertyRequest(validPathLocation1, workspace2, validPropertyName); assertThat(request.equals(request2), is(false)); }
@Test public void shouldConsiderNotEqualTwoRequestsWithSameLocationButDifferentPropertyNames() { request = new ReadPropertyRequest(validPathLocation1, workspace1, validProperty2.getName()); ReadPropertyRequest request2 = new ReadPropertyRequest(validPathLocation2, workspace1, validPropertyName); assertThat(request.equals(request2), is(false)); }