### Question:
InvocationGrid extends BaseExpressionGrid<Invocation, InvocationGridData, InvocationUIModelMapper> implements HasListSelectorControl { void clearExpressionType(final int uiRowIndex) { final GridCellTuple gc = new GridCellTuple(uiRowIndex, InvocationUIModelMapper.BINDING_EXPRESSION_COLUMN_INDEX, this); getExpression().get().ifPresent(invocation -> { final HasExpression hasExpression = invocation.getBinding().get(uiRowIndex); sessionCommandManager.execute((AbstractCanvasHandler) sessionManager.getCurrentSession().getCanvasHandler(), new ClearExpressionTypeCommand(gc, hasExpression, uiModelMapper, () -> { resize(BaseExpressionGrid.RESIZE_EXISTING_MINIMUM); selectExpressionEditorFirstCell(uiRowIndex, InvocationUIModelMapper.BINDING_EXPRESSION_COLUMN_INDEX); }, () -> { resize(BaseExpressionGrid.RESIZE_EXISTING_MINIMUM); selectExpressionEditorFirstCell(uiRowIndex, InvocationUIModelMapper.BINDING_EXPRESSION_COLUMN_INDEX); })); }); } InvocationGrid(final GridCellTuple parent,
                          final Optional<String> nodeUUID,
                          final HasExpression hasExpression,
                          final Optional<HasName> hasName,
                          final DMNGridPanel gridPanel,
                          final DMNGridLayer gridLayer,
                          final InvocationGridData 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 Supplier<ExpressionEditorDefinitions> expressionEditorDefinitionsSupplier,
                          final ValueAndDataTypePopoverView.Presenter headerEditor,
                          final ReadOnlyProvider readOnlyProvider); @Override InvocationUIModelMapper makeUiModelMapper(); @Override void initialiseUiRows(); @Override void initialiseUiCells(); @Override @SuppressWarnings("unused") 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 testClearExpressionType() { setupGrid(0); grid.clearExpressionType(0); verify(sessionCommandManager).execute(eq(canvasHandler), clearExpressionTypeCommandCaptor.capture()); final ClearExpressionTypeCommand clearExpressionTypeCommand = clearExpressionTypeCommandCaptor.getValue(); clearExpressionTypeCommand.execute(canvasHandler); verify(grid).resize(BaseExpressionGrid.RESIZE_EXISTING_MINIMUM); verify(gridLayer).select(undefinedExpressionEditor); verify(undefinedExpressionEditor).selectFirstCell(); verify(gridLayer).batch(redrawCommandCaptor.capture()); redrawCommandCaptor.getValue().execute(); verify(gridLayer).draw(); reset(grid, gridLayer); clearExpressionTypeCommand.undo(canvasHandler); assertThat(grid.getModel().getColumns().get(2).getWidth()).isEqualTo(UndefinedExpressionColumn.DEFAULT_WIDTH); verify(grid).resize(BaseExpressionGrid.RESIZE_EXISTING_MINIMUM); verify(grid).selectExpressionEditorFirstCell(eq(0), eq(InvocationUIModelMapper.BINDING_EXPRESSION_COLUMN_INDEX)); verify(gridLayer).select(undefinedExpressionEditor); verify(undefinedExpressionEditor, times(2)).selectFirstCell(); verify(gridLayer).batch(redrawCommandCaptor.capture()); assertThat(redrawCommandCaptor.getAllValues()).hasSize(2); redrawCommandCaptor.getAllValues().get(1).execute(); verify(gridLayer).draw(); }