UseCaseWrapper { public void execute() { try { Method methodToInvoke = UseCaseFilter.filter(useCase, useCaseParams); methodToInvoke.invoke(useCase, useCaseParams.getArgs()); } catch (Exception e) { notifyException(e); } } UseCaseWrapper(RosieUseCase useCase, UseCaseParams useCaseParams, ErrorHandler errorHandler); void execute();  }
@Test public void testExecuteWithArgs() throws Exception { AnyUseCase anyUseCase = new AnyUseCase(); UseCaseParams argsParams = givenUseCaseParamsWithArgs(ANY_FIRST_ARG, ANY_SECOND_ARG); UseCaseWrapper useCaseWrapper = new UseCaseWrapper(anyUseCase, argsParams, null); useCaseWrapper.execute(); assertEquals("anyValue", anyUseCase.getArg1()); assertEquals(2, anyUseCase.getArg2()); }