ProcessManagerWrapper implements ProcessManager<R> { @Override public Map<UUID, List<UUID>> start(List<R> specifications) { List<T> transformedSpecifications = new ArrayList<>(); for (R spec : specifications) transformedSpecifications.add(transformSpecification(spec)); return delegate.start(transformedSpecifications); } ProcessManagerWrapper(ProcessManager<T> delegate); @Override Map<UUID, List<UUID>> start(List<R> specifications); @Override Map<UUID, List<LongRunningProcessStatus>> ping(Map<UUID, List<UUID>> procIds); @Override Map<UUID, List<LongRunningProcessStatus>> stop(Map<UUID, List<UUID>> procIds, boolean clear); @Override Map<UUID, List<LongRunningProcessStatus>> clear(Map<UUID, List<UUID>> procIds);  }
@Test public void testStart() { wrapper.start(Arrays.asList(1, 2, 3)); verify(delegate).start(eq(Arrays.asList("1", "2", "3"))); }