public ProtoAdapter<Object> protoAdapter(String messageTypeName) throws IOException { Schema schema = schema(); return schema.protoAdapter(messageTypeName, true); }
@Test public void decode() throws Exception { ProtoAdapter<Object> adapter = coffeeSchema.protoAdapter("CafeDrink", true); assertThat(adapter.decode(new Buffer().write(dansCoffeeEncoded))).isEqualTo(dansCoffee); assertThat(adapter.decode(new Buffer().write(jessesCoffeeEncoded))).isEqualTo(jessesCoffee); }
@Test public void encode() throws IOException { ProtoAdapter<Object> adapter = coffeeSchema.protoAdapter("CafeDrink", true); assertThat(ByteString.of(adapter.encode(dansCoffee))).isEqualTo(dansCoffeeEncoded); assertThat(ByteString.of(adapter.encode(jessesCoffee))).isEqualTo(jessesCoffeeEncoded); }
@Test public void omitUnknowns() throws Exception { Schema schema = new RepoBuilder() .add("coffee.proto", "" + "message CafeDrink {\n" + " optional string customer_name = 1;\n" + " optional int32 size_ounces = 14;\n" + "}\n") .schema(); ImmutableMap<String, Object> dansCoffeeWithoutUnknowns = ImmutableMap.<String, Object>of( "customer_name", "Dan", "size_ounces", 16); ProtoAdapter<Object> adapter = schema.protoAdapter("CafeDrink", false); assertThat(adapter.decode(new Buffer().write(dansCoffeeEncoded))) .isEqualTo(dansCoffeeWithoutUnknowns); } }
@Test public void includeUnknowns() throws Exception { Schema schema = new RepoBuilder() .add("coffee.proto", "" + "message CafeDrink {\n" + " optional string customer_name = 1;\n" + " optional int32 size_ounces = 14;\n" + "}\n") .schema(); ImmutableMap<String, Object> dansCoffeeWithUnknowns = ImmutableMap.<String, Object>of( "customer_name", "Dan", "2", ImmutableList.of(ByteString.decodeHex("11000000000000e03f")), "size_ounces", 16, "15", ImmutableList.of(ByteString.decodeHex("1001"))); ProtoAdapter<Object> adapter = schema.protoAdapter("CafeDrink", true); assertThat(adapter.decode(new Buffer().write(dansCoffeeEncoded))) .isEqualTo(dansCoffeeWithUnknowns); }