mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-07 01:54:22 +00:00
[task 82428] added a test to verify whether a timeout is being set
This commit is contained in:
@@ -71,15 +71,14 @@ public class OpenUrlServiceImpl implements OpenUrlService {
|
||||
*/
|
||||
protected int getResponseCodeFromUrl(final String urlStr) throws IOException {
|
||||
HttpGet httpGet = new HttpGet(urlStr);
|
||||
HttpClient httpClient = getHttpClient();
|
||||
RequestConfig requestConfig = getRequestConfigBuilder().setConnectTimeout(10*1000).build();
|
||||
HttpClient httpClient = HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).build();
|
||||
HttpResponse httpResponse = httpClient.execute(httpGet);
|
||||
return httpResponse.getStatusLine().getStatusCode();
|
||||
}
|
||||
|
||||
HttpClient getHttpClient(){
|
||||
//setting a timeout of 10 seconds so the connection pool doesn't exhaust when waiting a long time for a reply.
|
||||
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(10*1000).build();
|
||||
return HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).build();
|
||||
RequestConfig.Builder getRequestConfigBuilder(){
|
||||
return RequestConfig.custom();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -11,6 +11,7 @@ import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.Mockito.doAnswer;
|
||||
import static org.mockito.Mockito.doCallRealMethod;
|
||||
import static org.mockito.Mockito.doNothing;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
@@ -25,13 +26,26 @@ import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.amazonaws.http.client.HttpClientFactory;
|
||||
import org.apache.http.HttpVersion;
|
||||
import org.apache.http.ProtocolVersion;
|
||||
import org.apache.http.client.HttpClient;
|
||||
import org.apache.http.client.config.RequestConfig;
|
||||
import org.apache.http.client.methods.HttpUriRequest;
|
||||
import org.apache.http.impl.client.HttpClientBuilder;
|
||||
import org.apache.http.message.BasicHttpResponse;
|
||||
import org.apache.solr.client.solrj.impl.HttpClientBuilderFactory;
|
||||
import org.dspace.core.Context;
|
||||
import org.dspace.statistics.export.OpenURLTracker;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockedStatic;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.Spy;
|
||||
import org.mockito.internal.stubbing.answers.AnswersWithDelay;
|
||||
import org.mockito.internal.stubbing.answers.Returns;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
/**
|
||||
@@ -61,8 +75,6 @@ public class OpenUrlServiceImplTest {
|
||||
openUrlService.processUrl(context, "test-url");
|
||||
|
||||
verify(openUrlService, times(0)).logfailed(context, "test-url");
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -82,7 +94,6 @@ public class OpenUrlServiceImplTest {
|
||||
|
||||
verify(openUrlService, times(1)).logfailed(context, "test-url");
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -131,4 +142,19 @@ public class OpenUrlServiceImplTest {
|
||||
assertThat(tracker1.getUrl(), is(failedUrl));
|
||||
|
||||
}
|
||||
|
||||
@Test()
|
||||
public void testTimeout() throws SQLException {
|
||||
Context context = mock(Context.class);
|
||||
String URL = "http://bla.com";
|
||||
|
||||
RequestConfig.Builder requestConfig = mock(RequestConfig.Builder.class);
|
||||
doReturn(requestConfig).when(openUrlService).getRequestConfigBuilder();
|
||||
doReturn(requestConfig).when(requestConfig).setConnectTimeout(10*1000);
|
||||
doReturn(RequestConfig.custom().build()).when(requestConfig).build();
|
||||
|
||||
openUrlService.processUrl(context, URL);
|
||||
|
||||
Mockito.verify(requestConfig).setConnectTimeout(10*1000);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user