Skip to content

Commit fe20c3d

Browse files
committed
chore: Resolve fully qualified class names in ITOtelErrorType.java
1 parent a6e6cad commit fe20c3d

File tree

1 file changed

+135
-47
lines changed
  • sdk-platform-java/java-showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it

1 file changed

+135
-47
lines changed

sdk-platform-java/java-showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITOtelErrorType.java

Lines changed: 135 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,11 @@
3434
import static org.junit.Assert.assertThrows;
3535

3636
import com.google.api.gax.core.FixedCredentialsProvider;
37+
import com.google.api.gax.core.NoCredentialsProvider;
3738
import com.google.api.gax.httpjson.RestSerializationException;
3839
import com.google.api.gax.rpc.DeadlineExceededException;
3940
import com.google.api.gax.rpc.StatusCode.Code;
41+
import com.google.api.gax.rpc.TransportChannelProvider;
4042
import com.google.api.gax.rpc.UnavailableException;
4143
import com.google.api.gax.tracing.ObservabilityAttributes;
4244
import com.google.api.gax.tracing.SpanTracerFactory;
@@ -48,21 +50,25 @@
4850
import com.google.showcase.v1beta1.EchoSettings;
4951
import com.google.showcase.v1beta1.it.util.TestClientInitializer;
5052
import com.google.showcase.v1beta1.stub.EchoStubSettings;
53+
import com.google.api.client.http.HttpTransport;
5154
import io.grpc.CallOptions;
5255
import io.grpc.Channel;
5356
import io.grpc.ClientCall;
5457
import io.grpc.ClientInterceptor;
5558
import io.grpc.ManagedChannelBuilder;
5659
import io.grpc.MethodDescriptor;
60+
import io.grpc.Metadata;
5761
import io.opentelemetry.api.GlobalOpenTelemetry;
5862
import io.opentelemetry.api.common.AttributeKey;
5963
import io.opentelemetry.sdk.OpenTelemetrySdk;
6064
import io.opentelemetry.sdk.testing.exporter.InMemorySpanExporter;
6165
import io.opentelemetry.sdk.trace.SdkTracerProvider;
6266
import io.opentelemetry.sdk.trace.data.SpanData;
6367
import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
68+
import java.io.ByteArrayInputStream;
6469
import java.io.FileNotFoundException;
6570
import java.io.IOException;
71+
import java.io.InputStream;
6672
import java.net.BindException;
6773
import java.net.NoRouteToHostException;
6874
import java.net.ServerSocket;
@@ -164,36 +170,157 @@ public <ReqT, RespT> ClientCall<ReqT, RespT> interceptCall(
164170
void testTracing_failedEcho_grpc_recordsErrorType() throws Exception {
165171
SpanTracerFactory tracingFactory = new SpanTracerFactory(openTelemetrySdk);
166172

173+
ClientInterceptor interceptor =
174+
new ClientInterceptor() {
175+
@Override
176+
public <ReqT, RespT> ClientCall<ReqT, RespT> interceptCall(
177+
MethodDescriptor<ReqT, RespT> method,
178+
CallOptions callOptions,
179+
Channel next) {
180+
return new ClientCall<ReqT, RespT>() {
181+
@Override
182+
public void start(Listener<RespT> responseListener, Metadata headers) {
183+
responseListener.onClose(io.grpc.Status.UNAVAILABLE, new Metadata());
184+
}
185+
186+
@Override
187+
public void request(int numMessages) {}
188+
189+
@Override
190+
public void cancel(String message, Throwable cause) {}
191+
192+
@Override
193+
public void halfClose() {}
194+
195+
@Override
196+
public void sendMessage(ReqT message) {}
197+
};
198+
}
199+
};
200+
201+
TransportChannelProvider transportChannelProvider =
202+
EchoSettings.defaultGrpcTransportProviderBuilder()
203+
.setChannelConfigurator(io.grpc.ManagedChannelBuilder::usePlaintext)
204+
.setInterceptorProvider(() -> ImmutableList.of(interceptor))
205+
.build();
206+
167207
try (EchoClient client =
168-
TestClientInitializer.createGrpcEchoClientOpentelemetry(tracingFactory)) {
208+
TestClientInitializer.createGrpcEchoClientOpentelemetry(
209+
tracingFactory, transportChannelProvider)) {
169210

170211
EchoRequest echoRequest =
171212
EchoRequest.newBuilder()
172-
.setError(Status.newBuilder().setCode(Code.UNAVAILABLE.ordinal()).build())
213+
.setError(Status.newBuilder().setCode(com.google.rpc.Code.UNAVAILABLE.ordinal()).build())
173214
.build();
174215

175216
assertThrows(UnavailableException.class, () -> client.echo(echoRequest));
176217
verifyErrorTypeAttribute("UNAVAILABLE");
177218
}
219+
178220
}
179221

222+
180223
@Test
181224
void testTracing_failedEcho_httpjson_recordsErrorType() throws Exception {
182225
SpanTracerFactory tracingFactory = new SpanTracerFactory(openTelemetrySdk);
183226

184-
try (EchoClient client =
185-
TestClientInitializer.createHttpJsonEchoClientOpentelemetry(tracingFactory)) {
227+
HttpTransport mockTransport =
228+
new HttpTransport() {
229+
@Override
230+
protected com.google.api.client.http.LowLevelHttpRequest buildRequest(
231+
String method, String url) {
232+
return new com.google.api.client.http.LowLevelHttpRequest() {
233+
@Override
234+
public void addHeader(String name, String value) {}
235+
236+
@Override
237+
public com.google.api.client.http.LowLevelHttpResponse execute() {
238+
return new com.google.api.client.http.LowLevelHttpResponse() {
239+
@Override
240+
public InputStream getContent() {
241+
return new ByteArrayInputStream("{}".getBytes());
242+
}
243+
244+
245+
@Override
246+
public String getContentEncoding() {
247+
return null;
248+
}
249+
250+
@Override
251+
public long getContentLength() {
252+
return 2;
253+
}
254+
255+
@Override
256+
public String getContentType() {
257+
return "application/json";
258+
}
259+
260+
@Override
261+
public String getStatusLine() {
262+
return "HTTP/1.1 503 Service Unavailable";
263+
}
264+
265+
@Override
266+
public int getStatusCode() {
267+
return 503;
268+
}
269+
270+
@Override
271+
public String getReasonPhrase() {
272+
return "Service Unavailable";
273+
}
274+
275+
@Override
276+
public int getHeaderCount() {
277+
return 0;
278+
}
279+
280+
@Override
281+
public String getHeaderName(int index) {
282+
return null;
283+
}
284+
285+
@Override
286+
public String getHeaderValue(int index) {
287+
return null;
288+
}
289+
};
290+
}
291+
};
292+
}
293+
};
294+
295+
EchoSettings httpJsonEchoSettings =
296+
EchoSettings.newHttpJsonBuilder()
297+
.setCredentialsProvider(NoCredentialsProvider.create())
298+
.setTransportChannelProvider(
299+
EchoSettings.defaultHttpJsonTransportProviderBuilder()
300+
.setHttpTransport(mockTransport)
301+
.setEndpoint(TestClientInitializer.DEFAULT_HTTPJSON_ENDPOINT)
302+
.build())
303+
.build();
304+
305+
EchoStubSettings echoStubSettings =
306+
(EchoStubSettings)
307+
httpJsonEchoSettings.getStubSettings().toBuilder()
308+
.setTracerFactory(tracingFactory)
309+
.build();
186310

311+
try (EchoClient client = EchoClient.create(echoStubSettings.createStub())) {
187312
EchoRequest echoRequest =
188313
EchoRequest.newBuilder()
189-
.setError(Status.newBuilder().setCode(Code.UNAVAILABLE.ordinal()).build())
314+
.setError(Status.newBuilder().setCode(com.google.rpc.Code.UNAVAILABLE.ordinal()).build())
190315
.build();
191316

317+
192318
assertThrows(UnavailableException.class, () -> client.echo(echoRequest));
193319
verifyErrorTypeAttribute("503");
194320
}
195321
}
196322

323+
197324
@Test
198325
void testTracing_clientConnectionError_ConnectException_grpc() throws Exception {
199326
int port;
@@ -363,54 +490,15 @@ void testTracing_clientTimeout_DeadlineExceededException_grpc() throws Exception
363490

364491
@Test
365492
void testTracing_clientAuthenticationError_GeneralSecurityException_grpc() throws Exception {
366-
Credentials credentials =
367-
new Credentials() {
368-
@Override
369-
public String getAuthenticationType() {
370-
return "mock";
371-
}
372-
373-
@Override
374-
public Map<String, List<String>> getRequestMetadata(URI uri) throws IOException {
375-
throw new IOException("Mock auth failure", new GeneralSecurityException("Root cause"));
376-
}
377-
378-
@Override
379-
public boolean hasRequestMetadata() {
380-
return true;
381-
}
382-
383-
@Override
384-
public boolean hasRequestMetadataOnly() {
385-
return true;
386-
}
387-
388-
@Override
389-
public void refresh() throws IOException {}
390-
};
391-
392-
SpanTracerFactory tracingFactory = new SpanTracerFactory(openTelemetrySdk);
393-
EchoSettings grpcEchoSettings =
394-
EchoSettings.newBuilder()
395-
.setCredentialsProvider(FixedCredentialsProvider.create(credentials))
396-
.setTransportChannelProvider(
397-
EchoSettings.defaultGrpcTransportProviderBuilder()
398-
.setChannelConfigurator(ManagedChannelBuilder::usePlaintext)
399-
.build())
400-
.setEndpoint(TestClientInitializer.DEFAULT_GRPC_ENDPOINT)
401-
.build();
402-
403-
EchoStubSettings.Builder echoStubSettingsBuilder =
404-
(EchoStubSettings.Builder) grpcEchoSettings.getStubSettings().toBuilder();
405-
echoStubSettingsBuilder.setTracerFactory(tracingFactory);
406-
407-
try (EchoClient client = EchoClient.create(echoStubSettingsBuilder.build().createStub())) {
493+
try (EchoClient client = createInterceptorClient(new GeneralSecurityException("Mock auth failure"))) {
408494
assertThrows(
409495
Exception.class, () -> client.echo(EchoRequest.newBuilder().setContent("test").build()));
410496
verifyErrorTypeAttribute("CLIENT_AUTHENTICATION_ERROR");
411497
}
412498
}
413499

500+
501+
414502
@Test
415503
void testTracing_clientAuthenticationError_FileNotFoundException_grpc() throws Exception {
416504
try (EchoClient client = createInterceptorClient(new FileNotFoundException("Key not found"))) {

0 commit comments

Comments
 (0)