### Question:
ActionInvoker { public String execute(Action action) { action.execute(); undoStack.push(action); redoStack.clear(); listeners.forEach(listener -> listener.onActionExecuted(action)); return action.getExecuteText(); }  String undo(); String redo(); String execute(Action action); boolean canUndo(); boolean canRedo(); Action nextUndo(); Action nextRedo(); void registerActionOccuredListener(ActionOccurredListener listener); void unregisterActionOccuredListener(ActionOccurredListener listener);  }### Answer:
@Test public void BasicExecuteTest() { ModifySettableItemAction action = new ModifySettableItemAction(item, "New"); invoker.execute(action); assertEquals("New", item.getString()); }