31 package com.google.protobuf;
33 import static org.junit.Assert.assertArrayEquals;
35 import map_lite_test.MapTestProto.BizarroTestMap;
36 import map_lite_test.MapTestProto.TestMap;
37 import map_lite_test.MapTestProto.TestMap.MessageValue;
38 import map_lite_test.MapTestProto.TestMapOrBuilder;
39 import java.io.ByteArrayOutputStream;
40 import java.io.IOException;
41 import java.util.ArrayList;
42 import java.util.Arrays;
43 import java.util.HashMap;
45 import junit.framework.TestCase;
52 .putInt32ToInt32Field(1, 11)
53 .putInt32ToInt32Field(2, 22)
54 .putInt32ToInt32Field(3, 33)
55 .putInt32ToStringField(1,
"11")
56 .putInt32ToStringField(2,
"22")
57 .putInt32ToStringField(3,
"33")
58 .putInt32ToBytesField(1,
TestUtil.toBytes(
"11"))
59 .putInt32ToBytesField(2,
TestUtil.toBytes(
"22"))
60 .putInt32ToBytesField(3,
TestUtil.toBytes(
"33"))
61 .putInt32ToEnumField(1, TestMap.EnumValue.FOO)
62 .putInt32ToEnumField(2, TestMap.EnumValue.BAR)
63 .putInt32ToEnumField(3, TestMap.EnumValue.BAZ)
64 .putInt32ToMessageField(1, MessageValue.newBuilder().setValue(11).build())
65 .putInt32ToMessageField(2, MessageValue.newBuilder().setValue(22).build())
66 .putInt32ToMessageField(3, MessageValue.newBuilder().setValue(33).build())
67 .putStringToInt32Field(
"1", 11)
68 .putStringToInt32Field(
"2", 22)
69 .putStringToInt32Field(
"3", 33);
73 TestMap.Builder usingMutableMapBuilder = TestMap.newBuilder();
75 TestMap usingMutableMap = usingMutableMapBuilder.build();
78 TestMap.Builder usingAccessorsBuilder = TestMap.newBuilder();
80 TestMap usingAccessors = usingAccessorsBuilder.build();
82 assertEquals(usingAccessors, usingMutableMap);
87 .putAllInt32ToInt32Field(
source.getInt32ToInt32Field())
88 .putAllInt32ToStringField(
source.getInt32ToStringField())
89 .putAllInt32ToBytesField(
source.getInt32ToBytesField())
90 .putAllInt32ToEnumField(
source.getInt32ToEnumField())
91 .putAllInt32ToMessageField(
source.getInt32ToMessageField())
92 .putAllStringToInt32Field(
source.getStringToInt32Field());
96 assertEquals(3,
message.getInt32ToInt32Field().size());
97 assertEquals(11,
message.getInt32ToInt32Field().get(1).intValue());
98 assertEquals(22,
message.getInt32ToInt32Field().get(2).intValue());
99 assertEquals(33,
message.getInt32ToInt32Field().get(3).intValue());
101 assertEquals(3,
message.getInt32ToStringField().size());
102 assertEquals(
"11",
message.getInt32ToStringField().get(1));
103 assertEquals(
"22",
message.getInt32ToStringField().get(2));
104 assertEquals(
"33",
message.getInt32ToStringField().get(3));
106 assertEquals(3,
message.getInt32ToBytesField().size());
107 assertEquals(
TestUtil.toBytes(
"11"),
message.getInt32ToBytesField().get(1));
108 assertEquals(
TestUtil.toBytes(
"22"),
message.getInt32ToBytesField().get(2));
109 assertEquals(
TestUtil.toBytes(
"33"),
message.getInt32ToBytesField().get(3));
111 assertEquals(3,
message.getInt32ToEnumField().size());
112 assertEquals(TestMap.EnumValue.FOO,
message.getInt32ToEnumField().get(1));
113 assertEquals(TestMap.EnumValue.BAR,
message.getInt32ToEnumField().get(2));
114 assertEquals(TestMap.EnumValue.BAZ,
message.getInt32ToEnumField().get(3));
116 assertEquals(3,
message.getInt32ToMessageField().size());
117 assertEquals(11,
message.getInt32ToMessageField().get(1).getValue());
118 assertEquals(22,
message.getInt32ToMessageField().get(2).getValue());
119 assertEquals(33,
message.getInt32ToMessageField().get(3).getValue());
121 assertEquals(3,
message.getStringToInt32Field().size());
122 assertEquals(11,
message.getStringToInt32Field().get(
"1").intValue());
123 assertEquals(22,
message.getStringToInt32Field().get(
"2").intValue());
124 assertEquals(33,
message.getStringToInt32Field().get(
"3").intValue());
129 .putInt32ToInt32Field(1, 111)
130 .removeInt32ToInt32Field(2)
131 .putInt32ToInt32Field(4, 44)
132 .putInt32ToStringField(1,
"111")
133 .removeInt32ToStringField(2)
134 .putInt32ToStringField(4,
"44")
135 .putInt32ToBytesField(1,
TestUtil.toBytes(
"111"))
136 .removeInt32ToBytesField(2)
137 .putInt32ToBytesField(4,
TestUtil.toBytes(
"44"))
138 .putInt32ToEnumField(1, TestMap.EnumValue.BAR)
139 .removeInt32ToEnumField(2)
140 .putInt32ToEnumField(4, TestMap.EnumValue.QUX)
141 .putInt32ToMessageField(1, MessageValue.newBuilder().setValue(111).build())
142 .removeInt32ToMessageField(2)
143 .putInt32ToMessageField(4, MessageValue.newBuilder().setValue(44).build())
144 .putStringToInt32Field(
"1", 111)
145 .removeStringToInt32Field(
"2")
146 .putStringToInt32Field(
"4", 44);
150 TestMap.Builder mapBuilder = TestMap.newBuilder();
152 TestMap
map = mapBuilder.build();
155 mapBuilder =
map.toBuilder();
157 map = mapBuilder.build();
162 assertEquals(3,
message.getInt32ToInt32Field().size());
163 assertEquals(111,
message.getInt32ToInt32Field().get(1).intValue());
164 assertEquals(33,
message.getInt32ToInt32Field().get(3).intValue());
165 assertEquals(44,
message.getInt32ToInt32Field().get(4).intValue());
167 assertEquals(3,
message.getInt32ToStringField().size());
168 assertEquals(
"111",
message.getInt32ToStringField().get(1));
169 assertEquals(
"33",
message.getInt32ToStringField().get(3));
170 assertEquals(
"44",
message.getInt32ToStringField().get(4));
172 assertEquals(3,
message.getInt32ToBytesField().size());
173 assertEquals(
TestUtil.toBytes(
"111"),
message.getInt32ToBytesField().get(1));
174 assertEquals(
TestUtil.toBytes(
"33"),
message.getInt32ToBytesField().get(3));
175 assertEquals(
TestUtil.toBytes(
"44"),
message.getInt32ToBytesField().get(4));
177 assertEquals(3,
message.getInt32ToEnumField().size());
178 assertEquals(TestMap.EnumValue.BAR,
message.getInt32ToEnumField().get(1));
179 assertEquals(TestMap.EnumValue.BAZ,
message.getInt32ToEnumField().get(3));
180 assertEquals(TestMap.EnumValue.QUX,
message.getInt32ToEnumField().get(4));
182 assertEquals(3,
message.getInt32ToMessageField().size());
183 assertEquals(111,
message.getInt32ToMessageField().get(1).getValue());
184 assertEquals(33,
message.getInt32ToMessageField().get(3).getValue());
185 assertEquals(44,
message.getInt32ToMessageField().get(4).getValue());
187 assertEquals(3,
message.getStringToInt32Field().size());
188 assertEquals(111,
message.getStringToInt32Field().get(
"1").intValue());
189 assertEquals(33,
message.getStringToInt32Field().get(
"3").intValue());
190 assertEquals(44,
message.getStringToInt32Field().get(
"4").intValue());
194 assertEquals(0, testMapOrBuilder.getInt32ToInt32Field().size());
195 assertEquals(0, testMapOrBuilder.getInt32ToInt32FieldCount());
196 assertEquals(0, testMapOrBuilder.getInt32ToStringField().size());
197 assertEquals(0, testMapOrBuilder.getInt32ToStringFieldCount());
198 assertEquals(0, testMapOrBuilder.getInt32ToBytesField().size());
199 assertEquals(0, testMapOrBuilder.getInt32ToBytesFieldCount());
200 assertEquals(0, testMapOrBuilder.getInt32ToEnumField().size());
201 assertEquals(0, testMapOrBuilder.getInt32ToEnumFieldCount());
202 assertEquals(0, testMapOrBuilder.getInt32ToMessageField().size());
203 assertEquals(0, testMapOrBuilder.getInt32ToMessageFieldCount());
204 assertEquals(0, testMapOrBuilder.getStringToInt32Field().size());
205 assertEquals(0, testMapOrBuilder.getStringToInt32FieldCount());
213 TestMap.Builder builder = TestMap.newBuilder();
214 TestMap
message = builder.build();
215 builder.putInt32ToInt32Field(1, 2);
216 assertTrue(
message.getInt32ToInt32Field().isEmpty());
217 assertEquals(
newMap(1, 2), builder.getInt32ToInt32Field());
219 builder.putInt32ToInt32Field(2, 3);
221 assertEquals(
newMap(1, 2, 2, 3), builder.getInt32ToInt32Field());
225 TestMap.Builder builder = TestMap.newBuilder();
235 assertImmutable(testMapOrBuilder.getInt32ToInt32Field(), 1, 2);
236 assertImmutable(testMapOrBuilder.getInt32ToStringField(), 1,
"2");
237 assertImmutable(testMapOrBuilder.getInt32ToBytesField(), 1,
TestUtil.toBytes(
"2"));
238 assertImmutable(testMapOrBuilder.getInt32ToEnumField(), 1, TestMap.EnumValue.FOO);
240 testMapOrBuilder.getInt32ToMessageField(), 1, MessageValue.getDefaultInstance());
241 assertImmutable(testMapOrBuilder.getStringToInt32Field(),
"1", 2);
244 private <K, V>
void assertImmutable(Map<K, V>
map,
K key, V
value) {
248 }
catch (UnsupportedOperationException e) {
251 if (!
map.isEmpty()) {
253 map.entrySet().remove(
map.entrySet().iterator().next());
255 }
catch (UnsupportedOperationException e) {
262 TestMap.Builder builder = TestMap.newBuilder().putInt32ToInt32Field(1, 2);
263 builder.clearInt32ToInt32Field();
264 assertEquals(0, builder.getInt32ToInt32FieldCount());
268 TestMap.Builder builder = TestMap.newBuilder().putInt32ToInt32Field(1, 2);
269 assertEquals(
newMap(1, 2), builder.build().getInt32ToInt32Field());
270 assertEquals(
newMap(1, 2), builder.getInt32ToInt32Field());
271 builder.putInt32ToInt32Field(2, 3);
272 assertEquals(
newMap(1, 2, 2, 3), builder.getInt32ToInt32Field());
274 builder.putInt32ToEnumField(1, TestMap.EnumValue.BAR);
275 assertEquals(
newMap(1, TestMap.EnumValue.BAR), builder.build().getInt32ToEnumField());
276 assertEquals(
newMap(1, TestMap.EnumValue.BAR), builder.getInt32ToEnumField());
277 builder.putInt32ToEnumField(2, TestMap.EnumValue.FOO);
279 newMap(1, TestMap.EnumValue.BAR, 2, TestMap.EnumValue.FOO), builder.getInt32ToEnumField());
281 builder.putInt32ToStringField(1,
"1");
282 assertEquals(
newMap(1,
"1"), builder.build().getInt32ToStringField());
283 assertEquals(
newMap(1,
"1"), builder.getInt32ToStringField());
284 builder.putInt32ToStringField(2,
"2");
285 assertEquals(
newMap(1,
"1", 2,
"2"), builder.getInt32ToStringField());
287 builder.putInt32ToMessageField(1, TestMap.MessageValue.getDefaultInstance());
289 newMap(1, TestMap.MessageValue.getDefaultInstance()),
290 builder.build().getInt32ToMessageField());
292 newMap(1, TestMap.MessageValue.getDefaultInstance()), builder.getInt32ToMessageField());
293 builder.putInt32ToMessageField(2, TestMap.MessageValue.getDefaultInstance());
297 TestMap.MessageValue.getDefaultInstance(),
299 TestMap.MessageValue.getDefaultInstance()),
300 builder.getInt32ToMessageField());
304 TestMap.Builder builder = TestMap.newBuilder();
305 TestMap
message = builder.build();
326 TestMap.Builder sourceBuilder = TestMap.newBuilder();
328 TestMap
source = sourceBuilder.build();
331 TestMap.Builder destination = TestMap.newBuilder();
337 TestMap.Builder sourceBuilder =
339 .putInt32ToEnumFieldValue(0, 0)
340 .putInt32ToEnumFieldValue(1, 1)
341 .putAllInt32ToEnumFieldValue(
newMap(2, 1000));
342 TestMap
source = sourceBuilder.build();
344 TestMap.Builder destinationBuilder = TestMap.newBuilder();
345 destinationBuilder.putAllInt32ToEnumFieldValue(
source.getInt32ToEnumFieldValue());
346 TestMap destination = destinationBuilder.build();
348 assertEquals(0, destination.getInt32ToEnumFieldValue().get(0).intValue());
349 assertEquals(1, destination.getInt32ToEnumFieldValue().get(1).intValue());
350 assertEquals(1000, destination.getInt32ToEnumFieldValue().get(2).intValue());
351 assertEquals(3, destination.getInt32ToEnumFieldCount());
355 TestMap.Builder builder =
357 .putInt32ToEnumFieldValue(0, 0)
358 .putInt32ToEnumFieldValue(1, 1)
359 .putInt32ToEnumFieldValue(2, 1000);
360 TestMap
message = builder.build();
362 assertEquals(0,
message.getInt32ToEnumFieldValueOrThrow(0));
363 assertEquals(1,
message.getInt32ToEnumFieldValueOrThrow(1));
364 assertEquals(1000,
message.getInt32ToEnumFieldValueOrThrow(2));
365 assertEquals(3,
message.getInt32ToEnumFieldCount());
369 TestMap.Builder builder = TestMap.newBuilder();
372 builder.putInt32ToStringField(1,
null);
374 }
catch (NullPointerException e) {
379 builder.putInt32ToBytesField(1,
null);
381 }
catch (NullPointerException e) {
386 builder.putInt32ToEnumField(1,
null);
388 }
catch (NullPointerException e) {
393 builder.putInt32ToMessageField(1,
null);
395 }
catch (NullPointerException e) {
400 builder.putStringToInt32Field(
null, 1);
402 }
catch (NullPointerException e) {
408 TestMap.Builder builder = TestMap.newBuilder();
410 TestMap
message = builder.build();
411 assertEquals(
message.getSerializedSize(),
message.toByteString().size());
418 assertEquals(
message.getSerializedSize(),
message.toByteString().size());
425 assertEquals(
message.getSerializedSize(),
message.toByteString().size());
431 ByteArrayOutputStream byteArrayOutputStream =
new ByteArrayOutputStream();
433 bizarroMap.writeTo(
output);
435 return TestMap.parser().parseFrom(
ByteString.copyFrom(byteArrayOutputStream.toByteArray()));
440 String stringKey =
"a string key";
444 assertEquals(0,
map.getInt32ToInt32FieldOrDefault(5, -1));
446 map =
tryParseTestMap(BizarroTestMap.newBuilder().putInt32ToStringField(stringKey, 5).build());
447 assertEquals(
"",
map.getInt32ToStringFieldOrDefault(0,
null));
449 map =
tryParseTestMap(BizarroTestMap.newBuilder().putInt32ToBytesField(stringKey, 5).build());
454 assertEquals(TestMap.EnumValue.FOO,
map.getInt32ToEnumFieldOrDefault(0,
null));
462 assertTrue(
map.getInt32ToMessageField().isEmpty());
467 BizarroTestMap.newBuilder().putStringToInt32Field(stringKey,
bytes).build());
468 assertEquals(0,
map.getStringToInt32FieldOrDefault(stringKey, -1));
472 TestMap.Builder builder = TestMap.newBuilder();
474 TestMap
message = builder.build();
476 TestMap.Builder other = TestMap.newBuilder();
489 .putInt32ToInt32Field(1, 2)
490 .putInt32ToInt32Field(3, 4)
491 .putInt32ToInt32Field(5, 6);
492 TestMap m1 = b1.build();
496 .putInt32ToInt32Field(5, 6)
497 .putInt32ToInt32Field(1, 2)
498 .putInt32ToInt32Field(3, 4);
499 TestMap m2 = b2.build();
501 assertEquals(m1, m2);
502 assertEquals(m1.hashCode(), m2.hashCode());
505 b2.putInt32ToInt32Field(1, 0);
507 assertFalse(m1.equals(m2));
513 b2.removeInt32ToInt32Field(1);
515 assertFalse(m1.equals(m2));
516 assertFalse(m2.equals(m1));
520 TestMap.Builder builder =
522 .putInt32ToEnumFieldValue(0, 0)
523 .putInt32ToEnumFieldValue(1, 1)
524 .putInt32ToEnumFieldValue(2, 1000);
525 TestMap
message = builder.build();
527 assertEquals(TestMap.EnumValue.FOO,
message.getInt32ToEnumField().get(0));
528 assertEquals(TestMap.EnumValue.BAR,
message.getInt32ToEnumField().get(1));
529 assertEquals(TestMap.EnumValue.UNRECOGNIZED,
message.getInt32ToEnumField().get(2));
531 builder.putAllInt32ToEnumFieldValue(
newMap(2, 1000));
533 assertEquals(TestMap.EnumValue.UNRECOGNIZED,
message.getInt32ToEnumField().get(2));
540 assertEquals(1000,
message.getInt32ToEnumFieldValue().get(2).intValue());
542 assertEquals(1000, builder.getInt32ToEnumFieldValue().get(2).intValue());
543 builder = TestMap.newBuilder().mergeFrom(
message);
544 assertEquals(1000, builder.getInt32ToEnumFieldValue().get(2).intValue());
547 builder.putAllInt32ToEnumFieldValue(
newMap(2, 1001));
548 TestMap message2 = builder.build();
549 assertFalse(
message.hashCode() == message2.hashCode());
550 assertFalse(
message.equals(message2));
553 assertEquals(message2.getInt32ToEnumField(),
message.getInt32ToEnumField());
557 TestMap.Builder builder = TestMap.newBuilder();
559 TestMap
message = builder.build();
562 Arrays.asList(
"1",
"2",
"3"),
new ArrayList<>(
message.getStringToInt32Field().keySet()));
566 TestMap.Builder builder = TestMap.newBuilder();
568 TestMap
message = builder.build();
569 assertEquals(
message.getStringToInt32Field(),
message.getStringToInt32FieldMap());
570 assertEquals(
message.getInt32ToBytesField(),
message.getInt32ToBytesFieldMap());
571 assertEquals(
message.getInt32ToEnumField(),
message.getInt32ToEnumFieldMap());
572 assertEquals(
message.getInt32ToEnumFieldValue(),
message.getInt32ToEnumFieldValueMap());
573 assertEquals(
message.getInt32ToMessageField(),
message.getInt32ToMessageFieldMap());
577 TestMap.Builder builder = TestMap.newBuilder();
584 assertTrue(testMapOrBuilder.containsInt32ToInt32Field(1));
585 assertTrue(testMapOrBuilder.containsInt32ToInt32Field(2));
586 assertTrue(testMapOrBuilder.containsInt32ToInt32Field(3));
587 assertFalse(testMapOrBuilder.containsInt32ToInt32Field(-1));
589 assertTrue(testMapOrBuilder.containsInt32ToStringField(1));
590 assertTrue(testMapOrBuilder.containsInt32ToStringField(2));
591 assertTrue(testMapOrBuilder.containsInt32ToStringField(3));
592 assertFalse(testMapOrBuilder.containsInt32ToStringField(-1));
594 assertTrue(testMapOrBuilder.containsInt32ToBytesField(1));
595 assertTrue(testMapOrBuilder.containsInt32ToBytesField(2));
596 assertTrue(testMapOrBuilder.containsInt32ToBytesField(3));
597 assertFalse(testMapOrBuilder.containsInt32ToBytesField(-1));
599 assertTrue(testMapOrBuilder.containsInt32ToEnumField(1));
600 assertTrue(testMapOrBuilder.containsInt32ToEnumField(2));
601 assertTrue(testMapOrBuilder.containsInt32ToEnumField(3));
602 assertFalse(testMapOrBuilder.containsInt32ToEnumField(-1));
604 assertTrue(testMapOrBuilder.containsInt32ToMessageField(1));
605 assertTrue(testMapOrBuilder.containsInt32ToMessageField(2));
606 assertTrue(testMapOrBuilder.containsInt32ToMessageField(3));
607 assertFalse(testMapOrBuilder.containsInt32ToMessageField(-1));
609 assertTrue(testMapOrBuilder.containsStringToInt32Field(
"1"));
610 assertTrue(testMapOrBuilder.containsStringToInt32Field(
"2"));
611 assertTrue(testMapOrBuilder.containsStringToInt32Field(
"3"));
612 assertFalse(testMapOrBuilder.containsStringToInt32Field(
"-1"));
616 TestMap.Builder builder = TestMap.newBuilder();
622 TestMap
message = builder.build();
625 builder =
message.toBuilder().putInt32ToInt32Field(4, 44);
626 assertEquals(4, builder.getInt32ToInt32FieldCount());
627 assertEquals(4, builder.build().getInt32ToInt32FieldCount());
630 builder.putInt32ToInt32Field(4, 44);
631 assertEquals(4, builder.getInt32ToInt32FieldCount());
635 assertEquals(expectedCount, testMapOrBuilder.getInt32ToInt32FieldCount());
636 assertEquals(expectedCount, testMapOrBuilder.getInt32ToStringFieldCount());
637 assertEquals(expectedCount, testMapOrBuilder.getInt32ToBytesFieldCount());
638 assertEquals(expectedCount, testMapOrBuilder.getInt32ToEnumFieldCount());
639 assertEquals(expectedCount, testMapOrBuilder.getInt32ToMessageFieldCount());
640 assertEquals(expectedCount, testMapOrBuilder.getStringToInt32FieldCount());
644 TestMap.Builder builder = TestMap.newBuilder();
652 assertEquals(11, testMapOrBuilder.getInt32ToInt32FieldOrDefault(1, -11));
653 assertEquals(-11, testMapOrBuilder.getInt32ToInt32FieldOrDefault(-1, -11));
655 assertEquals(
"11", testMapOrBuilder.getInt32ToStringFieldOrDefault(1,
"-11"));
656 assertNull(
"-11", testMapOrBuilder.getInt32ToStringFieldOrDefault(-1,
null));
658 assertEquals(
TestUtil.toBytes(
"11"), testMapOrBuilder.getInt32ToBytesFieldOrDefault(1,
null));
659 assertNull(testMapOrBuilder.getInt32ToBytesFieldOrDefault(-1,
null));
661 assertEquals(TestMap.EnumValue.FOO, testMapOrBuilder.getInt32ToEnumFieldOrDefault(1,
null));
662 assertNull(testMapOrBuilder.getInt32ToEnumFieldOrDefault(-1,
null));
665 TestMap.EnumValue.BAR.getNumber(),
666 testMapOrBuilder.getInt32ToEnumFieldValueOrDefault(2, -1));
667 assertEquals(-1, testMapOrBuilder.getInt32ToEnumFieldValueOrDefault(-1000, -1));
670 MessageValue.newBuilder().setValue(11).build(),
671 testMapOrBuilder.getInt32ToMessageFieldOrDefault(1,
null));
672 assertNull(testMapOrBuilder.getInt32ToMessageFieldOrDefault(-1,
null));
674 assertEquals(11, testMapOrBuilder.getStringToInt32FieldOrDefault(
"1", -11));
675 assertEquals(-11, testMapOrBuilder.getStringToInt32FieldOrDefault(
"-1", -11));
678 testMapOrBuilder.getStringToInt32FieldOrDefault(
null, -11);
680 }
catch (NullPointerException e) {
686 TestMap.Builder builder = TestMap.newBuilder();
694 assertEquals(11, testMapOrBuilder.getInt32ToInt32FieldOrThrow(1));
696 testMapOrBuilder.getInt32ToInt32FieldOrThrow(-1);
698 }
catch (IllegalArgumentException e) {
702 assertEquals(
"11", testMapOrBuilder.getInt32ToStringFieldOrThrow(1));
705 testMapOrBuilder.getInt32ToStringFieldOrThrow(-1);
707 }
catch (IllegalArgumentException e) {
711 assertEquals(
TestUtil.toBytes(
"11"), testMapOrBuilder.getInt32ToBytesFieldOrThrow(1));
714 testMapOrBuilder.getInt32ToBytesFieldOrThrow(-1);
716 }
catch (IllegalArgumentException e) {
720 assertEquals(TestMap.EnumValue.FOO, testMapOrBuilder.getInt32ToEnumFieldOrThrow(1));
722 testMapOrBuilder.getInt32ToEnumFieldOrThrow(-1);
724 }
catch (IllegalArgumentException e) {
729 TestMap.EnumValue.BAR.getNumber(), testMapOrBuilder.getInt32ToEnumFieldValueOrThrow(2));
731 testMapOrBuilder.getInt32ToEnumFieldValueOrThrow(-1);
733 }
catch (IllegalArgumentException e) {
738 MessageValue.newBuilder().setValue(11).build(),
739 testMapOrBuilder.getInt32ToMessageFieldOrThrow(1));
741 testMapOrBuilder.getInt32ToMessageFieldOrThrow(-1);
743 }
catch (IllegalArgumentException e) {
747 assertEquals(11, testMapOrBuilder.getStringToInt32FieldOrThrow(
"1"));
749 testMapOrBuilder.getStringToInt32FieldOrThrow(
"-1");
751 }
catch (IllegalArgumentException e) {
756 testMapOrBuilder.getStringToInt32FieldOrThrow(
null);
758 }
catch (NullPointerException e) {
764 TestMap.Builder builder = TestMap.newBuilder();
765 builder.putInt32ToInt32Field(1, 11);
766 assertEquals(11, builder.getInt32ToInt32FieldOrThrow(1));
768 builder.putInt32ToStringField(1,
"a");
769 assertEquals(
"a", builder.getInt32ToStringFieldOrThrow(1));
771 builder.putInt32ToStringField(1,
null);
773 }
catch (NullPointerException e) {
777 builder.putInt32ToBytesField(1,
TestUtil.toBytes(
"11"));
778 assertEquals(
TestUtil.toBytes(
"11"), builder.getInt32ToBytesFieldOrThrow(1));
780 builder.putInt32ToBytesField(1,
null);
782 }
catch (NullPointerException e) {
786 builder.putInt32ToEnumField(1, TestMap.EnumValue.FOO);
787 assertEquals(TestMap.EnumValue.FOO, builder.getInt32ToEnumFieldOrThrow(1));
789 builder.putInt32ToEnumField(1,
null);
791 }
catch (NullPointerException e) {
795 builder.putStringToInt32Field(
"a", 1);
796 assertEquals(1, builder.getStringToInt32FieldOrThrow(
"a"));
798 builder.putStringToInt32Field(
null, -1);
799 }
catch (NullPointerException e) {
805 TestMap.Builder builder = TestMap.newBuilder();
807 assertEquals(11, builder.getInt32ToInt32FieldOrThrow(1));
808 for (
int times = 0; times < 2; times++) {
809 builder.removeInt32ToInt32Field(1);
810 assertEquals(-1, builder.getInt32ToInt32FieldOrDefault(1, -1));
813 assertEquals(
"11", builder.getInt32ToStringFieldOrThrow(1));
814 for (
int times = 0; times < 2; times++) {
815 builder.removeInt32ToStringField(1);
816 assertNull(builder.getInt32ToStringFieldOrDefault(1,
null));
819 assertEquals(
TestUtil.toBytes(
"11"), builder.getInt32ToBytesFieldOrThrow(1));
820 for (
int times = 0; times < 2; times++) {
821 builder.removeInt32ToBytesField(1);
822 assertNull(builder.getInt32ToBytesFieldOrDefault(1,
null));
825 assertEquals(TestMap.EnumValue.FOO, builder.getInt32ToEnumFieldOrThrow(1));
826 for (
int times = 0; times < 2; times++) {
827 builder.removeInt32ToEnumField(1);
828 assertNull(builder.getInt32ToEnumFieldOrDefault(1,
null));
831 assertEquals(11, builder.getStringToInt32FieldOrThrow(
"1"));
832 for (
int times = 0; times < 2; times++) {
833 builder.removeStringToInt32Field(
"1");
834 assertEquals(-1, builder.getStringToInt32FieldOrDefault(
"1", -1));
838 builder.removeStringToInt32Field(
null);
840 }
catch (NullPointerException e) {
845 private static <K, V> Map<K, V>
newMap(
K key1, V value1) {
846 Map<K, V>
map =
new HashMap<>();
847 map.put(key1, value1);
851 private static <K, V> Map<K, V>
newMap(
K key1, V value1,
K key2, V value2) {
852 Map<K, V>
map =
new HashMap<>();
853 map.put(key1, value1);
854 map.put(key2, value2);
859 TestMap.Builder builder = TestMap.newBuilder();
862 builder.putStringToInt32Field(
null, 3);
864 }
catch (NullPointerException expected) {
868 builder.putAllStringToInt32Field(
newMap(
null, 3,
"hi", 4));
870 }
catch (NullPointerException expected) {
874 builder.putInt32ToMessageField(3,
null);
876 }
catch (NullPointerException expected) {
880 builder.putAllInt32ToMessageField(
883 }
catch (NullPointerException expected) {
887 builder.putAllInt32ToMessageField(
null);
889 }
catch (NullPointerException expected) {
892 assertArrayEquals(
new byte[0], builder.build().toByteArray());