/** Request funnel for all bidirectional streaming requests. */ <RequestT, ResponseT> ApiStreamObserver<RequestT> streamRequest( ApiStreamObserver<ResponseT> responseObserverT, BidiStreamingCallable<RequestT, ResponseT> callable) { Preconditions.checkState(!closed, "Firestore client has already been closed"); return callable.bidiStreamingCall(responseObserverT); }
@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 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 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 streamingRecognizeExceptionTest() throws Exception { StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT); mockSpeech.addException(exception); 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); try { List<StreamingRecognizeResponse> actualResponses = responseObserver.future().get(); Assert.fail("No exception thrown"); } catch (ExecutionException e) { Assert.assertTrue(e.getCause() instanceof InvalidArgumentException); InvalidArgumentException apiException = (InvalidArgumentException) e.getCause(); Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode()); } } }
@Test @SuppressWarnings("all") public void streamingRecognizeExceptionTest() throws Exception { StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT); mockSpeech.addException(exception); 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); try { List<StreamingRecognizeResponse> actualResponses = responseObserver.future().get(); Assert.fail("No exception thrown"); } catch (ExecutionException e) { Assert.assertTrue(e.getCause() instanceof InvalidArgumentException); InvalidArgumentException apiException = (InvalidArgumentException) e.getCause(); Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode()); } } }
@Test @SuppressWarnings("all") public void listenExceptionTest() throws Exception { StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT); mockFirestore.addException(exception); 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); try { List<ListenResponse> actualResponses = responseObserver.future().get(); Assert.fail("No exception thrown"); } catch (ExecutionException e) { Assert.assertTrue(e.getCause() instanceof InvalidArgumentException); InvalidArgumentException apiException = (InvalidArgumentException) e.getCause(); Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode()); } }
@Test @SuppressWarnings("all") public void writeExceptionTest() throws Exception { StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT); mockFirestore.addException(exception); 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); try { List<WriteResponse> actualResponses = responseObserver.future().get(); Assert.fail("No exception thrown"); } catch (ExecutionException e) { Assert.assertTrue(e.getCause() instanceof InvalidArgumentException); InvalidArgumentException apiException = (InvalidArgumentException) e.getCause(); Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode()); } }
@Test @SuppressWarnings("all") public void listenExceptionTest() throws Exception { StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT); mockFirestore.addException(exception); 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); try { List<ListenResponse> actualResponses = responseObserver.future().get(); Assert.fail("No exception thrown"); } catch (ExecutionException e) { Assert.assertTrue(e.getCause() instanceof InvalidArgumentException); InvalidArgumentException apiException = (InvalidArgumentException) e.getCause(); Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode()); } }
@Test @SuppressWarnings("all") public void writeExceptionTest() throws Exception { StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT); mockFirestore.addException(exception); 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); try { List<WriteResponse> actualResponses = responseObserver.future().get(); Assert.fail("No exception thrown"); } catch (ExecutionException e) { Assert.assertTrue(e.getCause() instanceof InvalidArgumentException); InvalidArgumentException apiException = (InvalidArgumentException) e.getCause(); Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode()); } }
@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)); }
client.streamingDetectIntentCallable(); ApiStreamObserver<StreamingDetectIntentRequest> requestObserver = callable.bidiStreamingCall(responseObserver);
client.streamingDetectIntentCallable(); ApiStreamObserver<StreamingDetectIntentRequest> requestObserver = callable.bidiStreamingCall(responseObserver);
@Test @SuppressWarnings("all") public void streamingPullExceptionTest() throws Exception { StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT); mockSubscriber.addException(exception); 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); try { List<StreamingPullResponse> actualResponses = responseObserver.future().get(); Assert.fail("No exception thrown"); } catch (ExecutionException e) { Assert.assertTrue(e.getCause() instanceof InvalidArgumentException); InvalidArgumentException apiException = (InvalidArgumentException) e.getCause(); Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode()); } }