31 package com.google.protobuf;
43 import junit.framework.TestCase;
51 TestAllTypes.Builder builder = TestAllTypes.newBuilder();
52 builder.setOptionalNestedEnumValue(4321);
53 builder.addRepeatedNestedEnumValue(5432);
54 builder.addPackedNestedEnumValue(6543);
55 TestAllTypes
message = builder.build();
56 assertEquals(4321,
message.getOptionalNestedEnumValue());
57 assertEquals(5432,
message.getRepeatedNestedEnumValue(0));
58 assertEquals(5432,
message.getRepeatedNestedEnumValueList().get(0).intValue());
59 assertEquals(6543,
message.getPackedNestedEnumValue(0));
61 assertEquals(TestAllTypes.NestedEnum.UNRECOGNIZED,
message.getOptionalNestedEnum());
62 assertEquals(TestAllTypes.NestedEnum.UNRECOGNIZED,
message.getRepeatedNestedEnum(0));
63 assertEquals(TestAllTypes.NestedEnum.UNRECOGNIZED,
message.getRepeatedNestedEnumList().get(0));
64 assertEquals(TestAllTypes.NestedEnum.UNRECOGNIZED,
message.getPackedNestedEnum(0));
69 assertEquals(4321,
message.getOptionalNestedEnumValue());
70 assertEquals(5432,
message.getRepeatedNestedEnumValue(0));
71 assertEquals(5432,
message.getRepeatedNestedEnumValueList().get(0).intValue());
72 assertEquals(6543,
message.getPackedNestedEnumValue(0));
74 assertEquals(TestAllTypes.NestedEnum.UNRECOGNIZED,
message.getOptionalNestedEnum());
75 assertEquals(TestAllTypes.NestedEnum.UNRECOGNIZED,
message.getRepeatedNestedEnum(0));
76 assertEquals(TestAllTypes.NestedEnum.UNRECOGNIZED,
message.getRepeatedNestedEnumList().get(0));
77 assertEquals(TestAllTypes.NestedEnum.UNRECOGNIZED,
message.getPackedNestedEnum(0));
81 assertEquals(4321, builder.getOptionalNestedEnumValue());
82 assertEquals(5432, builder.getRepeatedNestedEnumValue(0));
83 assertEquals(5432, builder.getRepeatedNestedEnumValueList().get(0).intValue());
84 assertEquals(6543, builder.getPackedNestedEnumValue(0));
86 assertEquals(TestAllTypes.NestedEnum.UNRECOGNIZED, builder.getOptionalNestedEnum());
87 assertEquals(TestAllTypes.NestedEnum.UNRECOGNIZED, builder.getRepeatedNestedEnum(0));
88 assertEquals(TestAllTypes.NestedEnum.UNRECOGNIZED, builder.getRepeatedNestedEnumList().get(0));
89 assertEquals(TestAllTypes.NestedEnum.UNRECOGNIZED, builder.getPackedNestedEnum(0));
92 builder = TestAllTypes.newBuilder().mergeFrom(
message);
93 assertEquals(4321, builder.getOptionalNestedEnumValue());
94 assertEquals(5432, builder.getRepeatedNestedEnumValue(0));
95 assertEquals(5432, builder.getRepeatedNestedEnumValueList().get(0).intValue());
96 assertEquals(6543, builder.getPackedNestedEnumValue(0));
98 assertEquals(TestAllTypes.NestedEnum.UNRECOGNIZED, builder.getOptionalNestedEnum());
99 assertEquals(TestAllTypes.NestedEnum.UNRECOGNIZED, builder.getRepeatedNestedEnum(0));
100 assertEquals(TestAllTypes.NestedEnum.UNRECOGNIZED, builder.getRepeatedNestedEnumList().get(0));
101 assertEquals(TestAllTypes.NestedEnum.UNRECOGNIZED, builder.getPackedNestedEnum(0));
104 TestAllTypes sameMessage = builder.build();
105 assertEquals(
message, sameMessage);
106 assertEquals(
message.hashCode(), sameMessage.hashCode());
110 TestAllTypes.NestedEnum.UNRECOGNIZED.getNumber();
111 fail(
"Exception is expected.");
112 }
catch (IllegalArgumentException e) {
118 builder.setOptionalNestedEnum(builder.getOptionalNestedEnum());
119 fail(
"Exception is expected.");
120 }
catch (IllegalArgumentException e) {
124 builder.addRepeatedNestedEnum(builder.getOptionalNestedEnum());
125 fail(
"Exception is expected.");
126 }
catch (IllegalArgumentException e) {
136 EnumDescriptor enumType = TestAllTypes.NestedEnum.getDescriptor();
138 TestAllTypes.Builder builder = TestAllTypes.newBuilder();
140 builder.addRepeatedField(
142 builder.addRepeatedField(
144 TestAllTypes
message = builder.build();
153 assertEquals(4321, unknown4321.
getNumber());
154 assertEquals(5432, unknown5432.
getNumber());
155 assertEquals(6543, unknown6543.
getNumber());
159 TestAllTypes.NestedEnum.UNRECOGNIZED, TestAllTypes.NestedEnum.valueOf(unknown4321));
161 TestAllTypes.NestedEnum.UNRECOGNIZED, TestAllTypes.NestedEnum.valueOf(unknown5432));
163 TestAllTypes.NestedEnum.UNRECOGNIZED, TestAllTypes.NestedEnum.valueOf(unknown6543));
166 builder.setField(optionalNestedEnumField, unknown6543);
167 builder.setRepeatedField(repeatedNestedEnumField, 0, unknown4321);
168 builder.setRepeatedField(packedNestedEnumField, 0, unknown5432);
172 assertSame(
message.getField(optionalNestedEnumField), unknown6543);
173 assertSame(
message.getRepeatedField(repeatedNestedEnumField, 0), unknown4321);
174 assertSame(
message.getRepeatedField(packedNestedEnumField, 0), unknown5432);
182 EnumDescriptor enumType = TestAllTypes.NestedEnum.getDescriptor();
221 Message sameMessage = builder.build();
222 assertEquals(
message, sameMessage);
225 Message differentMessage = builder.build();
226 assertFalse(
message.equals(differentMessage));
230 TestAllTypes.Builder builder = TestAllTypes.newBuilder();
231 builder.setOptionalNestedEnumValue(4321);
232 builder.addRepeatedNestedEnumValue(5432);
233 builder.addPackedNestedEnumValue(6543);
234 TestAllTypes
message = builder.build();
239 "optional_nested_enum: UNKNOWN_ENUM_VALUE_NestedEnum_4321\n"
240 +
"repeated_nested_enum: UNKNOWN_ENUM_VALUE_NestedEnum_5432\n"
241 +
"packed_nested_enum: UNKNOWN_ENUM_VALUE_NestedEnum_6543\n",
255 Proto2EnumMessage.Builder sourceMessage = Proto2EnumMessage.newBuilder();
257 .addRepeatedPackedEnum(Proto2TestEnum.ZERO)
258 .addRepeatedPackedEnum(Proto2TestEnum.TWO)
259 .addRepeatedPackedEnum(Proto2TestEnum.ONE);
261 Proto2EnumMessageWithEnumSubset destMessage =
262 Proto2EnumMessageWithEnumSubset.parseFrom(sourceMessage.build().toByteArray());
265 assertEquals(2, destMessage.getRepeatedPackedEnumCount());
266 assertEquals(Proto2TestEnumSubset.TESTENUM_SUBSET_ZERO, destMessage.getRepeatedPackedEnum(0));
267 assertEquals(Proto2TestEnumSubset.TESTENUM_SUBSET_ONE, destMessage.getRepeatedPackedEnum(1));
272 Proto2TestEnum.TWO_VALUE,
274 .
getField(Proto2EnumMessageWithEnumSubset.REPEATED_PACKED_ENUM_FIELD_NUMBER)
284 Proto2EnumMessage.Builder sourceMessage = Proto2EnumMessage.newBuilder();
286 .addRepeatedPackedEnum(Proto2TestEnum.ZERO)
287 .addRepeatedPackedEnum(Proto2TestEnum.TWO)
288 .addRepeatedPackedEnum(Proto2TestEnum.ONE);
292 Proto2EnumMessageWithEnumSubset.getDescriptor(), sourceMessage.build().toByteArray());
295 assertEquals(2,
message.getRepeatedFieldCount(repeatedPackedField));
301 assertEquals(Proto2TestEnumSubset.TESTENUM_SUBSET_ZERO_VALUE, enumValue0.
getNumber());
302 assertEquals(Proto2TestEnumSubset.TESTENUM_SUBSET_ONE_VALUE, enumValue1.
getNumber());
307 Proto2TestEnum.TWO_VALUE,