Skip to content

Commit

Permalink
feat(http): timeout must be in seconds (#1065)
Browse files Browse the repository at this point in the history
  • Loading branch information
Oleksiivanov committed Aug 23, 2023
1 parent 26cbed1 commit 55b0f2d
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 11 deletions.
Expand Up @@ -135,12 +135,12 @@ void execute_shouldSetConnectTime(final String input)
// given - minimal required entity
final var context =
OutboundConnectorContextBuilder.create().variables(input).secrets(name -> "foo").build();
final var expectedTime =
final var expectedTimeInMilliseconds =
gson.fromJson(
gson.fromJson(input, JsonObject.class).get("graphql").toString(),
GraphQLRequest.class)
.getConnectionTimeoutInSeconds();

gson.fromJson(input, JsonObject.class).get("graphql").toString(),
GraphQLRequest.class)
.getConnectionTimeoutInSeconds()
* 1000;
when(requestFactory.buildRequest(
anyString(), any(GenericUrl.class), nullable(HttpContent.class)))
.thenReturn(httpRequest);
Expand All @@ -150,7 +150,7 @@ void execute_shouldSetConnectTime(final String input)
// when
functionUnderTest.execute(context);
// then
verify(httpRequest).setConnectTimeout(expectedTime);
verify(httpRequest).setConnectTimeout(expectedTimeInMilliseconds);
}

@ParameterizedTest
Expand Down
Expand Up @@ -22,6 +22,7 @@
import com.google.api.client.http.HttpRequest;
import com.google.api.client.http.HttpRequestFactory;
import java.io.IOException;
import java.util.concurrent.TimeUnit;

public final class HttpRequestBuilder {

Expand Down Expand Up @@ -70,7 +71,8 @@ public HttpRequest build(final HttpRequestFactory requestFactory) throws IOExcep
httpRequest.setHeaders(headers);
}
if (connectionTimeoutInSeconds != null) {
int intConnectionTimeout = connectionTimeoutInSeconds;
long connectionTimeout = TimeUnit.SECONDS.toMillis(connectionTimeoutInSeconds);
int intConnectionTimeout = Math.toIntExact(connectionTimeout);
httpRequest.setConnectTimeout(intConnectionTimeout);
httpRequest.setReadTimeout(intConnectionTimeout);
httpRequest.setWriteTimeout(intConnectionTimeout);
Expand Down
Expand Up @@ -18,12 +18,14 @@

import com.google.api.client.http.HttpRequest;
import io.camunda.connector.http.base.model.HttpCommonRequest;
import java.util.concurrent.TimeUnit;

public class Timeout {

public static void setTimeout(HttpCommonRequest request, HttpRequest httpRequest) {
if (request.getConnectionTimeoutInSeconds() != null) {
int intConnectionTimeout = request.getConnectionTimeoutInSeconds();
long connectionTimeout = TimeUnit.SECONDS.toMillis(request.getConnectionTimeoutInSeconds());
int intConnectionTimeout = Math.toIntExact(connectionTimeout);
httpRequest.setConnectTimeout(intConnectionTimeout);
httpRequest.setReadTimeout(intConnectionTimeout);
httpRequest.setWriteTimeout(intConnectionTimeout);
Expand Down
Expand Up @@ -195,8 +195,8 @@ void execute_shouldSetConnectTime(final String input)
// given - minimal required entity
final var context =
OutboundConnectorContextBuilder.create().variables(input).secrets(name -> "foo").build();
final var expectedTime =
context.bindVariables(HttpJsonRequest.class).getConnectionTimeoutInSeconds();
final var expectedTimeInMilliseconds =
context.bindVariables(HttpJsonRequest.class).getConnectionTimeoutInSeconds() * 1000;

when(requestFactory.buildRequest(
anyString(), any(GenericUrl.class), nullable(HttpContent.class)))
Expand All @@ -207,7 +207,7 @@ void execute_shouldSetConnectTime(final String input)
// when
functionUnderTest.execute(context);
// then
verify(httpRequest).setConnectTimeout(expectedTime);
verify(httpRequest).setConnectTimeout(expectedTimeInMilliseconds);
}

@ParameterizedTest
Expand Down

0 comments on commit 55b0f2d

Please sign in to comment.