Skip to content

Commit 6b4ebfe

Browse files
committed
tests: add test of QueryOptions.clone and comparison.
1 parent 2452b09 commit 6b4ebfe

File tree

2 files changed

+28
-5
lines changed

2 files changed

+28
-5
lines changed

src/main/java/com/influxdb/v3/client/query/QueryOptions.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,6 @@
2929
import javax.annotation.Nullable;
3030
import javax.annotation.concurrent.ThreadSafe;
3131

32-
import io.grpc.Deadline;
33-
3432
import com.influxdb.v3.client.config.ClientConfig;
3533
import com.influxdb.v3.client.internal.Arguments;
3634
import com.influxdb.v3.client.internal.GrpcCallOptions;
@@ -211,9 +209,7 @@ protected QueryOptions clone() {
211209
if (this.grpcCallOptions != null) {
212210
GrpcCallOptions.Builder grpcOptsBuilder = new GrpcCallOptions.Builder();
213211
if (this.grpcCallOptions.getDeadline() != null) {
214-
grpcOptsBuilder.withDeadline(Deadline.after(this.grpcCallOptions
215-
.getDeadline()
216-
.timeRemaining(TimeUnit.MILLISECONDS), TimeUnit.MILLISECONDS));
212+
grpcOptsBuilder.withDeadline(this.grpcCallOptions.getDeadline().offset(0, TimeUnit.MILLISECONDS));
217213
}
218214
grpcOptsBuilder.withExecutor(this.grpcCallOptions.getExecutor());
219215
grpcOptsBuilder.withCompressorName(this.grpcCallOptions.getCompressorName());

src/test/java/com/influxdb/v3/client/query/QueryOptionsTest.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import java.net.ServerSocket;
2626
import java.net.URI;
2727
import java.time.Duration;
28+
import java.util.Map;
2829
import java.util.concurrent.Executor;
2930
import java.util.concurrent.Executors;
3031
import java.util.concurrent.TimeUnit;
@@ -248,6 +249,30 @@ void grpcCallOptions() {
248249
Assertions.assertThat(stubCallOptions.getDeadline()).isEqualTo(grpcCallOption.getDeadline());
249250
}
250251

252+
@Test
253+
public void queryOptionsCloneTest() {
254+
255+
GrpcCallOptions grpcCallOption = new GrpcCallOptions.Builder()
256+
.withMaxInboundMessageSize(1024 * 1024 * 1024)
257+
.withMaxOutboundMessageSize(1024 * 1024 * 1024)
258+
.withDeadline(Deadline.after(2, TimeUnit.MINUTES))
259+
.build();
260+
261+
Map<String, String> headers = Map.of("k1", "v1", "k2", "v2", "k3", "v3");
262+
263+
QueryOptions queryOptions = new QueryOptions("myQueryOptions", QueryType.SQL, headers);
264+
queryOptions.setGrpcCallOptions(grpcCallOption);
265+
266+
QueryOptions clone = queryOptions.clone();
267+
Assertions.assertThat(clone).isEqualTo(queryOptions);
268+
// not the same object
269+
Assertions.assertThat(queryOptions == clone).isFalse();
270+
// deep copy grpc options
271+
Assertions.assertThat(queryOptions.grpcCallOptions() == clone.grpcCallOptions()).isFalse();
272+
// deep copy headers
273+
Assertions.assertThat(queryOptions.headersSafe() == clone.headersSafe()).isFalse();
274+
}
275+
251276
@Test
252277
public void queryOptionsUnchangedByCall() throws IOException {
253278
int freePort = findFreePort();
@@ -276,6 +301,8 @@ public void queryOptionsUnchangedByCall() throws IOException {
276301
queryOptions.setGrpcCallOptions(grpcCallOption);
277302
QueryOptions originalQueryOptions = queryOptions.clone();
278303
Assertions.assertThat(originalQueryOptions).isEqualTo(queryOptions);
304+
System.out.println("DEBUG queryOptions.grpcOptions " + queryOptions.grpcCallOptions());
305+
System.out.println("DEBUG originalQueryOptions.grpcOptions " + originalQueryOptions.grpcCallOptions());
279306

280307
try (InfluxDBClient influxDBClient = InfluxDBClient.getInstance(clientConfig)) {
281308
Assertions.assertThatNoException().isThrownBy(() -> {

0 commit comments

Comments
 (0)