void removeLinksForDecisionTable(final GuidedDecisionTableView.Presenter dtPresenter) { getAvailableDecisionTables() .stream() .map(other -> other.getView().getModel().getColumns()) .forEach(columns -> columns .stream() .filter(GridColumn::isLinked) .filter(column -> dtPresenter.getView().getModel().getColumns().contains(column.getLink())) .forEach(column -> column.setLink(null))); }
void removeLinksForDecisionTable(final GuidedDecisionTableView.Presenter dtPresenter) { getAvailableDecisionTables() .stream() .map(other -> other.getView().getModel().getColumns()) .forEach(columns -> columns .stream() .filter(GridColumn::isLinked) .filter(column -> dtPresenter.getView().getModel().getColumns().contains(column.getLink())) .forEach(column -> column.setLink(null))); }
@Override public void link(final Set<GuidedDecisionTableView.Presenter> dtPresenters) { final Set<GuidedDecisionTableView.Presenter> otherDecisionTables = new HashSet<>(); otherDecisionTables.addAll(dtPresenters); otherDecisionTables.remove(this); otherDecisionTables.stream().forEach((e) -> linkManager.link(this.getModel(), e.getModel(), (final int sourceColumnIndex, final int targetColumnIndex) -> { final GridData sourceUiModel = GuidedDecisionTablePresenter.this.getView().getModel(); final GridData targetUiModel = e.getView().getModel(); targetUiModel.getColumns().get(targetColumnIndex).setLink(sourceUiModel.getColumns().get(sourceColumnIndex)); })); }
@Override public void link(final Set<GuidedDecisionTableView.Presenter> dtPresenters) { final Set<GuidedDecisionTableView.Presenter> otherDecisionTables = new HashSet<>(); otherDecisionTables.addAll(dtPresenters); otherDecisionTables.remove(this); otherDecisionTables.stream().forEach((e) -> linkManager.link(this.getModel(), e.getModel(), (final int sourceColumnIndex, final int targetColumnIndex) -> { final GridData sourceUiModel = GuidedDecisionTablePresenter.this.getView().getModel(); final GridData targetUiModel = e.getView().getModel(); targetUiModel.getColumns().get(targetColumnIndex).setLink(sourceUiModel.getColumns().get(sourceColumnIndex)); })); }
@Test @SuppressWarnings("unchecked") public void testNoLink() throws Exception { addActionInsertFactToModel(model1, "Applicant", "name"); addConstraintToModel(model2, "Applicant", "age"); linkTables(); verify(uiModel2MockColumn, never()).setLink(eq(uiModel1MockColumn)); verify(uiModel1MockColumn, never()).setLink(eq(uiModel2MockColumn)); }
@Test @SuppressWarnings("unchecked") public void linkMultipleRelatedTables() { addActionInsertFactToModel(model1, "Applicant", "name"); addConstraintToModel(model2, "Applicant", "name"); addConstraintToModel(model3, "Applicant", "name"); linkTables(); verify(uiModel1Columns, atLeast(1)).get(eq(2)); verify(uiModel2Columns, atLeast(1)).get(eq(2)); verify(uiModel3Columns, atLeast(1)).get(eq(2)); verify(uiModel2MockColumn).setLink(eq(uiModel1MockColumn)); verify(uiModel3MockColumn).setLink(eq(uiModel1MockColumn)); }
@Test @SuppressWarnings("unchecked") public void testLinkOneProducerTwoConsumersOneFact() throws Exception { addActionInsertFactToModel(model1, "Applicant", "name"); addActionInsertFactToModel(model1, "Applicant", "age"); addConstraintToModel(model2, "Applicant", "name"); addBrlConstraintToModel(model3, "Applicant", "age"); linkTables(); verify(uiModel2MockColumn).setLink(eq(uiModel1MockColumn)); verify(uiModel3MockColumn).setLink(eq(uiModel1MockColumn)); }
@Test @SuppressWarnings("unchecked") public void testLinkOneProducerTwoConsumersTwoFacts() throws Exception { addActionInsertFactToModel(model1, "Applicant", "name"); addActionInsertFactToModel(model1, "LoanApplication", "amount"); addConstraintToModel(model2, "Applicant", "name"); addBrlConstraintToModel(model3, "LoanApplication", "amount"); linkTables(); verify(uiModel2MockColumn).setLink(eq(uiModel1MockColumn)); verify(uiModel3MockColumn).setLink(eq(uiModel1MockColumn)); }
@Test @SuppressWarnings("unchecked") public void testLinkCircle() throws Exception { addConstraintToModel(model1, "Applicant", "name"); addActionInsertFactToModel(model1, "Applicant", "age"); addConstraintToModel(model2, "Applicant", "age"); addActionInsertFactToModel(model2, "LoanApplication", "amount"); addConstraintToModel(model3, "LoanApplication", "amount"); addActionInsertFactToModel(model3, "Applicant", "name"); linkTables(); verify(uiModel1MockColumn).setLink(eq(uiModel3MockColumn)); verify(uiModel2MockColumn).setLink(eq(uiModel1MockColumn)); verify(uiModel3MockColumn).setLink(eq(uiModel2MockColumn)); }
@Test @SuppressWarnings("unchecked") public void testLinkTwoProducersOneConsumerTwoFacts() throws Exception { addBrlInsertActionToModel(model1, "Applicant", "name"); addBrlInsertActionToModel(model1, "LoanApplication", "age"); addActionInsertFactToModel(model2, "Applicant", "name"); addActionInsertFactToModel(model2, "Applicant", "age"); addConstraintToModel(model3, "Applicant", "name"); linkTables(); verify(uiModel3MockColumn).setLink(eq(uiModel1MockColumn)); verify(uiModel3MockColumn).setLink(eq(uiModel2MockColumn)); }
@Test @SuppressWarnings("unchecked") public void testLinkTwoProducersOneConsumerOneFact() throws Exception { addBrlInsertActionToModel(model1, "Applicant", "name"); addBrlInsertActionToModel(model1, "Applicant", "age"); addActionInsertFactToModel(model2, "Applicant", "name"); addActionInsertFactToModel(model2, "Applicant", "age"); addConstraintToModel(model3, "Applicant", "name"); linkTables(); verify(uiModel3MockColumn).setLink(eq(uiModel1MockColumn)); verify(uiModel3MockColumn).setLink(eq(uiModel2MockColumn)); }
dtPresenter2.getView().getModel().appendColumn(dtPresenter2Column2); dtPresenter1Column2.setLink(dtPresenter2Column2); dtPresenter2Column1.setLink(dtPresenter1Column1); times(1)).setLink(eq(dtPresenter2Column2)); verify(dtPresenter2Column1, times(1)).setLink(eq(dtPresenter1Column1)); never()).setLink(any()); verify(dtPresenter1Column2, never()).setLink(any()); times(1)).setLink(eq(null)); verify(dtPresenter2Column2, never()).setLink(any());