### Question:
RelationGrid extends BaseExpressionGrid<Relation, RelationGridData, RelationUIModelMapper> implements HasListSelectorControl { void deleteColumn(final int index) { getExpression().get().ifPresent(relation -> { sessionCommandManager.execute((AbstractCanvasHandler) sessionManager.getCurrentSession().getCanvasHandler(), new DeleteRelationColumnCommand(relation, model, index, uiModelMapper, () -> resize(BaseExpressionGrid.RESIZE_EXISTING_MINIMUM), () -> resize(BaseExpressionGrid.RESIZE_EXISTING))); }); } RelationGrid(final GridCellTuple parent,
                        final Optional<String> nodeUUID,
                        final HasExpression hasExpression,
                        final Optional<HasName> hasName,
                        final DMNGridPanel gridPanel,
                        final DMNGridLayer gridLayer,
                        final RelationGridData gridData,
                        final DefinitionUtils definitionUtils,
                        final SessionManager sessionManager,
                        final SessionCommandManager<AbstractCanvasHandler> sessionCommandManager,
                        final DefaultCanvasCommandFactory canvasCommandFactory,
                        final Event<ExpressionEditorChanged> editorSelectedEvent,
                        final Event<RefreshFormPropertiesEvent> refreshFormPropertiesEvent,
                        final Event<DomainObjectSelectionEvent> domainObjectSelectionEvent,
                        final CellEditorControlsView.Presenter cellEditorControls,
                        final ListSelectorView.Presenter listSelector,
                        final TranslationService translationService,
                        final boolean isOnlyVisualChangeAllowed,
                        final int nesting,
                        final ManagedInstance<ValueAndDataTypePopoverView.Presenter> headerEditors,
                        final ReadOnlyProvider readOnlyProvider); @Override RelationUIModelMapper makeUiModelMapper(); @Override void initialiseUiColumns(); @Override void initialiseUiRows(); @Override void initialiseUiCells(); @Override @SuppressWarnings("unused") java.util.List<ListSelectorItem> getItems(final int uiRowIndex,
                                                     final int uiColumnIndex); @Override void onItemSelected(final ListSelectorItem item); @Override void doAfterSelectionChange(final int uiRowIndex,
                                       final int uiColumnIndex); @Override void doAfterHeaderSelectionChange(final int uiHeaderRowIndex,
                                             final int uiHeaderColumnIndex);  }### Answer:
@Test public void testDeleteColumn() { relation.getColumn().add(new InformationItem()); setupGrid(0); grid.deleteColumn(RelationUIModelMapperHelper.ROW_INDEX_COLUMN_COUNT); verify(sessionCommandManager).execute(eq(canvasHandler), deleteColumnCommand.capture()); deleteColumnCommand.getValue().execute(canvasHandler); verifyCommandExecuteOperation(BaseExpressionGrid.RESIZE_EXISTING_MINIMUM); reset(gridPanel, gridLayer, grid, parentGridColumn); verify(sessionCommandManager).execute(eq(canvasHandler), deleteColumnCommand.capture()); deleteColumnCommand.getValue().undo(canvasHandler); verifyCommandUndoOperation(BaseExpressionGrid.RESIZE_EXISTING); }