Additional unit tests verifying ignoringUnknownFields behavior on non-string primitives.

PiperOrigin-RevId: 949064971
This commit is contained in:
Tony Liao 2026-07-16 11:05:29 -07:00 committed by Copybara-Service
parent 42b1e8ed8e
commit 6155df9cca

View file

@ -1912,6 +1912,25 @@ public class JsonFormatTest {
assertThat(builder.getOptionalNestedEnumValue()).isEqualTo(0);
}
@Test
public void testParserIgnoringUnknownEnumsUnknownNumber() throws Exception {
// Unknown integer enum value for an open enum creates an unknown EnumValueDescriptor
// rather than being ignored as an unknown field.
TestAllTypes.Builder builder = TestAllTypes.newBuilder();
String json = "{\n \"optionalNestedEnum\": 99999\n}";
JsonFormat.parser().ignoringUnknownFields().merge(json, builder);
assertThat(builder.getOptionalNestedEnumValue()).isEqualTo(99999);
}
@Test
public void testParserIgnoringUnknownEnumsBoolean() throws Exception {
// Boolean enum value when ignoring unknown fields is ignored (value remains default 0).
TestAllTypes.Builder builder = TestAllTypes.newBuilder();
String json = "{\n \"optionalNestedEnum\": true\n}";
JsonFormat.parser().ignoringUnknownFields().merge(json, builder);
assertThat(builder.getOptionalNestedEnumValue()).isEqualTo(0);
}
@Test
public void testParserSupportAliasEnums() throws Exception {
TestAllTypes.Builder builder = TestAllTypes.newBuilder();