/** * * * <pre> * RGB components of the color. * </pre> * * <code>.google.type.Color color = 1;</code> */ public Builder mergeColor(com.google.type.Color value) { if (colorBuilder_ == null) { if (color_ != null) { color_ = com.google.type.Color.newBuilder(color_).mergeFrom(value).buildPartial(); } else { color_ = value; } onChanged(); } else { colorBuilder_.mergeFrom(value); } return this; } /**
/** * * * <pre> * RGB components of the color. * </pre> * * <code>.google.type.Color color = 1;</code> */ public Builder mergeColor(com.google.type.Color value) { if (colorBuilder_ == null) { if (color_ != null) { color_ = com.google.type.Color.newBuilder(color_).mergeFrom(value).buildPartial(); } else { color_ = value; } onChanged(); } else { colorBuilder_.mergeFrom(value); } return this; } /**
/** * * * <pre> * RGB components of the color. * </pre> * * <code>.google.type.Color color = 1;</code> */ public Builder mergeColor(com.google.type.Color value) { if (colorBuilder_ == null) { if (color_ != null) { color_ = com.google.type.Color.newBuilder(color_).mergeFrom(value).buildPartial(); } else { color_ = value; } onChanged(); } else { colorBuilder_.mergeFrom(value); } return this; } /**
/** * * * <pre> * RGB components of the color. * </pre> * * <code>.google.type.Color color = 1;</code> */ public Builder mergeColor(com.google.type.Color value) { if (colorBuilder_ == null) { if (color_ != null) { color_ = com.google.type.Color.newBuilder(color_).mergeFrom(value).buildPartial(); } else { color_ = value; } onChanged(); } else { colorBuilder_.mergeFrom(value); } return this; } /**
public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() {
/** * * * <pre> * RGB components of the color. * </pre> * * <code>.google.type.Color color = 1;</code> */ public Builder mergeColor(com.google.type.Color value) { if (colorBuilder_ == null) { if (color_ != null) { color_ = com.google.type.Color.newBuilder(color_).mergeFrom(value).buildPartial(); } else { color_ = value; } onChanged(); } else { colorBuilder_.mergeFrom(value); } return this; } /**
/** * * * <pre> * RGB components of the color. * </pre> * * <code>.google.type.Color color = 1;</code> */ public Builder mergeColor(com.google.type.Color value) { if (colorBuilder_ == null) { if (color_ != null) { color_ = com.google.type.Color.newBuilder(color_).mergeFrom(value).buildPartial(); } else { color_ = value; } onChanged(); } else { colorBuilder_.mergeFrom(value); } return this; } /**
private Color getColor(float blueValue) { return Color.newBuilder().setBlue(blueValue).build(); }
@Test public void testBidiStreamingServerError() throws Exception { BidiStreamingCallable<Color, Money> streamingCallable = GrpcCallableFactory.createBidiStreamingCallable( GrpcCallSettings.create(METHOD_STREAMING_RECOGNIZE_ERROR), 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); latch.await(20, TimeUnit.SECONDS); assertThat(moneyObserver.error).isNotNull(); assertThat(moneyObserver.error).isInstanceOf(ApiException.class); assertThat(moneyObserver.error.getCause()).isInstanceOf(StatusRuntimeException.class); assertThat(((StatusRuntimeException) moneyObserver.error.getCause()).getStatus()) .isEqualTo(Status.INVALID_ARGUMENT); assertThat(moneyObserver.response).isNull(); }
@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); }
@Test public void testBidiStreamingClientError() throws Exception { BidiStreamingCallable<Color, Money> streamingCallable = GrpcCallableFactory.createBidiStreamingCallable( GrpcCallSettings.create(METHOD_STREAMING_RECOGNIZE_ERROR), 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); Throwable clientError = new StatusRuntimeException(Status.CANCELLED); stream.closeSendWithError(clientError); latch.await(20, TimeUnit.SECONDS); assertThat(moneyObserver.error).isNotNull(); assertThat(moneyObserver.error).isInstanceOf(ApiException.class); assertThat(((ApiException) moneyObserver.error).getStatusCode().getCode()) .isEqualTo(Code.CANCELLED); assertThat(moneyObserver.response).isNull(); // As of gRPC 1.8, when the client closes, the server gRPC issues // io.grpc.StatusRuntimeException: CANCELLED: cancelled before receiving half close // to the server application, and our error is not propagated. // We don't check the error received by the server; we can't round-trip it. }
@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(); }