@Override public void onCompleted() { responseObserver.onCompleted(); } },
/** Closes the stream and calls onError() if the stream is still active. */ private void closeStream(final Throwable throwable) { if (stream != null) { stream.onCompleted(); stream = null; } if (isActive.getAndSet(false)) { userCallbackExecutor.execute( new Runnable() { @Override public void run() { listener.onEvent( null, throwable instanceof FirestoreException ? (FirestoreException) throwable : FirestoreException.apiException( new ApiException( throwable, GrpcStatusCode.of(getStatus(throwable).getCode()), false))); } }); } }
/** Helper to restart the outgoing stream to the backend. */ private void resetStream() { if (stream != null) { stream.onCompleted(); stream = null; } initStream(); }
private void close() throws InterruptedException { streamObserverCapture.getValue().onCompleted(); }
public T answer(InvocationOnMock invocation) { Object[] args = invocation.getArguments(); ApiStreamObserver<T> observer = (ApiStreamObserver<T>) args[1]; for (T resp : response) { observer.onNext(resp); } observer.onCompleted(); return null; } };
private void sendResponses() { responseObserver.onNext(response); responseObserver.onCompleted(); }
@Test public void streamingRecognize() throws Exception { byte[] audioBytes = Resources.toByteArray(new URL("https://storage.googleapis.com/gapic-toolkit/hello.flac")); StreamingRecognitionConfig streamingConfig = StreamingRecognitionConfig.newBuilder().setConfig(config()).build(); ResponseApiStreamingObserver<StreamingRecognizeResponse> responseObserver = new ResponseApiStreamingObserver<>(); ApiStreamObserver<StreamingRecognizeRequest> requestObserver = speechClient.streamingRecognizeCallable().bidiStreamingCall(responseObserver); // The first request must **only** contain the audio configuration: requestObserver.onNext( StreamingRecognizeRequest.newBuilder().setStreamingConfig(streamingConfig).build()); // Subsequent requests must **only** contain the audio data. requestObserver.onNext( StreamingRecognizeRequest.newBuilder() .setAudioContent(ByteString.copyFrom(audioBytes)) .build()); // Mark transmission as completed after sending the data. requestObserver.onCompleted(); List<StreamingRecognizeResponse> responses = responseObserver.future().get(); Truth.assertThat(responses.size()).isGreaterThan(0); Truth.assertThat(responses.get(0).getResultsCount()).isGreaterThan(0); Truth.assertThat(responses.get(0).getResults(0).getAlternativesCount()).isGreaterThan(0); String text = responses.get(0).getResults(0).getAlternatives(0).getTranscript(); Truth.assertThat(text).isEqualTo("hello"); }
@Test @SuppressWarnings("all") public void streamingRecognizeTest() throws Exception { StreamingRecognizeResponse expectedResponse = StreamingRecognizeResponse.newBuilder().build(); mockSpeech.addResponse(expectedResponse); StreamingRecognizeRequest request = StreamingRecognizeRequest.newBuilder().build(); MockStreamObserver<StreamingRecognizeResponse> responseObserver = new MockStreamObserver<>(); BidiStreamingCallable<StreamingRecognizeRequest, StreamingRecognizeResponse> callable = client.streamingRecognizeCallable(); ApiStreamObserver<StreamingRecognizeRequest> requestObserver = callable.bidiStreamingCall(responseObserver); requestObserver.onNext(request); requestObserver.onCompleted(); List<StreamingRecognizeResponse> actualResponses = responseObserver.future().get(); Assert.assertEquals(1, actualResponses.size()); Assert.assertEquals(expectedResponse, actualResponses.get(0)); }
@Test @SuppressWarnings("all") public void streamingRecognizeTest() throws Exception { StreamingRecognizeResponse expectedResponse = StreamingRecognizeResponse.newBuilder().build(); mockSpeech.addResponse(expectedResponse); StreamingRecognizeRequest request = StreamingRecognizeRequest.newBuilder().build(); MockStreamObserver<StreamingRecognizeResponse> responseObserver = new MockStreamObserver<>(); BidiStreamingCallable<StreamingRecognizeRequest, StreamingRecognizeResponse> callable = client.streamingRecognizeCallable(); ApiStreamObserver<StreamingRecognizeRequest> requestObserver = callable.bidiStreamingCall(responseObserver); requestObserver.onNext(request); requestObserver.onCompleted(); List<StreamingRecognizeResponse> actualResponses = responseObserver.future().get(); Assert.assertEquals(1, actualResponses.size()); Assert.assertEquals(expectedResponse, actualResponses.get(0)); }
@Test @SuppressWarnings("all") public void writeTest() throws Exception { String streamId = "streamId-315624902"; ByteString streamToken = ByteString.copyFromUtf8("122"); WriteResponse expectedResponse = WriteResponse.newBuilder().setStreamId(streamId).setStreamToken(streamToken).build(); mockFirestore.addResponse(expectedResponse); String formattedDatabase = FirestoreClient.formatDatabaseRootName("[PROJECT]", "[DATABASE]"); WriteRequest request = WriteRequest.newBuilder().setDatabase(formattedDatabase).build(); MockStreamObserver<WriteResponse> responseObserver = new MockStreamObserver<>(); BidiStreamingCallable<WriteRequest, WriteResponse> callable = client.writeCallable(); ApiStreamObserver<WriteRequest> requestObserver = callable.bidiStreamingCall(responseObserver); requestObserver.onNext(request); requestObserver.onCompleted(); List<WriteResponse> actualResponses = responseObserver.future().get(); Assert.assertEquals(1, actualResponses.size()); Assert.assertEquals(expectedResponse, actualResponses.get(0)); }
@Test @SuppressWarnings("all") public void listenTest() throws Exception { ListenResponse expectedResponse = ListenResponse.newBuilder().build(); mockFirestore.addResponse(expectedResponse); String formattedDatabase = FirestoreClient.formatDatabaseRootName("[PROJECT]", "[DATABASE]"); ListenRequest request = ListenRequest.newBuilder().setDatabase(formattedDatabase).build(); MockStreamObserver<ListenResponse> responseObserver = new MockStreamObserver<>(); BidiStreamingCallable<ListenRequest, ListenResponse> callable = client.listenCallable(); ApiStreamObserver<ListenRequest> requestObserver = callable.bidiStreamingCall(responseObserver); requestObserver.onNext(request); requestObserver.onCompleted(); List<ListenResponse> actualResponses = responseObserver.future().get(); Assert.assertEquals(1, actualResponses.size()); Assert.assertEquals(expectedResponse, actualResponses.get(0)); }
@Test @SuppressWarnings("all") public void writeTest() throws Exception { String streamId = "streamId-315624902"; ByteString streamToken = ByteString.copyFromUtf8("122"); WriteResponse expectedResponse = WriteResponse.newBuilder().setStreamId(streamId).setStreamToken(streamToken).build(); mockFirestore.addResponse(expectedResponse); String formattedDatabase = FirestoreClient.formatDatabaseRootName("[PROJECT]", "[DATABASE]"); WriteRequest request = WriteRequest.newBuilder().setDatabase(formattedDatabase).build(); MockStreamObserver<WriteResponse> responseObserver = new MockStreamObserver<>(); BidiStreamingCallable<WriteRequest, WriteResponse> callable = client.writeCallable(); ApiStreamObserver<WriteRequest> requestObserver = callable.bidiStreamingCall(responseObserver); requestObserver.onNext(request); requestObserver.onCompleted(); List<WriteResponse> actualResponses = responseObserver.future().get(); Assert.assertEquals(1, actualResponses.size()); Assert.assertEquals(expectedResponse, actualResponses.get(0)); }
@Test @SuppressWarnings("all") public void listenTest() throws Exception { ListenResponse expectedResponse = ListenResponse.newBuilder().build(); mockFirestore.addResponse(expectedResponse); String formattedDatabase = FirestoreClient.formatDatabaseRootName("[PROJECT]", "[DATABASE]"); ListenRequest request = ListenRequest.newBuilder().setDatabase(formattedDatabase).build(); MockStreamObserver<ListenResponse> responseObserver = new MockStreamObserver<>(); BidiStreamingCallable<ListenRequest, ListenResponse> callable = client.listenCallable(); ApiStreamObserver<ListenRequest> requestObserver = callable.bidiStreamingCall(responseObserver); requestObserver.onNext(request); requestObserver.onCompleted(); List<ListenResponse> actualResponses = responseObserver.future().get(); Assert.assertEquals(1, actualResponses.size()); Assert.assertEquals(expectedResponse, actualResponses.get(0)); }
@Test @SuppressWarnings("all") public void streamingDetectIntentTest() throws Exception { String responseId = "responseId1847552473"; ByteString outputAudio = ByteString.copyFromUtf8("24"); StreamingDetectIntentResponse expectedResponse = StreamingDetectIntentResponse.newBuilder() .setResponseId(responseId) .setOutputAudio(outputAudio) .build(); mockSessions.addResponse(expectedResponse); String session = "session1984987798"; QueryInput queryInput = QueryInput.newBuilder().build(); StreamingDetectIntentRequest request = StreamingDetectIntentRequest.newBuilder() .setSession(session) .setQueryInput(queryInput) .build(); MockStreamObserver<StreamingDetectIntentResponse> responseObserver = new MockStreamObserver<>(); BidiStreamingCallable<StreamingDetectIntentRequest, StreamingDetectIntentResponse> callable = client.streamingDetectIntentCallable(); ApiStreamObserver<StreamingDetectIntentRequest> requestObserver = callable.bidiStreamingCall(responseObserver); requestObserver.onNext(request); requestObserver.onCompleted(); List<StreamingDetectIntentResponse> actualResponses = responseObserver.future().get(); Assert.assertEquals(1, actualResponses.size()); Assert.assertEquals(expectedResponse, actualResponses.get(0)); }
@Test @SuppressWarnings("all") public void streamingPullTest() throws Exception { ReceivedMessage receivedMessagesElement = ReceivedMessage.newBuilder().build(); List<ReceivedMessage> receivedMessages = Arrays.asList(receivedMessagesElement); StreamingPullResponse expectedResponse = StreamingPullResponse.newBuilder().addAllReceivedMessages(receivedMessages).build(); mockSubscriber.addResponse(expectedResponse); ProjectSubscriptionName subscription = ProjectSubscriptionName.of("[PROJECT]", "[SUBSCRIPTION]"); int streamAckDeadlineSeconds = 1875467245; StreamingPullRequest request = StreamingPullRequest.newBuilder() .setSubscription(subscription.toString()) .setStreamAckDeadlineSeconds(streamAckDeadlineSeconds) .build(); MockStreamObserver<StreamingPullResponse> responseObserver = new MockStreamObserver<>(); BidiStreamingCallable<StreamingPullRequest, StreamingPullResponse> callable = client.streamingPullCallable(); ApiStreamObserver<StreamingPullRequest> requestObserver = callable.bidiStreamingCall(responseObserver); requestObserver.onNext(request); requestObserver.onCompleted(); List<StreamingPullResponse> actualResponses = responseObserver.future().get(); Assert.assertEquals(1, actualResponses.size()); Assert.assertEquals(expectedResponse, actualResponses.get(0)); }
@Test @SuppressWarnings("all") public void streamingDetectIntentTest() throws Exception { String responseId = "responseId1847552473"; StreamingDetectIntentResponse expectedResponse = StreamingDetectIntentResponse.newBuilder().setResponseId(responseId).build(); mockSessions.addResponse(expectedResponse); String session = "session1984987798"; QueryInput queryInput = QueryInput.newBuilder().build(); StreamingDetectIntentRequest request = StreamingDetectIntentRequest.newBuilder() .setSession(session) .setQueryInput(queryInput) .build(); MockStreamObserver<StreamingDetectIntentResponse> responseObserver = new MockStreamObserver<>(); BidiStreamingCallable<StreamingDetectIntentRequest, StreamingDetectIntentResponse> callable = client.streamingDetectIntentCallable(); ApiStreamObserver<StreamingDetectIntentRequest> requestObserver = callable.bidiStreamingCall(responseObserver); requestObserver.onNext(request); requestObserver.onCompleted(); List<StreamingDetectIntentResponse> actualResponses = responseObserver.future().get(); Assert.assertEquals(1, actualResponses.size()); Assert.assertEquals(expectedResponse, actualResponses.get(0)); }
requestObserver.onCompleted();
@Override public void onCompleted() { innerObserver.onCompleted(); } }
requestObserver.onCompleted();
requestObserver.onCompleted();