AdditionalInfoPage extends BaseDecisionTableColumnPage<T> { @Override public void isComplete(final Callback<Boolean> callback) { boolean isNotEmpty = isHeaderNotEmpty(); boolean isUnique = isHeaderUnique(); boolean isValid = isNotEmpty && isUnique; if (!isNotEmpty) { view.showWarning(translate(GuidedDecisionTableErraiConstants.YouMustEnterAColumnHeaderValueDescription)); } if (!isUnique) { view.showWarning(translate(GuidedDecisionTableErraiConstants.ThatColumnNameIsAlreadyInUsePleasePickAnother)); } if (isValid) { view.hideWarning(); } callback.callback(isValid); } @Inject  AdditionalInfoPage(final View view,
                              final TranslationService translationService); @Override String getTitle(); @Override void prepareView(); @Override void isComplete(final Callback<Boolean> callback); void enableHideColumn(); void enableLogicallyInsert(); void enableUpdateEngineWithChanges(); void enableHeader(); String getHeader(); void setUpdate(final Boolean update);  }
@Test public void testIsCompleteWhenHeaderIsNotEnabled() throws Exception { createEmptyModel(); page.isComplete(Assert::assertFalse); verify(view).showWarning(ENTER_COLUMN_DESCRIPTION); }