Skip to content

Commit 58e874a

Browse files
committed
move initialization to contained class
1 parent e2385ad commit 58e874a

File tree

3 files changed

+69
-80
lines changed

3 files changed

+69
-80
lines changed

gax-java/gax-httpjson/src/test/java/com/google/api/gax/httpjson/RetryingTest.java

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -149,10 +149,10 @@ void retry() {
149149
HttpJsonCallableFactory.createUnaryCallable(
150150
callInt, callSettings, httpJsonCallSettings, clientContext);
151151
assertThat(callable.call(initialRequest)).isEqualTo(2);
152-
assertThat(tracerFactory.getTracerAttemptsFailed().get()).isEqualTo(3);
153-
assertThat(tracerFactory.getTracerAttempts().get()).isEqualTo(4);
154-
assertThat(tracerFactory.getTracerOperationFailed().get()).isFalse();
155-
assertThat(tracerFactory.getTracerFailedRetriesExhausted().get()).isFalse();
152+
assertThat(tracerFactory.getInstance().getAttemptsFailed().get()).isEqualTo(3);
153+
assertThat(tracerFactory.getInstance().getAttemptsStarted().get()).isEqualTo(4);
154+
assertThat(tracerFactory.getInstance().getOperationFailed().get()).isFalse();
155+
assertThat(tracerFactory.getInstance().getRetriesExhausted().get()).isFalse();
156156

157157
// Capture the argument passed to futureCall
158158
ArgumentCaptor<Integer> argumentCaptor = ArgumentCaptor.forClass(Integer.class);
@@ -190,10 +190,10 @@ void retryTotalTimeoutExceeded() {
190190
HttpJsonCallableFactory.createUnaryCallable(
191191
callInt, callSettings, httpJsonCallSettings, clientContext);
192192
assertThrows(ApiException.class, () -> callable.call(initialRequest));
193-
assertThat(tracerFactory.getTracerAttempts().get()).isEqualTo(1);
194-
assertThat(tracerFactory.getTracerAttemptsFailed().get()).isEqualTo(0);
195-
assertThat(tracerFactory.getTracerFailedRetriesExhausted().get()).isFalse();
196-
assertThat(tracerFactory.getTracerOperationFailed().get()).isTrue();
193+
assertThat(tracerFactory.getInstance().getAttemptsStarted().get()).isEqualTo(1);
194+
assertThat(tracerFactory.getInstance().getAttemptsFailed().get()).isEqualTo(0);
195+
assertThat(tracerFactory.getInstance().getRetriesExhausted().get()).isFalse();
196+
assertThat(tracerFactory.getInstance().getOperationFailed().get()).isTrue();
197197
// Capture the argument passed to futureCall
198198
ArgumentCaptor<Integer> argumentCaptor = ArgumentCaptor.forClass(Integer.class);
199199
verify(callInt, atLeastOnce()).futureCall(argumentCaptor.capture(), any(ApiCallContext.class));
@@ -214,10 +214,10 @@ void retryMaxAttemptsExceeded() {
214214
HttpJsonCallableFactory.createUnaryCallable(
215215
callInt, callSettings, httpJsonCallSettings, clientContext);
216216
assertThrows(ApiException.class, () -> callable.call(initialRequest));
217-
assertThat(tracerFactory.getTracerAttempts().get()).isEqualTo(2);
218-
assertThat(tracerFactory.getTracerAttemptsFailed().get()).isEqualTo(1);
219-
assertThat(tracerFactory.getTracerFailedRetriesExhausted().get()).isTrue();
220-
assertThat(tracerFactory.getTracerOperationFailed().get()).isTrue();
217+
assertThat(tracerFactory.getInstance().getAttemptsStarted().get()).isEqualTo(2);
218+
assertThat(tracerFactory.getInstance().getAttemptsFailed().get()).isEqualTo(1);
219+
assertThat(tracerFactory.getInstance().getRetriesExhausted().get()).isTrue();
220+
assertThat(tracerFactory.getInstance().getOperationFailed().get()).isTrue();
221221
// Capture the argument passed to futureCall
222222
ArgumentCaptor<Integer> argumentCaptor = ArgumentCaptor.forClass(Integer.class);
223223
verify(callInt, atLeastOnce()).futureCall(argumentCaptor.capture(), any(ApiCallContext.class));
@@ -238,10 +238,10 @@ void retryWithinMaxAttempts() {
238238
HttpJsonCallableFactory.createUnaryCallable(
239239
callInt, callSettings, httpJsonCallSettings, clientContext);
240240
assertThat(callable.call(initialRequest)).isEqualTo(2);
241-
assertThat(tracerFactory.getTracerAttempts().get()).isEqualTo(3);
242-
assertThat(tracerFactory.getTracerAttemptsFailed().get()).isEqualTo(2);
243-
assertThat(tracerFactory.getTracerFailedRetriesExhausted().get()).isFalse();
244-
assertThat(tracerFactory.getTracerOperationFailed().get()).isFalse();
241+
assertThat(tracerFactory.getInstance().getAttemptsStarted().get()).isEqualTo(3);
242+
assertThat(tracerFactory.getInstance().getAttemptsFailed().get()).isEqualTo(2);
243+
assertThat(tracerFactory.getInstance().getRetriesExhausted().get()).isFalse();
244+
assertThat(tracerFactory.getInstance().getOperationFailed().get()).isFalse();
245245
// Capture the argument passed to futureCall
246246
ArgumentCaptor<Integer> argumentCaptor = ArgumentCaptor.forClass(Integer.class);
247247
verify(callInt, atLeastOnce()).futureCall(argumentCaptor.capture(), any(ApiCallContext.class));
@@ -268,10 +268,10 @@ void retryOnStatusUnknown() {
268268
HttpJsonCallableFactory.createUnaryCallable(
269269
callInt, callSettings, httpJsonCallSettings, clientContext);
270270
assertThat(callable.call(initialRequest)).isEqualTo(2);
271-
assertThat(tracerFactory.getTracerAttempts().get()).isEqualTo(4);
272-
assertThat(tracerFactory.getTracerAttemptsFailed().get()).isEqualTo(3);
273-
assertThat(tracerFactory.getTracerFailedRetriesExhausted().get()).isFalse();
274-
assertThat(tracerFactory.getTracerOperationFailed().get()).isFalse();
271+
assertThat(tracerFactory.getInstance().getAttemptsStarted().get()).isEqualTo(4);
272+
assertThat(tracerFactory.getInstance().getAttemptsFailed().get()).isEqualTo(3);
273+
assertThat(tracerFactory.getInstance().getRetriesExhausted().get()).isFalse();
274+
assertThat(tracerFactory.getInstance().getOperationFailed().get()).isFalse();
275275
// Capture the argument passed to futureCall
276276
ArgumentCaptor<Integer> argumentCaptor = ArgumentCaptor.forClass(Integer.class);
277277
verify(callInt, atLeastOnce()).futureCall(argumentCaptor.capture(), any(ApiCallContext.class));
@@ -290,10 +290,10 @@ void retryOnUnexpectedException() {
290290
HttpJsonCallableFactory.createUnaryCallable(
291291
callInt, callSettings, httpJsonCallSettings, clientContext);
292292
ApiException exception = assertThrows(ApiException.class, () -> callable.call(initialRequest));
293-
assertThat(tracerFactory.getTracerAttempts().get()).isEqualTo(1);
294-
assertThat(tracerFactory.getTracerAttemptsFailed().get()).isEqualTo(0);
295-
assertThat(tracerFactory.getTracerFailedRetriesExhausted().get()).isFalse();
296-
assertThat(tracerFactory.getTracerOperationFailed().get()).isTrue();
293+
assertThat(tracerFactory.getInstance().getAttemptsStarted().get()).isEqualTo(1);
294+
assertThat(tracerFactory.getInstance().getAttemptsFailed().get()).isEqualTo(0);
295+
assertThat(tracerFactory.getInstance().getRetriesExhausted().get()).isFalse();
296+
assertThat(tracerFactory.getInstance().getOperationFailed().get()).isTrue();
297297
assertThat(exception).hasCauseThat().isSameInstanceAs(throwable);
298298
// Capture the argument passed to futureCall
299299
ArgumentCaptor<Integer> argumentCaptor = ArgumentCaptor.forClass(Integer.class);
@@ -323,10 +323,10 @@ void retryNoRecover() {
323323
HttpJsonCallableFactory.createUnaryCallable(
324324
callInt, callSettings, httpJsonCallSettings, clientContext);
325325
ApiException exception = assertThrows(ApiException.class, () -> callable.call(initialRequest));
326-
assertThat(tracerFactory.getTracerAttempts().get()).isEqualTo(1);
327-
assertThat(tracerFactory.getTracerAttemptsFailed().get()).isEqualTo(0);
328-
assertThat(tracerFactory.getTracerFailedRetriesExhausted().get()).isFalse();
329-
assertThat(tracerFactory.getTracerOperationFailed().get()).isTrue();
326+
assertThat(tracerFactory.getInstance().getAttemptsStarted().get()).isEqualTo(1);
327+
assertThat(tracerFactory.getInstance().getAttemptsFailed().get()).isEqualTo(0);
328+
assertThat(tracerFactory.getInstance().getRetriesExhausted().get()).isFalse();
329+
assertThat(tracerFactory.getInstance().getOperationFailed().get()).isTrue();
330330
assertThat(exception).isSameInstanceAs(apiException);
331331
// Capture the argument passed to futureCall
332332
ArgumentCaptor<Integer> argumentCaptor = ArgumentCaptor.forClass(Integer.class);
@@ -356,11 +356,11 @@ void retryKeepFailing() {
356356
// the number of attempts varies. Here we just make sure that all of them except the last are
357357
// considered as failed
358358
// attempts and that the operation was considered as failed.
359-
assertThat(tracerFactory.getTracerAttemptsFailed().get()).isGreaterThan(0);
360-
assertThat(tracerFactory.getTracerAttemptsFailed().get())
361-
.isEqualTo(tracerFactory.getTracerAttempts().get() - 1);
362-
assertThat(tracerFactory.getTracerFailedRetriesExhausted().get()).isTrue();
363-
assertThat(tracerFactory.getTracerOperationFailed().get()).isTrue();
359+
assertThat(tracerFactory.getInstance().getAttemptsFailed().get()).isGreaterThan(0);
360+
assertThat(tracerFactory.getInstance().getAttemptsFailed().get())
361+
.isEqualTo(tracerFactory.getInstance().getAttemptsStarted().get() - 1);
362+
assertThat(tracerFactory.getInstance().getRetriesExhausted().get()).isTrue();
363+
assertThat(tracerFactory.getInstance().getOperationFailed().get()).isTrue();
364364
assertThat(exception).hasCauseThat().isInstanceOf(ApiException.class);
365365
assertThat(exception).hasCauseThat().hasMessageThat().contains("Unavailable");
366366
// Capture the argument passed to futureCall
@@ -401,10 +401,10 @@ void testKnownStatusCode() {
401401
callInt, callSettings, httpJsonCallSettings, clientContext);
402402
ApiException exception =
403403
assertThrows(FailedPreconditionException.class, () -> callable.call(initialRequest));
404-
assertThat(tracerFactory.getTracerAttempts().get()).isEqualTo(1);
405-
assertThat(tracerFactory.getTracerAttemptsFailed().get()).isEqualTo(0);
406-
assertThat(tracerFactory.getTracerFailedRetriesExhausted().get()).isFalse();
407-
assertThat(tracerFactory.getTracerOperationFailed().get()).isTrue();
404+
assertThat(tracerFactory.getInstance().getAttemptsStarted().get()).isEqualTo(1);
405+
assertThat(tracerFactory.getInstance().getAttemptsFailed().get()).isEqualTo(0);
406+
assertThat(tracerFactory.getInstance().getRetriesExhausted().get()).isFalse();
407+
assertThat(tracerFactory.getInstance().getOperationFailed().get()).isTrue();
408408
assertThat(exception.getStatusCode().getTransportCode())
409409
.isEqualTo(HTTP_CODE_PRECONDITION_FAILED);
410410
assertThat(exception).hasMessageThat().contains("precondition failed");
@@ -429,10 +429,10 @@ void testUnknownStatusCode() {
429429
UnknownException exception =
430430
assertThrows(UnknownException.class, () -> callable.call(initialRequest));
431431
assertThat(exception).hasMessageThat().isEqualTo("java.lang.RuntimeException: unknown");
432-
assertThat(tracerFactory.getTracerAttempts().get()).isEqualTo(1);
433-
assertThat(tracerFactory.getTracerAttemptsFailed().get()).isEqualTo(0);
434-
assertThat(tracerFactory.getTracerFailedRetriesExhausted().get()).isFalse();
435-
assertThat(tracerFactory.getTracerOperationFailed().get()).isTrue();
432+
assertThat(tracerFactory.getInstance().getAttemptsStarted().get()).isEqualTo(1);
433+
assertThat(tracerFactory.getInstance().getAttemptsFailed().get()).isEqualTo(0);
434+
assertThat(tracerFactory.getInstance().getRetriesExhausted().get()).isFalse();
435+
assertThat(tracerFactory.getInstance().getOperationFailed().get()).isTrue();
436436
// Capture the argument passed to futureCall
437437
ArgumentCaptor<Integer> argumentCaptor = ArgumentCaptor.forClass(Integer.class);
438438
verify(callInt, atLeastOnce()).futureCall(argumentCaptor.capture(), any(ApiCallContext.class));

gax-java/gax-httpjson/src/test/java/com/google/api/gax/httpjson/testing/TestApiTracer.java

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -40,20 +40,27 @@
4040
*/
4141
public class TestApiTracer implements ApiTracer {
4242

43-
private final AtomicInteger attemptsStarted;
44-
private final AtomicInteger attemptsFailed;
45-
private final AtomicBoolean operationFailed;
46-
private final AtomicBoolean retriesExhausted;
43+
private final AtomicInteger attemptsStarted = new AtomicInteger();
44+
private final AtomicInteger attemptsFailed = new AtomicInteger();
45+
private final AtomicBoolean operationFailed = new AtomicBoolean(false);
46+
private final AtomicBoolean retriesExhausted = new AtomicBoolean(false);
4747

48-
public TestApiTracer(
49-
AtomicInteger tracerAttempts,
50-
AtomicInteger tracerAttemptsFailed,
51-
AtomicBoolean tracerOperationFailed,
52-
AtomicBoolean tracerFailedRetriesExhausted) {
53-
this.attemptsStarted = tracerAttempts;
54-
this.attemptsFailed = tracerAttemptsFailed;
55-
this.operationFailed = tracerOperationFailed;
56-
this.retriesExhausted = tracerFailedRetriesExhausted;
48+
public TestApiTracer() {}
49+
50+
public AtomicInteger getAttemptsStarted() {
51+
return attemptsStarted;
52+
}
53+
54+
public AtomicInteger getAttemptsFailed() {
55+
return attemptsFailed;
56+
}
57+
58+
public AtomicBoolean getOperationFailed() {
59+
return operationFailed;
60+
}
61+
62+
public AtomicBoolean getRetriesExhausted() {
63+
return retriesExhausted;
5764
}
5865

5966
@Override
@@ -66,6 +73,11 @@ public void attemptStarted(int attemptNumber) {
6673
attemptsStarted.incrementAndGet();
6774
}
6875

76+
@Override
77+
public void attemptStarted(Object request, int attemptNumber) {
78+
attemptsStarted.incrementAndGet();
79+
}
80+
6981
@Override
7082
public void operationFailed(Throwable error) {
7183
operationFailed.set(true);

gax-java/gax-httpjson/src/test/java/com/google/api/gax/httpjson/testing/TestApiTracerFactory.java

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -32,40 +32,17 @@
3232
import com.google.api.gax.tracing.ApiTracer;
3333
import com.google.api.gax.tracing.ApiTracerFactory;
3434
import com.google.api.gax.tracing.SpanName;
35-
import java.util.concurrent.atomic.AtomicBoolean;
36-
import java.util.concurrent.atomic.AtomicInteger;
3735

3836
/**
3937
* Produces a {@link TestApiTracer}, which keeps count of the attempts made and attempts
4038
* made-and-failed. It also keeps count of the operations failed and when the retries have been
4139
* exhausted.
4240
*/
4341
public class TestApiTracerFactory implements ApiTracerFactory {
44-
private final AtomicInteger tracerAttempts = new AtomicInteger();
45-
private final AtomicInteger tracerAttemptsFailed = new AtomicInteger();
46-
private final AtomicBoolean tracerOperationFailed = new AtomicBoolean(false);
47-
private final AtomicBoolean tracerFailedRetriesExhausted = new AtomicBoolean(false);
48-
private final TestApiTracer instance =
49-
new TestApiTracer(
50-
tracerAttempts,
51-
tracerAttemptsFailed,
52-
tracerOperationFailed,
53-
tracerFailedRetriesExhausted);
42+
private final TestApiTracer instance = new TestApiTracer();
5443

55-
public AtomicInteger getTracerAttempts() {
56-
return tracerAttempts;
57-
}
58-
59-
public AtomicInteger getTracerAttemptsFailed() {
60-
return tracerAttemptsFailed;
61-
}
62-
63-
public AtomicBoolean getTracerOperationFailed() {
64-
return tracerOperationFailed;
65-
}
66-
67-
public AtomicBoolean getTracerFailedRetriesExhausted() {
68-
return tracerFailedRetriesExhausted;
44+
public TestApiTracer getInstance() {
45+
return instance;
6946
}
7047

7148
@Override

0 commit comments

Comments
 (0)