Skip to content

Commit cca2b59

Browse files
millotpFluf22
authored andcommitted
add cts
1 parent ad129bf commit cca2b59

File tree

9 files changed

+90
-0
lines changed

9 files changed

+90
-0
lines changed

generators/src/main/java/com/algolia/codegen/cts/tests/RequestOptions.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,19 @@ public class RequestOptions {
66

77
public Map<String, Object> queryParameters;
88
public Map<String, String> headers;
9+
public Long readTimeout;
10+
public Long writeTimeout;
11+
public Long connectTimeout;
912

1013
@Override
1114
public String toString() {
1215
StringBuilder sb = new StringBuilder();
1316
sb.append("class RequestOptions {\n");
1417
sb.append(" queryParameters: ").append(queryParameters).append("\n");
1518
sb.append(" headers: ").append(headers).append("\n");
19+
sb.append(" readTimeout: ").append(readTimeout).append("\n");
20+
sb.append(" writeTimeout: ").append(writeTimeout).append("\n");
21+
sb.append(" connectTimeout: ").append(connectTimeout).append("\n");
1622
sb.append("}");
1723
return sb.toString();
1824
}

generators/src/main/java/com/algolia/codegen/cts/tests/Step.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ public class Step {
88
public String method;
99
public int times;
1010
public Map<String, Object> parameters;
11+
public RequestOptions requestOptions;
1112
public Expected expected;
1213

1314
public String toString() {
@@ -17,6 +18,7 @@ public String toString() {
1718
sb.append(" method: ").append(method).append("\n");
1819
sb.append(" times: ").append(times).append("\n");
1920
sb.append(" parameters: ").append(parameters).append("\n");
21+
sb.append(" requestOptions: ").append(requestOptions).append("\n");
2022
sb.append(" expected: ").append(expected).append("\n");
2123
sb.append("}");
2224
return sb.toString();

generators/src/main/java/com/algolia/codegen/cts/tests/TestsClient.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,26 @@ public void run(Map<String, CodegenModel> models, Map<String, CodegenOperation>
138138
// default to true because most api calls are asynchronous
139139
testOut.put("isAsyncMethod", (boolean) ope.vendorExtensions.getOrDefault("x-asynchronous-helper", true));
140140

141+
if (step.requestOptions != null) {
142+
stepOut.put("hasRequestOptions", true);
143+
Map<String, Object> requestOptions = new HashMap<>();
144+
if (step.requestOptions.queryParameters != null) {
145+
Map<String, Object> queryParameters = new HashMap<>();
146+
paramsType.enhanceParameters(step.requestOptions.queryParameters, queryParameters);
147+
requestOptions.put("queryParameters", queryParameters);
148+
}
149+
if (step.requestOptions.headers != null) {
150+
Map<String, Object> headers = new HashMap<>();
151+
// convert the headers to an acceptable type
152+
paramsType.enhanceParameters(new HashMap<String, Object>(step.requestOptions.headers), headers);
153+
requestOptions.put("headers", headers);
154+
}
155+
requestOptions.put("readTimeout", step.requestOptions.readTimeout);
156+
requestOptions.put("writeTimeout", step.requestOptions.writeTimeout);
157+
requestOptions.put("connectTimeout", step.requestOptions.connectTimeout);
158+
stepOut.put("requestOptions", requestOptions);
159+
}
160+
141161
methodCount++;
142162
}
143163

generators/src/main/java/com/algolia/codegen/cts/tests/TestsRequest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,9 @@ public void run(Map<String, CodegenModel> models, Map<String, CodegenOperation>
170170
paramsType.enhanceParameters(new HashMap<String, Object>(req.requestOptions.headers), headers);
171171
requestOptions.put("headers", headers);
172172
}
173+
requestOptions.put("readTimeout", req.requestOptions.readTimeout);
174+
requestOptions.put("writeTimeout", req.requestOptions.writeTimeout);
175+
requestOptions.put("connectTimeout", req.requestOptions.connectTimeout);
173176
test.put("requestOptions", requestOptions);
174177
}
175178

templates/java/tests/client/client.mustache

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import com.algolia.api.{{client}};
1212
import com.algolia.model.{{import}}.*;
1313
import com.algolia.config.*;
1414
import java.util.*;
15+
import java.time.Duration;
1516
import org.junit.jupiter.api.BeforeAll;
1617
import org.junit.jupiter.api.DisplayName;
1718
import org.junit.jupiter.api.Test;

templates/java/tests/e2e/e2e.mustache

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
1010
import com.fasterxml.jackson.databind.json.JsonMapper;
1111
import io.github.cdimascio.dotenv.Dotenv;
1212
import java.util.*;
13+
import java.time.Duration;
1314
import org.junit.jupiter.api.*;
1415
import org.skyscreamer.jsonassert.JSONAssert;
1516
import org.skyscreamer.jsonassert.JSONCompareMode;

templates/java/tests/method.mustache

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,13 @@ client.{{method}}({{#parametersWithDataType}}{{> tests/generateParams}}{{^-last}
55
{{#requestOptions.headers.parametersWithDataType}}
66
.addExtraHeader("{{{key}}}", "{{{value}}}")
77
{{/requestOptions.headers.parametersWithDataType}}
8+
{{#requestOptions.readTimeout}}
9+
.setReadTimeout(Duration.ofMillis({{requestOptions.readTimeout}}L))
10+
{{/requestOptions.readTimeout}}
11+
{{#requestOptions.connectTimeout}}
12+
.setConnectTimeout(Duration.ofMillis({{requestOptions.connectTimeout}}L))
13+
{{/requestOptions.connectTimeout}}
14+
{{#requestOptions.writeTimeout}}
15+
.setWriteTimeout(Duration.ofMillis({{requestOptions.writeTimeout}}L))
16+
{{/requestOptions.writeTimeout}}
817
{{/hasRequestOptions}})

templates/java/tests/requests/requests.mustache

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import com.fasterxml.jackson.databind.DeserializationFeature;
1616
import com.fasterxml.jackson.databind.ObjectMapper;
1717
import com.fasterxml.jackson.databind.json.JsonMapper;
1818
import java.util.*;
19+
import java.time.Duration;
1920
import org.junit.jupiter.api.*;
2021
import org.skyscreamer.jsonassert.JSONAssert;
2122
import org.skyscreamer.jsonassert.JSONCompareMode;

tests/CTS/client/ingestion/api.json

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,5 +76,52 @@
7676
}
7777
}
7878
]
79+
},
80+
{
81+
"testName": "endpoint level timeout",
82+
"steps": [
83+
{
84+
"type": "method",
85+
"method": "validateSourceBeforeUpdate",
86+
"parameters": {
87+
"sourceID": "6c02aeb1-775e-418e-870b-1faccd4b2c0f",
88+
"sourceUpdate": {
89+
"name": "newName"
90+
}
91+
},
92+
"expected": {
93+
"type": "timeouts",
94+
"match": {
95+
"connectTimeout": 180000,
96+
"responseTimeout": 180000
97+
}
98+
}
99+
}
100+
]
101+
},
102+
{
103+
"testName": "can override endpoint level timeout",
104+
"steps": [
105+
{
106+
"type": "method",
107+
"method": "validateSourceBeforeUpdate",
108+
"parameters": {
109+
"sourceID": "6c02aeb1-775e-418e-870b-1faccd4b2c0f",
110+
"sourceUpdate": {
111+
"name": "newName"
112+
}
113+
},
114+
"requestOptions": {
115+
"connectTimeout": 1234
116+
},
117+
"expected": {
118+
"type": "timeouts",
119+
"match": {
120+
"connectTimeout": 1234,
121+
"responseTimeout": 180000
122+
}
123+
}
124+
}
125+
]
79126
}
80127
]

0 commit comments

Comments
 (0)