@@ -1236,7 +1236,31 @@ INSTANTIATE_TEST_SUITE_P(
12361236 CommitTableRequestDeserializeParam{
12371237 .test_name = " MissingIdentifier" ,
12381238 .json_str = R"( {"requirements":[],"updates":[]})" ,
1239- .expected_model = {}}),
1239+ .expected_model = {}},
1240+ // Requirements field is missing (should deserialize to empty requirements)
1241+ CommitTableRequestDeserializeParam{
1242+ .test_name = " MissingRequirements" ,
1243+ .json_str =
1244+ R"( {"identifier":{"namespace":["ns1"],"name":"table1"},"updates":[]})" ,
1245+ .expected_model = {.identifier = TableIdentifier{Namespace{{" ns1" }},
1246+ " table1" }}},
1247+ // Updates field is missing (should deserialize to empty updates)
1248+ CommitTableRequestDeserializeParam{
1249+ .test_name = " MissingUpdates" ,
1250+ .json_str =
1251+ R"( {"identifier":{"namespace":["ns1"],"name":"table1"},"requirements":[]})" ,
1252+ .expected_model = {.identifier = TableIdentifier{Namespace{{" ns1" }},
1253+ " table1" }}},
1254+ // Null requirements and updates are treated as absent
1255+ CommitTableRequestDeserializeParam{
1256+ .test_name = " NullRequirementsAndUpdates" ,
1257+ .json_str =
1258+ R"( {"identifier":{"namespace":["ns1"],"name":"table1"},"requirements":null,"updates":null})" ,
1259+ .expected_model = {.identifier = TableIdentifier{Namespace{{" ns1" }},
1260+ " table1" }}},
1261+ // Empty JSON object
1262+ CommitTableRequestDeserializeParam{
1263+ .test_name = " EmptyJson" , .json_str = R"( {})" , .expected_model = {}}),
12401264 [](const ::testing::TestParamInfo<CommitTableRequestDeserializeParam>& info) {
12411265 return info.param .test_name ;
12421266 });
@@ -1304,24 +1328,7 @@ INSTANTIATE_TEST_SUITE_P(
13041328 .test_name = " InvalidUpdatesNotArray" ,
13051329 .invalid_json_str =
13061330 R"( {"identifier":{"namespace":["ns1"],"name":"table1"},"requirements":[],"updates":{"action":"assign-uuid","uuid":"2cc52516-5e73-41f2-b139-545d41a4e151"}})" ,
1307- .expected_error_message = " Expected 'updates' to be an array" },
1308- // Missing required requirements field
1309- CommitTableRequestInvalidParam{
1310- .test_name = " MissingRequirements" ,
1311- .invalid_json_str =
1312- R"( {"identifier":{"namespace":["ns1"],"name":"table1"},"updates":[]})" ,
1313- .expected_error_message = " Missing 'requirements'" },
1314- // Missing required updates field
1315- CommitTableRequestInvalidParam{
1316- .test_name = " MissingUpdates" ,
1317- .invalid_json_str =
1318- R"( {"identifier":{"namespace":["ns1"],"name":"table1"},"requirements":[]})" ,
1319- .expected_error_message = " Missing 'updates'" },
1320- // Empty JSON object
1321- CommitTableRequestInvalidParam{
1322- .test_name = " EmptyJson" ,
1323- .invalid_json_str = R"( {})" ,
1324- .expected_error_message = " Missing 'requirements'" }),
1331+ .expected_error_message = " Expected 'updates' to be an array" }),
13251332 [](const ::testing::TestParamInfo<CommitTableRequestInvalidParam>& info) {
13261333 return info.param .test_name ;
13271334 });
0 commit comments