### Question:
FunctionGrid extends BaseExpressionGrid<FunctionDefinition, DMNGridData, FunctionUIModelMapper> implements HasListSelectorControl,
                                                                                                                        HasParametersControl,
                                                                                                                        HasKindSelectControl { @Override public void removeParameter(final InformationItem parameter, final Command onSuccess) { getExpression().get().ifPresent(e -> { sessionCommandManager.execute((AbstractCanvasHandler) sessionManager.getCurrentSession().getCanvasHandler(), new RemoveParameterCommand(e, parameter, () -> { gridLayer.batch(); onSuccess.execute(); })); }); } FunctionGrid(final GridCellTuple parent,
                        final Optional<String> nodeUUID,
                        final HasExpression hasExpression,
                        final Optional<HasName> hasName,
                        final DMNGridPanel gridPanel,
                        final DMNGridLayer gridLayer,
                        final DMNGridData 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 Supplier<ExpressionEditorDefinitions> supplementaryEditorDefinitionsSupplier,
                        final ValueAndDataTypePopoverView.Presenter headerEditor,
                        final ParametersPopoverView.Presenter parametersEditor,
                        final KindPopoverView.Presenter kindEditor,
                        final ReadOnlyProvider readOnlyProvider); @Override FunctionUIModelMapper 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 List<InformationItem> getParameters(); @Override void addParameter(final Command onSuccess); @Override void removeParameter(final InformationItem parameter,
                                final Command onSuccess); @Override void updateParameterName(final InformationItem parameter,
                                    final String name,
                                    final Command onSuccess); @Override void updateParameterTypeRef(final InformationItem parameter,
                                       final QName typeRef); @Override void doAfterHeaderSelectionChange(final int uiHeaderRowIndex,
                                             final int uiHeaderColumnIndex); @Override void setFunctionKind(final FunctionDefinition.Kind kind);  }### Answer:
@Test public void testRemoveParameter() { setupGrid(0); grid.removeParameter(parameter, onSuccess); verify(sessionCommandManager).execute(eq(canvasHandler), removeParameterCommandCaptor.capture()); final RemoveParameterCommand removeParameterCommand = removeParameterCommandCaptor.getValue(); removeParameterCommand.execute(canvasHandler); verify(gridLayer).batch(); verify(onSuccess).execute(); }