### Question:
TableChooserDialog extends DialogComponentProvider implements NavigatableRemovalListener { public int getRowCount() { return model.getRowCount(); } TableChooserDialog(PluginTool tool, TableChooserExecutor executor, Program program,
			String title, Navigatable navigatable, boolean isModal);  TableChooserDialog(PluginTool tool, TableChooserExecutor executor, Program program,
			String title, Navigatable navigatable); void setClosedListener(Callback callback); void add(AddressableRowObject rowObject); void remove(AddressableRowObject rowObject); void show(); @Override void close(); boolean isBusy(); void addCustomColumn(ColumnDisplay<?> columnDisplay); @Override void navigatableRemoved(Navigatable nav); void setMessage(String message); int getRowCount(); void clearSelection(); void selectRows(int... rows); int[] getSelectedRows(); List<AddressableRowObject> getSelectedRowObjects();  }### Answer:
@Test public void testButtonCallbabck() { int rowCount = getRowCount(); TestStubRowObject rowObject = selectRow(0); pressExecuteButton(); waitForDialog(); assertNotInDialog(rowObject); assertRowCount(rowCount - 1); }
@Test public void testCallbackWithoutRemoval() { int rowCount = getRowCount(); TestStubRowObject rowObject = selectRow(0); testDecision = r -> false; pressExecuteButton(); waitForDialog(); assertInDialog(rowObject); assertOnlyExecutedOnce(rowObject); assertRowCount(rowCount); }