Skip to content

Commit 65215f5

Browse files
committed
Speech, trace, vision
1 parent 5f028ec commit 65215f5

9 files changed

Lines changed: 271 additions & 59 deletions

File tree

google-cloud-speech/src/test/java/com/google/cloud/speech/spi/v1beta1/MockSpeech.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,16 @@ public List<GeneratedMessageV3> getRequests() {
3333
return serviceImpl.getRequests();
3434
}
3535

36+
@Override
37+
public void addResponse(GeneratedMessageV3 response) {
38+
serviceImpl.addResponse(response);
39+
}
40+
41+
@Override
42+
public void addException(Exception exception) {
43+
serviceImpl.addException(exception);
44+
}
45+
3646
@Override
3747
public void setResponses(List<GeneratedMessageV3> responses) {
3848
serviceImpl.setResponses(responses);

google-cloud-speech/src/test/java/com/google/cloud/speech/spi/v1beta1/MockSpeechImpl.java

Lines changed: 38 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import com.google.cloud.speech.v1beta1.StreamingRecognizeResponse;
2222
import com.google.cloud.speech.v1beta1.SyncRecognizeRequest;
2323
import com.google.cloud.speech.v1beta1.SyncRecognizeResponse;
24-
import com.google.common.collect.Lists;
2524
import com.google.longrunning.Operation;
2625
import com.google.protobuf.GeneratedMessageV3;
2726
import io.grpc.stub.StreamObserver;
@@ -33,7 +32,7 @@
3332
@javax.annotation.Generated("by GAPIC")
3433
public class MockSpeechImpl extends SpeechImplBase {
3534
private ArrayList<GeneratedMessageV3> requests;
36-
private Queue<GeneratedMessageV3> responses;
35+
private Queue<Object> responses;
3736

3837
public MockSpeechImpl() {
3938
requests = new ArrayList<>();
@@ -44,8 +43,16 @@ public List<GeneratedMessageV3> getRequests() {
4443
return requests;
4544
}
4645

46+
public void addResponse(GeneratedMessageV3 response) {
47+
responses.add(response);
48+
}
49+
4750
public void setResponses(List<GeneratedMessageV3> responses) {
48-
this.responses = Lists.newLinkedList(responses);
51+
this.responses = new LinkedList<Object>(responses);
52+
}
53+
54+
public void addException(Exception exception) {
55+
responses.add(exception);
4956
}
5057

5158
public void reset() {
@@ -56,30 +63,48 @@ public void reset() {
5663
@Override
5764
public void syncRecognize(
5865
SyncRecognizeRequest request, StreamObserver<SyncRecognizeResponse> responseObserver) {
59-
SyncRecognizeResponse response = (SyncRecognizeResponse) responses.remove();
60-
requests.add(request);
61-
responseObserver.onNext(response);
62-
responseObserver.onCompleted();
66+
Object response = responses.remove();
67+
if (response instanceof SyncRecognizeResponse) {
68+
requests.add(request);
69+
responseObserver.onNext((SyncRecognizeResponse) response);
70+
responseObserver.onCompleted();
71+
} else if (response instanceof Exception) {
72+
responseObserver.onError((Exception) response);
73+
} else {
74+
responseObserver.onError(new IllegalArgumentException("Unrecognized response type"));
75+
}
6376
}
6477

6578
@Override
6679
public void asyncRecognize(
6780
AsyncRecognizeRequest request, StreamObserver<Operation> responseObserver) {
68-
Operation response = (Operation) responses.remove();
69-
requests.add(request);
70-
responseObserver.onNext(response);
71-
responseObserver.onCompleted();
81+
Object response = responses.remove();
82+
if (response instanceof Operation) {
83+
requests.add(request);
84+
responseObserver.onNext((Operation) response);
85+
responseObserver.onCompleted();
86+
} else if (response instanceof Exception) {
87+
responseObserver.onError((Exception) response);
88+
} else {
89+
responseObserver.onError(new IllegalArgumentException("Unrecognized response type"));
90+
}
7291
}
7392

7493
@Override
7594
public StreamObserver<StreamingRecognizeRequest> streamingRecognize(
7695
final StreamObserver<StreamingRecognizeResponse> responseObserver) {
77-
final StreamingRecognizeResponse response = (StreamingRecognizeResponse) responses.remove();
96+
final Object response = responses.remove();
7897
StreamObserver<StreamingRecognizeRequest> requestObserver =
7998
new StreamObserver<StreamingRecognizeRequest>() {
8099
@Override
81100
public void onNext(StreamingRecognizeRequest value) {
82-
responseObserver.onNext(response);
101+
if (response instanceof StreamingRecognizeResponse) {
102+
responseObserver.onNext((StreamingRecognizeResponse) response);
103+
} else if (response instanceof Exception) {
104+
responseObserver.onError((Exception) response);
105+
} else {
106+
responseObserver.onError(new IllegalArgumentException("Unrecognized response type"));
107+
}
83108
}
84109

85110
@Override

google-cloud-speech/src/test/java/com/google/cloud/speech/spi/v1beta1/SpeechTest.java

Lines changed: 67 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package com.google.cloud.speech.spi.v1beta1;
1717

18+
import com.google.api.gax.grpc.ApiException;
1819
import com.google.api.gax.grpc.StreamingCallable;
1920
import com.google.api.gax.testing.MockGrpcService;
2021
import com.google.api.gax.testing.MockServiceHelper;
@@ -28,11 +29,13 @@
2829
import com.google.cloud.speech.v1beta1.SyncRecognizeResponse;
2930
import com.google.longrunning.Operation;
3031
import com.google.protobuf.GeneratedMessageV3;
32+
import io.grpc.Status;
33+
import io.grpc.StatusRuntimeException;
3134
import io.grpc.stub.StreamObserver;
3235
import java.io.IOException;
33-
import java.util.ArrayList;
3436
import java.util.Arrays;
3537
import java.util.List;
38+
import java.util.concurrent.ExecutionException;
3639
import org.junit.After;
3740
import org.junit.AfterClass;
3841
import org.junit.Assert;
@@ -78,9 +81,7 @@ public void tearDown() throws Exception {
7881
@SuppressWarnings("all")
7982
public void syncRecognizeTest() {
8083
SyncRecognizeResponse expectedResponse = SyncRecognizeResponse.newBuilder().build();
81-
List<GeneratedMessageV3> expectedResponses = new ArrayList<>();
82-
expectedResponses.add(expectedResponse);
83-
mockSpeech.setResponses(expectedResponses);
84+
mockSpeech.addResponse(expectedResponse);
8485

8586
RecognitionConfig config = RecognitionConfig.newBuilder().build();
8687
RecognitionAudio audio = RecognitionAudio.newBuilder().build();
@@ -96,15 +97,30 @@ public void syncRecognizeTest() {
9697
Assert.assertEquals(audio, actualRequest.getAudio());
9798
}
9899

100+
@Test
101+
@SuppressWarnings("all")
102+
public void syncRecognizeExceptionTest() throws Exception {
103+
StatusRuntimeException exception = new StatusRuntimeException(Status.INTERNAL);
104+
mockSpeech.addException(exception);
105+
106+
try {
107+
RecognitionConfig config = RecognitionConfig.newBuilder().build();
108+
RecognitionAudio audio = RecognitionAudio.newBuilder().build();
109+
110+
api.syncRecognize(config, audio);
111+
Assert.fail("No exception raised");
112+
} catch (ApiException e) {
113+
Assert.assertEquals(Status.INTERNAL.getCode(), e.getStatusCode());
114+
}
115+
}
116+
99117
@Test
100118
@SuppressWarnings("all")
101119
public void asyncRecognizeTest() {
102120
String name = "name3373707";
103121
boolean done = true;
104122
Operation expectedResponse = Operation.newBuilder().setName(name).setDone(done).build();
105-
List<GeneratedMessageV3> expectedResponses = new ArrayList<>();
106-
expectedResponses.add(expectedResponse);
107-
mockSpeech.setResponses(expectedResponses);
123+
mockSpeech.addResponse(expectedResponse);
108124

109125
RecognitionConfig config = RecognitionConfig.newBuilder().build();
110126
RecognitionAudio audio = RecognitionAudio.newBuilder().build();
@@ -120,15 +136,30 @@ public void asyncRecognizeTest() {
120136
Assert.assertEquals(audio, actualRequest.getAudio());
121137
}
122138

139+
@Test
140+
@SuppressWarnings("all")
141+
public void asyncRecognizeExceptionTest() throws Exception {
142+
StatusRuntimeException exception = new StatusRuntimeException(Status.INTERNAL);
143+
mockSpeech.addException(exception);
144+
145+
try {
146+
RecognitionConfig config = RecognitionConfig.newBuilder().build();
147+
RecognitionAudio audio = RecognitionAudio.newBuilder().build();
148+
149+
api.asyncRecognize(config, audio);
150+
Assert.fail("No exception raised");
151+
} catch (ApiException e) {
152+
Assert.assertEquals(Status.INTERNAL.getCode(), e.getStatusCode());
153+
}
154+
}
155+
123156
@Test
124157
@SuppressWarnings("all")
125158
public void streamingRecognizeTest() throws Exception {
126159
int resultIndex = 520358448;
127160
StreamingRecognizeResponse expectedResponse =
128161
StreamingRecognizeResponse.newBuilder().setResultIndex(resultIndex).build();
129-
List<GeneratedMessageV3> expectedResponses = new ArrayList<>();
130-
expectedResponses.add(expectedResponse);
131-
mockSpeech.setResponses(expectedResponses);
162+
mockSpeech.addResponse(expectedResponse);
132163
StreamingRecognizeRequest request = StreamingRecognizeRequest.newBuilder().build();
133164

134165
MockStreamObserver<StreamingRecognizeResponse> responseObserver = new MockStreamObserver<>();
@@ -144,6 +175,31 @@ public void streamingRecognizeTest() throws Exception {
144175
List<StreamingRecognizeResponse> actualResponses = responseObserver.future().get();
145176
Assert.assertEquals(1, actualResponses.size());
146177
Assert.assertEquals(expectedResponse, actualResponses.get(0));
147-
Assert.assertEquals(0, responseObserver.errors().size());
178+
}
179+
180+
@Test
181+
@SuppressWarnings("all")
182+
public void streamingRecognizeExceptionTest() throws Exception {
183+
StatusRuntimeException exception = new StatusRuntimeException(Status.INTERNAL);
184+
mockSpeech.addException(exception);
185+
StreamingRecognizeRequest request = StreamingRecognizeRequest.newBuilder().build();
186+
187+
MockStreamObserver<StreamingRecognizeResponse> responseObserver = new MockStreamObserver<>();
188+
189+
StreamingCallable<StreamingRecognizeRequest, StreamingRecognizeResponse> callable =
190+
api.streamingRecognizeCallable();
191+
StreamObserver<StreamingRecognizeRequest> requestObserver =
192+
callable.bidiStreamingCall(responseObserver);
193+
194+
requestObserver.onNext(request);
195+
196+
try {
197+
List<StreamingRecognizeResponse> actualResponses = responseObserver.future().get();
198+
Assert.fail("No exception thrown");
199+
} catch (ExecutionException e) {
200+
Assert.assertTrue(e.getCause() instanceof StatusRuntimeException);
201+
StatusRuntimeException statusException = (StatusRuntimeException) e.getCause();
202+
Assert.assertEquals(Status.INTERNAL, statusException.getStatus());
203+
}
148204
}
149205
}

google-cloud-trace/src/test/java/com/google/cloud/trace/spi/v1/MockTraceService.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,16 @@ public List<GeneratedMessageV3> getRequests() {
3333
return serviceImpl.getRequests();
3434
}
3535

36+
@Override
37+
public void addResponse(GeneratedMessageV3 response) {
38+
serviceImpl.addResponse(response);
39+
}
40+
41+
@Override
42+
public void addException(Exception exception) {
43+
serviceImpl.addException(exception);
44+
}
45+
3646
@Override
3747
public void setResponses(List<GeneratedMessageV3> responses) {
3848
serviceImpl.setResponses(responses);

google-cloud-trace/src/test/java/com/google/cloud/trace/spi/v1/MockTraceServiceImpl.java

Lines changed: 40 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
*/
1616
package com.google.cloud.trace.spi.v1;
1717

18-
import com.google.common.collect.Lists;
1918
import com.google.devtools.cloudtrace.v1.GetTraceRequest;
2019
import com.google.devtools.cloudtrace.v1.ListTracesRequest;
2120
import com.google.devtools.cloudtrace.v1.ListTracesResponse;
@@ -33,7 +32,7 @@
3332
@javax.annotation.Generated("by GAPIC")
3433
public class MockTraceServiceImpl extends TraceServiceImplBase {
3534
private ArrayList<GeneratedMessageV3> requests;
36-
private Queue<GeneratedMessageV3> responses;
35+
private Queue<Object> responses;
3736

3837
public MockTraceServiceImpl() {
3938
requests = new ArrayList<>();
@@ -44,8 +43,16 @@ public List<GeneratedMessageV3> getRequests() {
4443
return requests;
4544
}
4645

46+
public void addResponse(GeneratedMessageV3 response) {
47+
responses.add(response);
48+
}
49+
4750
public void setResponses(List<GeneratedMessageV3> responses) {
48-
this.responses = Lists.newLinkedList(responses);
51+
this.responses = new LinkedList<Object>(responses);
52+
}
53+
54+
public void addException(Exception exception) {
55+
responses.add(exception);
4956
}
5057

5158
public void reset() {
@@ -56,25 +63,43 @@ public void reset() {
5663
@Override
5764
public void listTraces(
5865
ListTracesRequest request, StreamObserver<ListTracesResponse> responseObserver) {
59-
ListTracesResponse response = (ListTracesResponse) responses.remove();
60-
requests.add(request);
61-
responseObserver.onNext(response);
62-
responseObserver.onCompleted();
66+
Object response = responses.remove();
67+
if (response instanceof ListTracesResponse) {
68+
requests.add(request);
69+
responseObserver.onNext((ListTracesResponse) response);
70+
responseObserver.onCompleted();
71+
} else if (response instanceof Exception) {
72+
responseObserver.onError((Exception) response);
73+
} else {
74+
responseObserver.onError(new IllegalArgumentException("Unrecognized response type"));
75+
}
6376
}
6477

6578
@Override
6679
public void getTrace(GetTraceRequest request, StreamObserver<Trace> responseObserver) {
67-
Trace response = (Trace) responses.remove();
68-
requests.add(request);
69-
responseObserver.onNext(response);
70-
responseObserver.onCompleted();
80+
Object response = responses.remove();
81+
if (response instanceof Trace) {
82+
requests.add(request);
83+
responseObserver.onNext((Trace) response);
84+
responseObserver.onCompleted();
85+
} else if (response instanceof Exception) {
86+
responseObserver.onError((Exception) response);
87+
} else {
88+
responseObserver.onError(new IllegalArgumentException("Unrecognized response type"));
89+
}
7190
}
7291

7392
@Override
7493
public void patchTraces(PatchTracesRequest request, StreamObserver<Empty> responseObserver) {
75-
Empty response = (Empty) responses.remove();
76-
requests.add(request);
77-
responseObserver.onNext(response);
78-
responseObserver.onCompleted();
94+
Object response = responses.remove();
95+
if (response instanceof Empty) {
96+
requests.add(request);
97+
responseObserver.onNext((Empty) response);
98+
responseObserver.onCompleted();
99+
} else if (response instanceof Exception) {
100+
responseObserver.onError((Exception) response);
101+
} else {
102+
responseObserver.onError(new IllegalArgumentException("Unrecognized response type"));
103+
}
79104
}
80105
}

0 commit comments

Comments
 (0)