### Question:
AbstractCommand implements Command, Runnable { @Override public void start(Environment env) throws IOException { this.env = env; ctx.getCommandRunnerPool().execute(this); } AbstractCommand(Context ctx); abstract C command(String command); @Override void setInputStream(InputStream in); @Override void setOutputStream(OutputStream out); @Override void setErrorStream(OutputStream err); @Override void setExitCallback(ExitCallback callback); @Override void start(Environment env); void addEndCallback(EndCallback<C> callback); @Override void destroy();  }### Answer:
@Test public void testStart() throws Exception { cmd.start(env); verify(commandRunnerPool).execute(cmd); }