Fix issue where http client builder was always using default timeout. (#184)

This commit is contained in:
Artur Souza 2020-01-30 17:34:19 -08:00 committed by GitHub
parent 082c4a46fc
commit 145326a70d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 2 deletions

View File

@ -52,7 +52,7 @@ public class DaprHttpBuilder {
*/ */
private DaprHttp buildDaprHttp() { private DaprHttp buildDaprHttp() {
OkHttpClient.Builder builder = new OkHttpClient.Builder(); OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.readTimeout(DEFAULT_READ_TIMEOUT); builder.readTimeout(this.readTimeout);
OkHttpClient okHttpClient = builder.build(); OkHttpClient okHttpClient = builder.build();
return new DaprHttp(Properties.HTTP_PORT.get(), okHttpClient); return new DaprHttp(Properties.HTTP_PORT.get(), okHttpClient);
} }

View File

@ -1,7 +1,12 @@
package io.dapr.client; package io.dapr.client;
import okhttp3.OkHttpClient;
import org.junit.Test; import org.junit.Test;
import java.lang.reflect.Field;
import java.time.Duration; import java.time.Duration;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
@ -10,10 +15,27 @@ public class DaprHttpBuilderTest {
@Test @Test
public void withReadTimeout() throws Exception { public void withReadTimeout() throws Exception {
DaprHttpBuilder daprHttpBuilder = new DaprHttpBuilder(); DaprHttpBuilder daprHttpBuilder = new DaprHttpBuilder();
Duration duration = mock(Duration.class); Duration duration = Duration.ofSeconds(999);
daprHttpBuilder.build(); daprHttpBuilder.build();
DaprHttpBuilder dapr = daprHttpBuilder.withReadTimeout(duration); DaprHttpBuilder dapr = daprHttpBuilder.withReadTimeout(duration);
assertNotNull(dapr); assertNotNull(dapr);
DaprHttp daprHttp = daprHttpBuilder.build();
assertOKHttpPropertyValue(daprHttp, "readTimeoutMillis", (int)duration.toMillis());
}
private static final void assertOKHttpPropertyValue(DaprHttp daprHttp, String propertyName, Object expectedValue) throws Exception {
// First, get okHttpClient.
Field httpClientField = DaprHttp.class.getDeclaredField("httpClient");
httpClientField.setAccessible(true);
OkHttpClient okHttpClient = (OkHttpClient) httpClientField.get(daprHttp);
assertNotNull(okHttpClient);
Field propertyField = OkHttpClient.class.getDeclaredField(propertyName);
propertyField.setAccessible(true);
Object value = propertyField.get(okHttpClient);
assertNotNull(value);
assertEquals(expectedValue, value);
} }
} }