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