### Question:
ComponentDerivationRecord { @Override public boolean equals( Object o ) { if ( this == o ) { return true; } if ( o == null || getClass() != o.getClass() ) { return false; } ComponentDerivationRecord that = (ComponentDerivationRecord) o; if ( originalField != null ? !originalField.equals( that.originalField ) : that.originalField != null ) { return false; } if ( changedField != null ? !changedField.equals( that.changedField ) : that.changedField != null ) { return false; } if ( changeType != that.changeType ) { return false; } return !( operations != null ? !operations.equals( that.operations ) : that.operations != null ); } ComponentDerivationRecord();  ComponentDerivationRecord( StepField originalField, StepField changedField );  ComponentDerivationRecord( StepField originalField, StepField changedField, ChangeType changeType );  ComponentDerivationRecord( String originalEntityName, String changedEntityName );  ComponentDerivationRecord( String originalEntityName, String changedEntityName, ChangeType changeType );  ComponentDerivationRecord( String changedEntityName, ChangeType changeType );  ComponentDerivationRecord( String changedEntityName ); ChangeType getChangeType(); void setChangeType( ChangeType changeType ); String getChangedEntityName(); void setChangedEntityName( String changedEntityName ); String getOriginalEntityName(); void setOriginalEntityName( String originalEntityName ); String getOriginalEntityStepName(); void setOriginalEntityStepName( String stepName ); String getChangedEntityStepName(); void setChangedEntityStepName( String stepName ); StepField getOriginalField(); void setOriginalField( StepField originalField ); StepField getChangedField(); void setChangedField( StepField changedField ); List<IOperation> getOperations( ChangeType type ); Operations getOperations(); void addOperation( Operation operation ); boolean hasDelta(); @Override boolean equals( Object o ); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void testEquals() { assertTrue( record.equals( record ) ); assertFalse( record.equals( new Object() ) ); ComponentDerivationRecord record2 = new ComponentDerivationRecord( "myRecord" ); assertTrue( record.equals( record2 ) ); ComponentDerivationRecord record3 = new ComponentDerivationRecord( "originalRecord", "myRecord" ); assertFalse( record.equals( record3 ) ); record2.setChangeType( ChangeType.DATA ); assertFalse( record.equals( record2 ) ); record2 = new ComponentDerivationRecord( "myRecord" ); record2.setChangedEntityName( "Some other name" ); assertFalse( record.equals( record2 ) ); record2 = new ComponentDerivationRecord( "myRecord" ); record.addOperation( new Operation( "testOperation", "testOperand" ) ); assertFalse( record.equals( record2 ) ); }