Search in sources :

Example 1 with Field

use of com.google.protobuf.Field in project gax-java by googleapis.

the class HttpJsonOperationSnapshotCallableTest method futureCallTestException.

@Test
public void futureCallTestException() throws InterruptedException {
    Option request = Option.newBuilder().setName("Arizona").build();
    Field field = Field.newBuilder().setName("Georgia").build();
    ApiCallContext context = mock(ApiCallContext.class);
    OperationSnapshot operationSnapshot = HttpJsonOperationSnapshot.newBuilder().setName("California").setMetadata(2).setDone(true).setResponse("Florida").setError(0, "no error").build();
    SettableApiFuture<Field> settableApiFuture = SettableApiFuture.create();
    settableApiFuture.setException(new RuntimeException("Seattle"));
    when(operationSnapshotFactory.create(request, field)).thenReturn(operationSnapshot);
    when(innerCallable.futureCall(request, context)).thenReturn(settableApiFuture);
    try {
        operationSnapCallable.futureCall(request, context).get();
        Assert.fail("Exception should have been thrown");
    } catch (ExecutionException e) {
        Truth.assertThat(e).hasMessageThat().contains("Seattle");
    }
}
Also used : Field(com.google.protobuf.Field) Option(com.google.protobuf.Option) ApiCallContext(com.google.api.gax.rpc.ApiCallContext) OperationSnapshot(com.google.api.gax.longrunning.OperationSnapshot) ExecutionException(java.util.concurrent.ExecutionException) Test(org.junit.Test)

Example 2 with Field

use of com.google.protobuf.Field in project gax-java by googleapis.

the class ProtoMessageJsonStreamIteratorTest method testMultipleElements.

@Test
public void testMultipleElements() throws IOException {
    Field[] expectedData = new Field[] { Field.newBuilder().setName("cat").addOptions(Option.newBuilder().setName("haha").build()).addOptions(Option.newBuilder().setName("hoho").build()).setNumber(1).setDefaultValue("mew").build(), Field.newBuilder().setName("dog").addOptions(Option.newBuilder().setName("muu").build()).setNumber(2).setDefaultValue("woof").build(), Field.newBuilder().setName("cow").addOptions(Option.newBuilder().setName("bee").build()).setNumber(3).setDefaultValue("muu").build() };
    String jsonData = "[{\n" + "  \"number\": 1,\n" + "  \"name\": \"cat\",\n" + "  \"options\": [{\n" + "    \"name\": \"haha\"\n" + "  }, {\n" + "    \"name\": \"hoho\"\n" + "  }],\n" + "  \"defaultValue\": \"mew\"\n" + "},\n" + "{\n" + "  \"number\": 2,\n" + "  \"name\": \"dog\",\n" + "  \"options\": [{\n" + "    \"name\": \"muu\"\n" + "  }],\n" + "  \"defaultValue\": \"woof\"\n" + "},\n" + "{\n" + "  \"number\": 3,\n" + "  \"name\": \"cow\",\n" + "  \"options\": [{\n" + "    \"name\": \"bee\"\n" + "  }],\n" + "  \"defaultValue\": \"muu\"\n" + "}]";
    ProtoMessageJsonStreamIterator streamIter = new ProtoMessageJsonStreamIterator(new StringReader(jsonData));
    Truth.assertThat(streamIter.hasNext()).isTrue();
    Field.Builder builder = Field.newBuilder();
    JsonFormat.parser().merge(streamIter.next(), builder);
    Truth.assertThat(builder.build()).isEqualTo(expectedData[0]);
    Truth.assertThat(streamIter.hasNext()).isTrue();
    builder = Field.newBuilder();
    JsonFormat.parser().merge(streamIter.next(), builder);
    Truth.assertThat(builder.build()).isEqualTo(expectedData[1]);
    Truth.assertThat(streamIter.hasNext()).isTrue();
    builder = Field.newBuilder();
    JsonFormat.parser().merge(streamIter.next(), builder);
    Truth.assertThat(builder.build()).isEqualTo(expectedData[2]);
    Truth.assertThat(streamIter.hasNext()).isFalse();
    streamIter.close();
}
Also used : Field(com.google.protobuf.Field) StringReader(java.io.StringReader) Test(org.junit.Test)

Example 3 with Field

use of com.google.protobuf.Field in project gax-java by googleapis.

the class ProtoMessageJsonStreamIteratorTest method testEscapedString.

@Test
public void testEscapedString() throws IOException {
    Field expectedData = Field.newBuilder().setName("[{\n" + "\"fInt32\": 23,\n" + "\"fInt64\": \"1234567889999977\",\n" + "\"fDouble\": 1234.343232226,\n" + "\"fKingdom\": \"ARCHAEBACTERIA\"\n" + "}]").build();
    String jsonData = "[{\n" + "  \"name\": \"[{\\n" + "\\\"fInt32\\\": 23,\\n" + "\\\"fInt64\\\": \\\"1234567889999977\\\",\\n" + "\\\"fDouble\\\": 1234.343232226,\\n" + "\\\"fKingdom\\\": \\\"ARCHAEBACTERIA\\\"\\n" + "}]\"\n" + "}]";
    ProtoMessageJsonStreamIterator streamIter = new ProtoMessageJsonStreamIterator(new StringReader(jsonData));
    Truth.assertThat(streamIter.hasNext()).isTrue();
    Field.Builder builder = Field.newBuilder();
    JsonFormat.parser().merge(streamIter.next(), builder);
    Truth.assertThat(builder.build()).isEqualTo(expectedData);
    Truth.assertThat(streamIter.hasNext()).isFalse();
    streamIter.close();
}
Also used : Field(com.google.protobuf.Field) StringReader(java.io.StringReader) Test(org.junit.Test)

Example 4 with Field

use of com.google.protobuf.Field in project gax-java by googleapis.

the class ProtoMessageResponseParserTest method parse.

@Test
public void parse() {
    Field actualField = parser.parse(new ByteArrayInputStream(fieldJson.getBytes(StandardCharsets.UTF_8)));
    Truth.assertThat(actualField).isEqualTo(field);
}
Also used : Field(com.google.protobuf.Field) ByteArrayInputStream(java.io.ByteArrayInputStream) Test(org.junit.Test)

Example 5 with Field

use of com.google.protobuf.Field in project gax-java by googleapis.

the class ProtoRestSerializerTest method fromJson.

@Test
public void fromJson() {
    Field fieldFromJson = requestSerializer.fromJson(new StringReader(fieldJson), Field.newBuilder());
    Truth.assertThat(fieldFromJson).isEqualTo(field);
}
Also used : Field(com.google.protobuf.Field) StringReader(java.io.StringReader) Test(org.junit.Test)

Aggregations

Field (com.google.protobuf.Field)11 Test (org.junit.Test)11 StringReader (java.io.StringReader)4 OperationSnapshot (com.google.api.gax.longrunning.OperationSnapshot)2 ApiCallContext (com.google.api.gax.rpc.ApiCallContext)2 Option (com.google.protobuf.Option)2 ByteArrayInputStream (java.io.ByteArrayInputStream)2 ExecutionException (java.util.concurrent.ExecutionException)2 HttpResponseException (com.google.api.client.http.HttpResponseException)1 ApiException (com.google.api.gax.rpc.ApiException)1