package com.mopub.mobileads.util; import com.mopub.common.test.support.SdkTestRunner; import com.mopub.mobileads.test.support.ThreadUtils; import org.apache.http.client.HttpClient; import org.apache.http.conn.ClientConnectionManager; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.stub; import static org.mockito.Mockito.verify; @RunWith(SdkTestRunner.class) public class HttpClientsTest { public static final int HTTP_CLIENT_SHUTDOWN_TIME = 100; private HttpClient httpClient; private ClientConnectionManager clientConnectionManager; @Before public void setUp() throws Exception { httpClient = mock(HttpClient.class); clientConnectionManager = mock(ClientConnectionManager.class); stub(httpClient.getConnectionManager()).toReturn(clientConnectionManager); } @Test public void safeShutdown_shouldShutdownHttpClient() throws Exception { HttpClients.safeShutdown(httpClient); ThreadUtils.pause(HTTP_CLIENT_SHUTDOWN_TIME); verify(clientConnectionManager).shutdown(); } @Test public void safeShutdown_withNullHttpClient_shouldNotBlowUp() throws Exception { HttpClients.safeShutdown(null); ThreadUtils.pause(HTTP_CLIENT_SHUTDOWN_TIME); verify(clientConnectionManager, never()).shutdown(); } @Test public void safeShutdown_withNullConnectionManager_shouldNotBlowUp() throws Exception { stub(httpClient.getConnectionManager()).toReturn(null); HttpClients.safeShutdown(httpClient); ThreadUtils.pause(HTTP_CLIENT_SHUTDOWN_TIME); verify(clientConnectionManager, never()).shutdown(); } }