DecoratorExecutor { public void processBefore(final TestInvocation invocation) throws Exception { final Iterator<TestMethodDecorator> it = methodDecoratorIterator(invocation.getContext(), BEFORE_COMPARATOR); while (it.hasNext()) { it.next().beforeTest(invocation); } }  void processBeforeAll(final TestInvocation invocation); void processAfterAll(final TestInvocation invocation); void processBefore(final TestInvocation invocation); void processAfter(final TestInvocation invocation);  }
@Test public void testProcessBeforeTestDecoratorExecutionOrder() throws Exception { final DecoratorExecutor unit = new DecoratorExecutor(); unit.processBefore(invocation); final InOrder order = inOrder(firstMethodDecorator, secondMethodDecorator); order.verify(firstMethodDecorator).beforeTest(eq(invocation)); order.verify(secondMethodDecorator).beforeTest(eq(invocation)); verifyZeroInteractions(firstClassDecorator, secondClassDecorator); }