### Question:
AbstractGeoGigOp implements Command<T> { @Override public T call() { try { notifyPre(); T cmdResult = _call(); notifyPost(cmdResult, null); return cmdResult; } catch (RuntimeException e) { notifyPost(null, e); throw e; } } AbstractGeoGigOp(); @Override void addListener(Command.CommandListener l); @Override Map<String, String> getClientData(); C command(Class<C> commandClass); @Override Command<?> setContext(Context locator); @Override Context context(); @Override Command<T> setProgressListener(final ProgressListener listener); @Override ProgressListener getProgressListener(); @Override T call();  }### Answer:
@Test public void testCall() { Command<String> testOp = new AbstractGeoGigOp<String>() { protected @Override String _call() { return "myValue"; } }; assertEquals("myValue", testOp.call()); }