@@ -1089,6 +1089,38 @@ TEST_F(ProjMgrRpcTests, RpcGetUsedItemsLocked) {
10891089 EXPECT_EQ (packs[0 ][" upgrade" ], " 0.2.0" );
10901090}
10911091
1092+ TEST_F (ProjMgrRpcTests, PackReferenceLocked) {
1093+ string context = " project_with_dfp_components+CM0" ;
1094+ vector<string> contextList = { context };
1095+ auto requests = CreateLoadRequests (" /TestSolution/PackLocking/pack_reference_locked.csolution.yml" , " " , contextList);
1096+ requests += FormatRequest (3 , " GetUsedItems" , json ({ { " context" , context } }));
1097+ const auto & responses = RunRpcMethods (requests);
1098+ EXPECT_TRUE (responses[2 ][" result" ][" success" ]);
1099+ auto packs = responses[2 ][" result" ][" packs" ];
1100+ EXPECT_EQ (packs.size (), 1 );
1101+ // Locked field should be present as string containing locked packId
1102+ EXPECT_TRUE (packs[0 ].contains (" locked" ));
1103+ EXPECT_EQ (packs[0 ][" locked" ], " ARM::RteTest_DFP@0.1.0" );
1104+ }
1105+
1106+ TEST_F (ProjMgrRpcTests, PackReferenceMissing) {
1107+ string context = " project+Miss" ;
1108+ vector<string> contextList = { context };
1109+ auto requests = CreateLoadRequests (" /TestSolution/PackMissing/missing_pack.csolution.yml" , " " , contextList);
1110+ requests += FormatRequest (3 , " GetUsedItems" , json ({{ " context" , context }}));
1111+ const auto & responses = RunRpcMethods (requests);
1112+ EXPECT_TRUE (responses[2 ][" result" ][" success" ]);
1113+ auto packs = responses[2 ][" result" ][" packs" ];
1114+ // Verify missing field for unresolved packs
1115+ for (const auto & pack : packs) {
1116+ if (!pack.contains (" resolvedPack" )) {
1117+ EXPECT_TRUE (pack.contains (" missing" ));
1118+ EXPECT_TRUE (pack[" missing" ].is_boolean ());
1119+ EXPECT_TRUE (pack[" missing" ].get <bool >());
1120+ }
1121+ }
1122+ }
1123+
10921124TEST_F (ProjMgrRpcTests, RpcGetPacksInfoSimple) {
10931125 string context = " selectable+CM0" ;
10941126 vector<string> contextList = {
0 commit comments