### Question:
AssignmentRow { public boolean isComplete() { if (isEmpty(name)) { return false; } if (isEmpty(dataType) && isEmpty(customDataType)) { return false; } return nonEmpty(processVar) || nonEmpty(expression); } AssignmentRow();  AssignmentRow(final String name,
                         final Variable.VariableType variableType,
                         final String dataType,
                         final String customDataType,
                         final String processVar,
                         final String expression); long getId(); void setId(final long id); String getName(); void setName(final String name); Variable.VariableType getVariableType(); void setVariableType(final Variable.VariableType variableType); String getDataType(); void setDataType(final String dataType); String getCustomDataType(); void setCustomDataType(final String customDataType); String getProcessVar(); void setProcessVar(final String processVar); String getExpression(); void setExpression(final String expression); boolean isComplete(); @Override boolean equals(final Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void testIsComplete() { AssignmentRow row = new AssignmentRow(null, Variable.VariableType.INPUT, "String", null, null, "Hello World"); assertFalse(row.isComplete()); row.setName(""); assertFalse(row.isComplete()); row.setName("someName"); assertTrue(row.isComplete()); row.setDataType(null); assertFalse(row.isComplete()); row.setDataType(""); assertFalse(row.isComplete()); row.setCustomDataType("String"); assertTrue(row.isComplete()); row.setExpression(null); assertFalse(row.isComplete()); row.setProcessVar("processVar"); assertTrue(row.isComplete()); }