31 package com.google.protobuf;
33 import any_test.AnyTestProto.TestAny;
35 import java.util.Objects;
36 import junit.framework.TestCase;
41 TestAllTypes.Builder builder = TestAllTypes.newBuilder();
43 TestAllTypes
message = builder.build();
45 TestAny container = TestAny.newBuilder().setValue(
Any.pack(
message)).build();
47 assertTrue(container.getValue().is(TestAllTypes.class));
48 assertFalse(container.getValue().is(TestAny.class));
50 TestAllTypes result = container.getValue().unpack(TestAllTypes.class);
56 container.getValue().unpack(TestAny.class);
57 fail(
"Exception is expected.");
63 TestAny.Builder containerBuilder = container.toBuilder();
64 containerBuilder.getValueBuilder().setValue(
ByteString.copyFrom(
new byte[] {0x11}));
65 container = containerBuilder.build();
67 container.getValue().unpack(TestAllTypes.class);
68 fail(
"Exception is expected.");
75 TestAllTypes.Builder builder = TestAllTypes.newBuilder();
77 TestAllTypes
message = builder.build();
79 TestAny container = TestAny.newBuilder().setValue(
Any.pack(
message,
"xxx.com")).build();
82 "xxx.com/" + TestAllTypes.getDescriptor().getFullName(), container.getValue().getTypeUrl());
84 assertTrue(container.getValue().is(TestAllTypes.class));
85 assertFalse(container.getValue().is(TestAny.class));
87 TestAllTypes result = container.getValue().unpack(TestAllTypes.class);
90 container = TestAny.newBuilder().setValue(
Any.pack(
message,
"yyy.com/")).build();
93 "yyy.com/" + TestAllTypes.getDescriptor().getFullName(), container.getValue().getTypeUrl());
95 assertTrue(container.getValue().is(TestAllTypes.class));
96 assertFalse(container.getValue().is(TestAny.class));
98 result = container.getValue().unpack(TestAllTypes.class);
101 container = TestAny.newBuilder().setValue(
Any.pack(
message,
"")).build();
104 "/" + TestAllTypes.getDescriptor().getFullName(), container.getValue().getTypeUrl());
106 assertTrue(container.getValue().is(TestAllTypes.class));
107 assertFalse(container.getValue().is(TestAny.class));
109 result = container.getValue().unpack(TestAllTypes.class);
114 TestAllTypes.Builder builder = TestAllTypes.newBuilder();
116 TestAllTypes
message = builder.build();
118 TestAny container = TestAny.newBuilder().setValue(
Any.pack(
message)).build();
120 assertTrue(container.getValue().is(TestAllTypes.class));
122 TestAllTypes result1 = container.getValue().unpack(TestAllTypes.class);
123 TestAllTypes result2 = container.getValue().unpack(TestAllTypes.class);
124 assertTrue(Objects.equals(result1, result2));