@Test public void testResponseTransformer() { ResponseTransformer<Money> transformer = ResponseTransformer.create(Money.class); Money inputMoney = Money.newBuilder().setCurrencyCode("USD").build(); OperationSnapshot operationSnapshot = GrpcOperationSnapshot.create( Operation.newBuilder().setResponse(Any.pack(inputMoney)).build()); Truth.assertThat(transformer.apply(operationSnapshot)).isEqualTo(inputMoney); }
@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); }
@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); }
@Override public Database apply(OperationSnapshot snapshot) { return Database.fromProto( ProtoOperationTransformers.ResponseTransformer.create( com.google.spanner.admin.database.v1.Database.class) .apply(snapshot), DatabaseAdminClientImpl.this); } },
@Override public Instance apply(OperationSnapshot snapshot) { return Instance.fromProto( ProtoOperationTransformers.ResponseTransformer.create( com.google.spanner.admin.instance.v1.Instance.class) .apply(snapshot), InstanceAdminClientImpl.this, dbClient); } },
@Override public Void apply(OperationSnapshot snapshot) { ProtoOperationTransformers.ResponseTransformer.create(Empty.class).apply(snapshot); return null; } },
@Override public Instance apply(OperationSnapshot snapshot) { return Instance.fromProto( ProtoOperationTransformers.ResponseTransformer.create( com.google.spanner.admin.instance.v1.Instance.class) .apply(snapshot), InstanceAdminClientImpl.this, dbClient); } },
@Override public Database apply(OperationSnapshot snapshot) { return Database.fromProto( ProtoOperationTransformers.ResponseTransformer.create( com.google.spanner.admin.database.v1.Database.class) .apply(snapshot), DatabaseAdminClientImpl.this); } },
@Override public Instance apply(OperationSnapshot snapshot) { return Instance.fromProto( ProtoOperationTransformers.ResponseTransformer.create( com.google.spanner.admin.instance.v1.Instance.class) .apply(snapshot), InstanceAdminClientImpl.this, dbClient); } },
@Override public Instance apply(OperationSnapshot snapshot) { return Instance.fromProto( ProtoOperationTransformers.ResponseTransformer.create( com.google.spanner.admin.instance.v1.Instance.class) .apply(snapshot), InstanceAdminClientImpl.this, dbClient); } },
@Override public Void apply(OperationSnapshot snapshot) { ProtoOperationTransformers.ResponseTransformer.create(Empty.class).apply(snapshot); return null; } },