| Index: webrtc/examples/androidjunit/src/org/appspot/apprtc/TCPChannelClientTest.java
|
| diff --git a/webrtc/examples/androidjunit/src/org/appspot/apprtc/TCPChannelClientTest.java b/webrtc/examples/androidjunit/src/org/appspot/apprtc/TCPChannelClientTest.java
|
| index e0e29630d1e173d53be4ec2d17ea98110778d88e..bdfcf76787b45ec48ce9570a915ce7dc0246903e 100644
|
| --- a/webrtc/examples/androidjunit/src/org/appspot/apprtc/TCPChannelClientTest.java
|
| +++ b/webrtc/examples/androidjunit/src/org/appspot/apprtc/TCPChannelClientTest.java
|
| @@ -10,7 +10,7 @@
|
|
|
| package org.appspot.apprtc;
|
|
|
| -import org.appspot.apprtc.util.RobolectricLooperExecutor;
|
| +
|
| import org.junit.After;
|
| import org.junit.Before;
|
| import org.junit.Test;
|
| @@ -21,6 +21,11 @@ import org.robolectric.RobolectricTestRunner;
|
| import org.robolectric.annotation.Config;
|
| import org.robolectric.shadows.ShadowLog;
|
|
|
| +import java.util.concurrent.ExecutionException;
|
| +import java.util.concurrent.ExecutorService;
|
| +import java.util.concurrent.Executors;
|
| +import java.util.concurrent.TimeUnit;
|
| +
|
| import static org.junit.Assert.fail;
|
| import static org.mockito.Mockito.timeout;
|
| import static org.mockito.Mockito.verify;
|
| @@ -38,13 +43,14 @@ public class TCPChannelClientTest {
|
| private static final int CONNECT_TIMEOUT = 100;
|
| private static final int SEND_TIMEOUT = 100;
|
| private static final int DISCONNECT_TIMEOUT = 100;
|
| + private static final int TERMINATION_TIMEOUT = 1000;
|
| private static final String TEST_MESSAGE_SERVER = "Hello, Server!";
|
| private static final String TEST_MESSAGE_CLIENT = "Hello, Client!";
|
|
|
| @Mock TCPChannelClient.TCPChannelEvents serverEvents;
|
| @Mock TCPChannelClient.TCPChannelEvents clientEvents;
|
|
|
| - private RobolectricLooperExecutor executor;
|
| + private ExecutorService executor;
|
| private TCPChannelClient server;
|
| private TCPChannelClient client;
|
|
|
| @@ -55,15 +61,14 @@ public class TCPChannelClientTest {
|
|
|
| MockitoAnnotations.initMocks(this);
|
|
|
| - executor = new RobolectricLooperExecutor();
|
| - executor.requestStart();
|
| + executor = Executors.newSingleThreadExecutor();
|
| }
|
|
|
| @After
|
| public void tearDown() {
|
| verifyNoMoreEvents();
|
|
|
| - executor.executeAndWait(new Runnable() {
|
| + executeAndWait(new Runnable() {
|
| @Override
|
| public void run() {
|
| client.disconnect();
|
| @@ -72,9 +77,9 @@ public class TCPChannelClientTest {
|
| });
|
|
|
| // Stop the executor thread
|
| - executor.requestStop();
|
| + executor.shutdown();
|
| try {
|
| - executor.join();
|
| + executor.awaitTermination(TERMINATION_TIMEOUT, TimeUnit.MILLISECONDS);
|
| } catch (InterruptedException e) {
|
| fail(e.getMessage());
|
| }
|
| @@ -112,7 +117,7 @@ public class TCPChannelClientTest {
|
| public void testSendData() {
|
| testConnectIPv4();
|
|
|
| - executor.executeAndWait(new Runnable() {
|
| + executeAndWait(new Runnable() {
|
| @Override
|
| public void run() {
|
| client.send(TEST_MESSAGE_SERVER);
|
| @@ -127,7 +132,7 @@ public class TCPChannelClientTest {
|
| @Test
|
| public void testDisconnectServer() {
|
| testConnectIPv4();
|
| - executor.executeAndWait(new Runnable() {
|
| + executeAndWait(new Runnable() {
|
| @Override
|
| public void run() {
|
| server.disconnect();
|
| @@ -141,7 +146,7 @@ public class TCPChannelClientTest {
|
| @Test
|
| public void testDisconnectClient() {
|
| testConnectIPv4();
|
| - executor.executeAndWait(new Runnable() {
|
| + executeAndWait(new Runnable() {
|
| @Override
|
| public void run() {
|
| client.disconnect();
|
| @@ -183,4 +188,15 @@ public class TCPChannelClientTest {
|
| verifyNoMoreInteractions(serverEvents);
|
| verifyNoMoreInteractions(clientEvents);
|
| }
|
| +
|
| + /**
|
| + * Queues runnable to be run and waits for it to be executed by the executor thread
|
| + */
|
| + public void executeAndWait(Runnable runnable) {
|
| + try {
|
| + executor.submit(runnable).get();
|
| + } catch (Exception e) {
|
| + fail(e.getMessage());
|
| + }
|
| + }
|
| }
|
|
|