@Override public Void answer(InvocationOnMock invocation) { Color color = invocation.getArgument(0); StreamObserver<Money> observer = invocation.getArgument(1); observer.onNext( Money.newBuilder() .setCurrencyCode("USD") .setUnits((long) (color.getRed() * 255)) .build()); observer.onCompleted(); return null; } })
@Test public void testClientStreaming() throws Exception { ClientStreamingCallable<Color, Money> streamingCallable = GrpcCallableFactory.createClientStreamingCallable( GrpcCallSettings.create(METHOD_CLIENT_STREAMING_RECOGNIZE), null, clientContext); CountDownLatch latch = new CountDownLatch(1); MoneyObserver moneyObserver = new MoneyObserver(latch); Color request = Color.newBuilder().setRed(0.5f).build(); ApiStreamObserver<Color> requestObserver = streamingCallable.clientStreamingCall(moneyObserver); requestObserver.onNext(request); requestObserver.onCompleted(); latch.await(20, TimeUnit.SECONDS); assertThat(moneyObserver.error).isNull(); Money expected = Money.newBuilder().setCurrencyCode("USD").setUnits(127).build(); assertThat(moneyObserver.response).isEqualTo(expected); assertThat(moneyObserver.completed).isTrue(); }
@Test public void testBidiStreaming() throws Exception { BidiStreamingCallable<Color, Money> streamingCallable = GrpcCallableFactory.createBidiStreamingCallable( GrpcCallSettings.create(METHOD_STREAMING_RECOGNIZE), null, clientContext); CountDownLatch latch = new CountDownLatch(1); GrpcDirectServerStreamingCallableTest.MoneyObserver moneyObserver = new GrpcDirectServerStreamingCallableTest.MoneyObserver(true, latch); Color request = Color.newBuilder().setRed(0.5f).build(); ClientStream<Color> stream = streamingCallable.splitCall(moneyObserver); stream.send(request); stream.closeSend(); latch.await(20, TimeUnit.SECONDS); assertThat(moneyObserver.error).isNull(); Money expected = Money.newBuilder().setCurrencyCode("USD").setUnits(127).build(); assertThat(moneyObserver.response).isEqualTo(expected); assertThat(moneyObserver.completed).isTrue(); }
public Builder mergeFrom(com.google.type.Money other) { if (other == com.google.type.Money.getDefaultInstance()) return this; if (!other.getCurrencyCode().isEmpty()) { currencyCode_ = other.currencyCode_; onChanged(); } if (other.getUnits() != 0L) { setUnits(other.getUnits()); } if (other.getNanos() != 0) { setNanos(other.getNanos()); } onChanged(); return this; }
@Test public void testBlockingServerStreaming() throws Exception { Color request = Color.newBuilder().setRed(0.5f).build(); ServerStream<Money> response = streamingCallable.call(request); List<Money> responseData = Lists.newArrayList(response); Money expected = Money.newBuilder().setCurrencyCode("USD").setUnits(127).build(); Truth.assertThat(responseData).containsExactly(expected); }
private static Money convert(Color color) { Money result = Money.newBuilder().setCurrencyCode("USD").setUnits((long) (color.getRed() * 255)).build(); return result; }