### Question:
SourceConfigurationParamsPresenter extends AbstractHasContentChangeHandlers implements PipelineParamsForm { @Override public void isComplete(final Callback<Boolean> callback) { callback.callback(isValid()); } @Inject  SourceConfigurationParamsPresenter(final View view,
                                              final Caller<SourceService> sourceService); @PostConstruct void init(); @Override IsElement getView(); @Override String getWizardTitle(); @Override void isComplete(final Callback<Boolean> callback); @Override void initialise(); @Override void prepareView(); @Override Map<String, String> buildParams(); @Override void clear(); void disable(); static final String REPO_NAME; static final String BRANCH; static final String MODULE_DIR; }### Answer:
@Test public void testIsComplete() { when(view.getRuntimeName()).thenReturn(EMPTY_STRING); when(view.getOU()).thenReturn(EMPTY_STRING); when(view.getRepository()).thenReturn(EMPTY_STRING); when(view.getBranch()).thenReturn(EMPTY_STRING); when(view.getModule()).thenReturn(EMPTY_STRING); presenter.isComplete(Assert::assertFalse); when(view.getRuntimeName()).thenReturn(SOME_VALUE); presenter.isComplete(Assert::assertFalse); when(view.getOU()).thenReturn(OU); presenter.isComplete(Assert::assertFalse); when(view.getRepository()).thenReturn(REPOSITORY); presenter.isComplete(Assert::assertFalse); when(view.getBranch()).thenReturn(BRANCH); when(sourceService.getModules(eq(SPACE), eq(REPOSITORY), eq(BRANCH))).thenReturn(modules); presenter.onBranchChange(); int selectedModule = 1; String moduleName = modules.get(selectedModule).getModuleName(); when(view.getModule()).thenReturn(moduleName); presenter.isComplete(Assert::assertTrue); }