Skip to content

Commit 680723b

Browse files
increasing code coverage
1 parent b67567a commit 680723b

File tree

3 files changed

+28
-14
lines changed

3 files changed

+28
-14
lines changed

src/main/java/com/getindata/connectors/http/internal/retry/HttpClientWithRetry.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import io.github.resilience4j.retry.RetryConfig;
77
import lombok.Builder;
88
import lombok.Getter;
9-
import lombok.NonNull;
109
import lombok.RequiredArgsConstructor;
1110
import lombok.extern.slf4j.Slf4j;
1211

@@ -25,9 +24,9 @@ public class HttpClientWithRetry {
2524
private final HttpResponseChecker responseChecker;
2625

2726
@Builder
28-
HttpClientWithRetry(@NonNull HttpClient httpClient,
29-
@NonNull RetryConfig retryConfig,
30-
@NonNull HttpResponseChecker responseChecker) {
27+
HttpClientWithRetry(HttpClient httpClient,
28+
RetryConfig retryConfig,
29+
HttpResponseChecker responseChecker) {
3130
this.httpClient = httpClient;
3231
this.responseChecker = responseChecker;
3332
this.retryConfig = RetryConfig.from(retryConfig)
@@ -65,6 +64,7 @@ private <T> HttpResponse<T> task(
6564
var validationFailedException = new HttpStatusCodeValidationFailedException(
6665
"Incorrect response code: " + response.statusCode(), response);
6766
if (responseChecker.isTemporalError(response)) {
67+
log.debug("Retrying... Received response with code {} for request {}", response.statusCode(), request);
6868
throw new RetryHttpRequestException(validationFailedException);
6969
}
7070
throw validationFailedException;

src/main/java/com/getindata/connectors/http/internal/retry/RetryConfigProvider.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,12 @@ private RetryConfig create() {
3131

3232
private RetryConfig.Builder<?> createBuilder() {
3333
var retryStrategy = getRetryStrategy();
34-
switch (retryStrategy) {
35-
case FIXED_DELAY:
36-
return configureFixedDelay();
37-
case EXPONENTIAL_DELAY:
38-
return configureExponentialDelay();
39-
default:
40-
throw new IllegalStateException("Unsupported retry strategy: " + retryStrategy);
34+
if (retryStrategy == RetryStrategyType.FIXED_DELAY) {
35+
return configureFixedDelay();
36+
} else if (retryStrategy == RetryStrategyType.EXPONENTIAL_DELAY) {
37+
return configureExponentialDelay();
4138
}
39+
throw new IllegalArgumentException("Unsupported retry strategy: " + retryStrategy);
4240
}
4341

4442
private RetryStrategyType getRetryStrategy() {

src/test/java/com/getindata/connectors/http/internal/retry/RetryConfigProviderTest.java

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
11
package com.getindata.connectors.http.internal.retry;
22

33
import org.apache.flink.configuration.Configuration;
4-
import org.apache.flink.util.ConfigurationException;
54
import org.junit.jupiter.api.Test;
65

76
import java.util.stream.IntStream;
87

98
import static org.junit.jupiter.api.Assertions.assertEquals;
9+
import static org.junit.jupiter.api.Assertions.assertThrows;
10+
import static org.mockito.Mockito.mock;
11+
import static org.mockito.Mockito.mockStatic;
1012

1113
class RetryConfigProviderTest {
1214

1315
@Test
14-
void verifyFixedDelayRetryConfig() throws ConfigurationException {
16+
void verifyFixedDelayRetryConfig() {
1517
var config = new Configuration();
1618
config.setString("gid.connector.http.source.lookup.retry-strategy.type", "fixed-delay");
1719
config.setString("gid.connector.http.source.lookup.retry-strategy.fixed-delay.delay", "10s");
@@ -26,7 +28,7 @@ void verifyFixedDelayRetryConfig() throws ConfigurationException {
2628
}
2729

2830
@Test
29-
void verifyExponentialDelayConfig() throws ConfigurationException {
31+
void verifyExponentialDelayConfig() {
3032
var config = new Configuration();
3133
config.setString("gid.connector.http.source.lookup.retry-strategy.type", "exponential-delay");
3234
config.setString("gid.connector.http.source.lookup.retry-strategy.exponential-delay.initial-backoff", "15ms");
@@ -45,4 +47,18 @@ void verifyExponentialDelayConfig() throws ConfigurationException {
4547
assertEquals(120, intervalFunction.apply(5));
4648
assertEquals(120, intervalFunction.apply(6));
4749
}
50+
51+
@Test
52+
void failWhenStrategyIsUnsupported() {
53+
var config = new Configuration();
54+
config.setString("gid.connector.http.source.lookup.retry-strategy.type", "dummy");
55+
56+
try (var mockedStatic = mockStatic(RetryStrategyType.class)) {
57+
var dummyStrategy = mock(RetryStrategyType.class);
58+
mockedStatic.when(() -> RetryStrategyType.fromCode("dummy")).thenReturn(dummyStrategy);
59+
60+
assertThrows(IllegalArgumentException.class,
61+
() -> RetryConfigProvider.create(config));
62+
}
63+
}
4864
}

0 commit comments

Comments
 (0)