### Question:
TaskExecutor implements Executor { @Override public void killTask(final ExecutorDriver executorDriver, final Protos.TaskID taskID) { executorDriver.sendStatusUpdate(Protos.TaskStatus.newBuilder().setTaskId(taskID).setState(Protos.TaskState.TASK_KILLED).build()); DaemonTaskScheduler.shutdown(taskID); } TaskExecutor(); @Override void registered(final ExecutorDriver executorDriver, final Protos.ExecutorInfo executorInfo, final Protos.FrameworkInfo frameworkInfo, final Protos.SlaveInfo slaveInfo); @Override void reregistered(final ExecutorDriver executorDriver, final Protos.SlaveInfo slaveInfo); @Override void disconnected(final ExecutorDriver executorDriver); @Override void launchTask(final ExecutorDriver executorDriver, final Protos.TaskInfo taskInfo); @Override void killTask(final ExecutorDriver executorDriver, final Protos.TaskID taskID); @Override void frameworkMessage(final ExecutorDriver executorDriver, final byte[] bytes); @Override void shutdown(final ExecutorDriver executorDriver); @Override void error(final ExecutorDriver executorDriver, final String message);  }### Answer:
@Test public void assertKillTask() { TaskID taskID = Protos.TaskID.newBuilder().setValue("task_id").build(); taskExecutor.killTask(executorDriver, taskID); verify(executorDriver).sendStatusUpdate(Protos.TaskStatus.newBuilder().setTaskId(taskID).setState(Protos.TaskState.TASK_KILLED).build()); }