Allow unknown values for Map put*Value methods just like every other enum mutation method.
This commit is contained in:
parent
efec757104
commit
bf483dfb99
4 changed files with 8 additions and 25 deletions
|
@ -490,19 +490,13 @@ public class MapTest extends TestCase {
|
|||
public void testPutForUnknownEnumValues() throws Exception {
|
||||
TestMap.Builder builder = TestMap.newBuilder()
|
||||
.putInt32ToEnumFieldValue(0, 0)
|
||||
.putInt32ToEnumFieldValue(1, 1);
|
||||
|
||||
try {
|
||||
builder.putInt32ToEnumFieldValue(2, 1000); // unknown value.
|
||||
fail();
|
||||
} catch (IllegalArgumentException e) {
|
||||
// expected
|
||||
}
|
||||
|
||||
.putInt32ToEnumFieldValue(1, 1)
|
||||
.putInt32ToEnumFieldValue(2, 1000); // unknown value.
|
||||
TestMap message = builder.build();
|
||||
assertEquals(0, message.getInt32ToEnumFieldValueOrThrow(0));
|
||||
assertEquals(1, message.getInt32ToEnumFieldValueOrThrow(1));
|
||||
assertEquals(2, message.getInt32ToEnumFieldCount());
|
||||
assertEquals(1000, message.getInt32ToEnumFieldValueOrThrow(2));
|
||||
assertEquals(3, message.getInt32ToEnumFieldCount());
|
||||
}
|
||||
|
||||
public void testPutChecksNullKeysAndValues() throws Exception {
|
||||
|
@ -1250,12 +1244,9 @@ public class MapTest extends TestCase {
|
|||
builder.putInt32ToEnumFieldValue(1, TestMap.EnumValue.BAR.getNumber());
|
||||
assertEquals(
|
||||
TestMap.EnumValue.BAR.getNumber(), builder.getInt32ToEnumFieldValueOrThrow(1));
|
||||
try {
|
||||
builder.putInt32ToEnumFieldValue(1, -1);
|
||||
fail();
|
||||
} catch (IllegalArgumentException e) {
|
||||
// expected
|
||||
}
|
||||
builder.putInt32ToEnumFieldValue(1, -1);
|
||||
assertEquals(-1, builder.getInt32ToEnumFieldValueOrThrow(1));
|
||||
assertEquals(TestMap.EnumValue.UNRECOGNIZED, builder.getInt32ToEnumFieldOrThrow(1));
|
||||
|
||||
builder.putStringToInt32Field("a", 1);
|
||||
assertEquals(1, builder.getStringToInt32FieldOrThrow("a"));
|
||||
|
|
|
@ -229,9 +229,7 @@ public class JsonFormatTest extends TestCase {
|
|||
|
||||
TestMap.Builder mapBuilder = TestMap.newBuilder();
|
||||
mapBuilder.putInt32ToEnumMapValue(1, 0);
|
||||
Map<Integer, Integer> mapWithInvalidValues = new HashMap<Integer, Integer>();
|
||||
mapWithInvalidValues.put(2, 12345);
|
||||
mapBuilder.putAllInt32ToEnumMapValue(mapWithInvalidValues);
|
||||
mapBuilder.putInt32ToEnumMapValue(2, 12345);
|
||||
TestMap mapMessage = mapBuilder.build();
|
||||
assertEquals(
|
||||
"{\n"
|
||||
|
|
|
@ -417,9 +417,6 @@ GenerateBuilderMembers(io::Printer* printer) const {
|
|||
" $key_type$ key,\n"
|
||||
" $value_type$ value) {\n"
|
||||
" $key_null_check$\n"
|
||||
" if ($value_enum_type$.forNumber(value) == null) {\n"
|
||||
" throw new java.lang.IllegalArgumentException();\n"
|
||||
" }\n"
|
||||
" internalGetMutable$capitalized_name$().getMutableMap()\n"
|
||||
" .put(key, value);\n"
|
||||
" return this;\n"
|
||||
|
|
|
@ -642,9 +642,6 @@ GenerateBuilderMembers(io::Printer* printer) const {
|
|||
" $key_type$ key,\n"
|
||||
" $value_type$ value) {\n"
|
||||
" $key_null_check$\n"
|
||||
" if ($value_enum_type$.forNumber(value) == null) {\n"
|
||||
" throw new java.lang.IllegalArgumentException();\n"
|
||||
" }\n"
|
||||
" copyOnWrite();\n"
|
||||
" instance.getMutable$capitalized_name$ValueMap().put(key, value);\n"
|
||||
" return this;\n"
|
||||
|
|
Loading…
Add table
Reference in a new issue