in cdk/extra/protobuf/protobuf-3.19.6/src/google/protobuf/reflection_tester.cc [410:613]
void MapReflectionTester::SetMapFieldsViaMapReflection(Message* message) {
const Reflection* reflection = message->GetReflection();
Message* sub_foreign_message = nullptr;
MapValueRef map_val;
MapValueConstRef map_val_const;
// Add first element.
MapKey map_key;
map_key.SetInt32Value(0);
EXPECT_FALSE(reflection->LookupMapValue(*message, F("map_int32_int32"),
map_key, &map_val_const));
EXPECT_TRUE(reflection->InsertOrLookupMapValue(message, F("map_int32_int32"),
map_key, &map_val));
map_val.SetInt32Value(0);
map_key.SetInt64Value(0);
EXPECT_FALSE(reflection->LookupMapValue(*message, F("map_int64_int64"),
map_key, &map_val_const));
EXPECT_TRUE(reflection->InsertOrLookupMapValue(message, F("map_int64_int64"),
map_key, &map_val));
map_val.SetInt64Value(0);
map_key.SetUInt32Value(0);
EXPECT_FALSE(reflection->LookupMapValue(*message, F("map_uint32_uint32"),
map_key, &map_val_const));
EXPECT_TRUE(reflection->InsertOrLookupMapValue(
message, F("map_uint32_uint32"), map_key, &map_val));
map_val.SetUInt32Value(0);
map_key.SetUInt64Value(0);
EXPECT_TRUE(reflection->InsertOrLookupMapValue(
message, F("map_uint64_uint64"), map_key, &map_val));
map_val.SetUInt64Value(0);
map_key.SetInt32Value(0);
EXPECT_TRUE(reflection->InsertOrLookupMapValue(
message, F("map_sint32_sint32"), map_key, &map_val));
map_val.SetInt32Value(0);
map_key.SetInt64Value(0);
EXPECT_TRUE(reflection->InsertOrLookupMapValue(
message, F("map_sint64_sint64"), map_key, &map_val));
map_val.SetInt64Value(0);
map_key.SetUInt32Value(0);
EXPECT_TRUE(reflection->InsertOrLookupMapValue(
message, F("map_fixed32_fixed32"), map_key, &map_val));
map_val.SetUInt32Value(0);
map_key.SetUInt64Value(0);
EXPECT_TRUE(reflection->InsertOrLookupMapValue(
message, F("map_fixed64_fixed64"), map_key, &map_val));
map_val.SetUInt64Value(0);
map_key.SetInt32Value(0);
EXPECT_TRUE(reflection->InsertOrLookupMapValue(
message, F("map_sfixed32_sfixed32"), map_key, &map_val));
map_val.SetInt32Value(0);
map_key.SetInt64Value(0);
EXPECT_TRUE(reflection->InsertOrLookupMapValue(
message, F("map_sfixed64_sfixed64"), map_key, &map_val));
map_val.SetInt64Value(0);
map_key.SetInt32Value(0);
EXPECT_TRUE(reflection->InsertOrLookupMapValue(message, F("map_int32_float"),
map_key, &map_val));
map_val.SetFloatValue(0.0);
map_key.SetInt32Value(0);
EXPECT_TRUE(reflection->InsertOrLookupMapValue(message, F("map_int32_double"),
map_key, &map_val));
map_val.SetDoubleValue(0.0);
map_key.SetBoolValue(false);
EXPECT_FALSE(reflection->LookupMapValue(*message, F("map_bool_bool"), map_key,
&map_val_const));
EXPECT_TRUE(reflection->InsertOrLookupMapValue(message, F("map_bool_bool"),
map_key, &map_val));
map_val.SetBoolValue(false);
map_key.SetStringValue("0");
EXPECT_FALSE(reflection->LookupMapValue(*message, F("map_string_string"),
map_key, &map_val_const));
EXPECT_TRUE(reflection->InsertOrLookupMapValue(
message, F("map_string_string"), map_key, &map_val));
map_val.SetStringValue("0");
map_key.SetInt32Value(0);
EXPECT_FALSE(reflection->LookupMapValue(*message, F("map_int32_bytes"),
map_key, &map_val_const));
EXPECT_TRUE(reflection->InsertOrLookupMapValue(message, F("map_int32_bytes"),
map_key, &map_val));
map_val.SetStringValue("0");
map_key.SetInt32Value(0);
EXPECT_FALSE(reflection->LookupMapValue(*message, F("map_int32_enum"),
map_key, &map_val_const));
EXPECT_TRUE(reflection->InsertOrLookupMapValue(message, F("map_int32_enum"),
map_key, &map_val));
map_val.SetEnumValue(map_enum_bar_->number());
map_key.SetInt32Value(0);
EXPECT_FALSE(reflection->LookupMapValue(
*message, F("map_int32_foreign_message"), map_key, &map_val_const));
EXPECT_TRUE(reflection->InsertOrLookupMapValue(
message, F("map_int32_foreign_message"), map_key, &map_val));
sub_foreign_message = map_val.MutableMessageValue();
sub_foreign_message->GetReflection()->SetInt32(sub_foreign_message,
foreign_c_, 0);
// Add second element
map_key.SetInt32Value(1);
EXPECT_TRUE(reflection->InsertOrLookupMapValue(message, F("map_int32_int32"),
map_key, &map_val));
map_val.SetInt32Value(1);
EXPECT_FALSE(reflection->InsertOrLookupMapValue(message, F("map_int32_int32"),
map_key, &map_val));
map_key.SetInt64Value(1);
EXPECT_TRUE(reflection->InsertOrLookupMapValue(message, F("map_int64_int64"),
map_key, &map_val));
map_val.SetInt64Value(1);
EXPECT_FALSE(reflection->InsertOrLookupMapValue(message, F("map_int64_int64"),
map_key, &map_val));
map_key.SetUInt32Value(1);
reflection->InsertOrLookupMapValue(message, F("map_uint32_uint32"), map_key,
&map_val);
map_val.SetUInt32Value(1);
map_key.SetUInt64Value(1);
reflection->InsertOrLookupMapValue(message, F("map_uint64_uint64"), map_key,
&map_val);
map_val.SetUInt64Value(1);
map_key.SetInt32Value(1);
reflection->InsertOrLookupMapValue(message, F("map_sint32_sint32"), map_key,
&map_val);
map_val.SetInt32Value(1);
map_key.SetInt64Value(1);
reflection->InsertOrLookupMapValue(message, F("map_sint64_sint64"), map_key,
&map_val);
map_val.SetInt64Value(1);
map_key.SetUInt32Value(1);
reflection->InsertOrLookupMapValue(message, F("map_fixed32_fixed32"), map_key,
&map_val);
map_val.SetUInt32Value(1);
map_key.SetUInt64Value(1);
reflection->InsertOrLookupMapValue(message, F("map_fixed64_fixed64"), map_key,
&map_val);
map_val.SetUInt64Value(1);
map_key.SetInt32Value(1);
reflection->InsertOrLookupMapValue(message, F("map_sfixed32_sfixed32"),
map_key, &map_val);
map_val.SetInt32Value(1);
map_key.SetInt64Value(1);
reflection->InsertOrLookupMapValue(message, F("map_sfixed64_sfixed64"),
map_key, &map_val);
map_val.SetInt64Value(1);
map_key.SetInt32Value(1);
reflection->InsertOrLookupMapValue(message, F("map_int32_float"), map_key,
&map_val);
map_val.SetFloatValue(1.0);
map_key.SetInt32Value(1);
reflection->InsertOrLookupMapValue(message, F("map_int32_double"), map_key,
&map_val);
map_val.SetDoubleValue(1.0);
map_key.SetBoolValue(true);
reflection->InsertOrLookupMapValue(message, F("map_bool_bool"), map_key,
&map_val);
map_val.SetBoolValue(true);
map_key.SetStringValue("1");
reflection->InsertOrLookupMapValue(message, F("map_string_string"), map_key,
&map_val);
map_val.SetStringValue("1");
map_key.SetInt32Value(1);
reflection->InsertOrLookupMapValue(message, F("map_int32_bytes"), map_key,
&map_val);
map_val.SetStringValue("1");
map_key.SetInt32Value(1);
reflection->InsertOrLookupMapValue(message, F("map_int32_enum"), map_key,
&map_val);
map_val.SetEnumValue(map_enum_baz_->number());
map_key.SetInt32Value(1);
EXPECT_TRUE(reflection->InsertOrLookupMapValue(
message, F("map_int32_foreign_message"), map_key, &map_val));
sub_foreign_message = map_val.MutableMessageValue();
sub_foreign_message->GetReflection()->SetInt32(sub_foreign_message,
foreign_c_, 1);
}