@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(); }
/** * <pre> * The 3-letter currency code defined in ISO 4217. * </pre> * * <code>string currency_code = 1;</code> */ public Builder setCurrencyCode( java.lang.String value) { if (value == null) { throw new NullPointerException(); } currencyCode_ = value; onChanged(); return this; } /**
/** * <pre> * Number of nano (10^-9) units of the amount. * The value must be between -999,999,999 and +999,999,999 inclusive. * If `units` is positive, `nanos` must be positive or zero. * If `units` is zero, `nanos` can be positive, zero, or negative. * If `units` is negative, `nanos` must be negative or zero. * For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. * </pre> * * <code>int32 nanos = 3;</code> */ public Builder clearNanos() { nanos_ = 0; onChanged(); return this; } public final Builder setUnknownFields(
@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(); }
public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { com.google.type.Money parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (com.google.type.Money) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; }
/** * <pre> * Number of nano (10^-9) units of the amount. * The value must be between -999,999,999 and +999,999,999 inclusive. * If `units` is positive, `nanos` must be positive or zero. * If `units` is zero, `nanos` can be positive, zero, or negative. * If `units` is negative, `nanos` must be negative or zero. * For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. * </pre> * * <code>int32 nanos = 3;</code> */ public Builder setNanos(int value) { nanos_ = value; onChanged(); return this; } /**
/** * <pre> * The 3-letter currency code defined in ISO 4217. * </pre> * * <code>string currency_code = 1;</code> */ public Builder setCurrencyCodeBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); currencyCode_ = value; onChanged(); return this; }
@Test public void testMetadataTransformer_mismatchedTypes() { thrown.expect(ApiException.class); thrown.expectMessage("Failed to unpack object"); MetadataTransformer<Money> transformer = MetadataTransformer.create(Money.class); Money inputMoney = Money.newBuilder().setCurrencyCode("USD").build(); Status status = Status.newBuilder().setCode(Code.OK.value()).build(); OperationSnapshot operationSnapshot = GrpcOperationSnapshot.create( Operation.newBuilder() .setMetadata(Any.pack(Color.getDefaultInstance())) .setError(status) .build()); Truth.assertThat(transformer.apply(operationSnapshot)).isEqualTo(inputMoney); } }
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 testResponseTransformer_mismatchedTypes() { thrown.expect(ApiException.class); thrown.expectMessage("Failed to unpack object"); ResponseTransformer<Money> transformer = ResponseTransformer.create(Money.class); Money inputMoney = Money.newBuilder().setCurrencyCode("USD").build(); Status status = Status.newBuilder().setCode(Code.OK.value()).build(); OperationSnapshot operationSnapshot = GrpcOperationSnapshot.create( Operation.newBuilder() .setResponse(Any.pack(Color.getDefaultInstance())) .setError(status) .build()); Truth.assertThat(transformer.apply(operationSnapshot)).isEqualTo(inputMoney); }
private Builder() { maybeForceBuilderInitialization(); }
private Money getMoney(String currencyCode) { return Money.newBuilder().setCurrencyCode(currencyCode).build(); }
public static Builder newBuilder(com.google.type.Money prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } public Builder toBuilder() {
/** * <pre> * The whole units of the amount. * For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. * </pre> * * <code>int64 units = 2;</code> */ public Builder clearUnits() { units_ = 0L; onChanged(); return this; }
/** * <pre> * The whole units of the amount. * For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. * </pre> * * <code>int64 units = 2;</code> */ public Builder setUnits(long value) { units_ = value; onChanged(); return this; } /**
/** * <pre> * The 3-letter currency code defined in ISO 4217. * </pre> * * <code>string currency_code = 1;</code> */ public Builder clearCurrencyCode() { currencyCode_ = getDefaultInstance().getCurrencyCode(); onChanged(); return this; } /**
@Test public void testResponseTransformer_exception() { thrown.expect(UnavailableException.class); ResponseTransformer<Money> transformer = ResponseTransformer.create(Money.class); Money inputMoney = Money.newBuilder().setCurrencyCode("USD").build(); Status status = Status.newBuilder().setCode(Code.UNAVAILABLE.value()).build(); OperationSnapshot operationSnapshot = GrpcOperationSnapshot.create( Operation.newBuilder().setResponse(Any.pack(inputMoney)).setError(status).build()); Truth.assertThat(transformer.apply(operationSnapshot)).isEqualTo(inputMoney); }
@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 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); }
public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof com.google.type.Money) { return mergeFrom((com.google.type.Money)other); } else { super.mergeFrom(other); return this; } }