### Question:
UpdatePropertiesRequest extends ChangeRequest implements PropertyChangeRequest { @Override public boolean equals( Object obj ) { if (obj == this) return true; if (this.getClass().isInstance(obj)) { UpdatePropertiesRequest that = (UpdatePropertiesRequest)obj; if (!this.on().isSame(that.on())) return false; if (!this.properties().equals(that.properties())) return false; if (!this.inWorkspace().equals(that.inWorkspace())) return false; return true; } return false; } UpdatePropertiesRequest( Location on,
                                    String workspaceName,
                                    Map<Name, Property> properties );  UpdatePropertiesRequest( Location on,
                                    String workspaceName,
                                    Map<Name, Property> properties,
                                    boolean removeOtherProperties ); @Override boolean isReadOnly(); Location on(); String inWorkspace(); Map<Name, Property> properties(); boolean removeOtherProperties(); void setActualLocationOfNode( Location actual ); Location getActualLocationOfNode(); void setNewProperty( Name nameOfCreatedProperty ); void setNewProperties( Name... nameOfCreatedProperties ); void setNewProperties( Iterable<Name> nameOfCreatedProperties ); Set<Name> getNewPropertyNames(); boolean isNewProperty( Name name ); boolean isAllNewProperties(); @Override boolean freeze(); @Override boolean changes( String workspace,
                            Path path ); @Override void cancel(); @Override int hashCode(); @Override boolean equals( Object obj ); @Override Location changedLocation(); @Override String changedWorkspace(); @Override String toString(); @Override UpdatePropertiesRequest clone(); @Override RequestType getType();  }### Answer:
@Test public void shouldConsiderNotEqualTwoRequestsWithDifferentLocations() { request = new UpdatePropertiesRequest(validPathLocation1, workspace1, validProperties); UpdatePropertiesRequest request2 = new UpdatePropertiesRequest(validPathLocation2, workspace1, validProperties); assertThat(request.equals(request2), is(false)); }
@Test public void shouldConsiderNotEqualTwoRequestsWithDifferentWorkspaceNames() { request = new UpdatePropertiesRequest(validPathLocation1, workspace1, validProperties); UpdatePropertiesRequest request2 = new UpdatePropertiesRequest(validPathLocation1, workspace2, validProperties); assertThat(request.equals(request2), is(false)); }
@Test public void shouldConsiderNotEqualTwoRequestsWithSameLocationButDifferentProperties() { request = new UpdatePropertiesRequest(validPathLocation1, workspace1, validProperties); Map<Name, Property> otherValidProperties = Collections.singletonMap(validProperty1.getName(), validProperty1); UpdatePropertiesRequest request2 = new UpdatePropertiesRequest(validPathLocation2, workspace1, otherValidProperties); assertThat(request.equals(request2), is(false)); }