/* * Copyright (c) 2007 Mockito contributors * This program is made available under the terms of the MIT License. */ package org.concurrentmockito; import org.junit.Test; import org.mockito.InOrder; import org.mockitoutil.TestBase; import static org.mockito.Mockito.inOrder; import static org.mockito.Mockito.mock; public class VerificationInOrderFromMultipleThreadsTest extends TestBase { @Test public void shouldVerifyInOrderWhenMultipleThreadsInteractWithMock() throws Exception { final Foo testInf = mock(Foo.class); Thread threadOne = new Thread(new Runnable(){ public void run() { testInf.methodOne(); } }); threadOne.start(); threadOne.join(); Thread threadTwo = new Thread(new Runnable(){ public void run() { testInf.methodTwo(); } }); threadTwo.start(); threadTwo.join(); InOrder inOrder = inOrder(testInf); inOrder.verify(testInf).methodOne(); inOrder.verify(testInf).methodTwo(); } public interface Foo { void methodOne(); void methodTwo(); } }