@@ -149,3 +149,47 @@ TEST(JSONUtilsTest, CreateModule) {
149149 ASSERT_NE (object, nullptr );
150150 EXPECT_EQ (object->size (), 0UL );
151151}
152+
153+ TEST (JSONUtilsTest, GetStrings_EmptyArray) {
154+ llvm::json::Object obj;
155+ obj.try_emplace (" key" , llvm::json::Array ());
156+ auto result = GetStrings (&obj, " key" );
157+ EXPECT_TRUE (result.empty ());
158+ }
159+
160+ TEST (JSONUtilsTest, GetStrings_NullKey) {
161+ llvm::json::Object obj;
162+ auto result = GetStrings (&obj, " nonexistent_key" );
163+ EXPECT_TRUE (result.empty ());
164+ }
165+
166+ TEST (JSONUtilsTest, GetStrings_StringValues) {
167+ llvm::json::Object obj;
168+ llvm::json::Array arr{" value1" , " value2" , " value3" };
169+ obj.try_emplace (" key" , std::move (arr));
170+ auto result = GetStrings (&obj, " key" );
171+ ASSERT_EQ (result.size (), 3UL );
172+ EXPECT_EQ (result[0 ], " value1" );
173+ EXPECT_EQ (result[1 ], " value2" );
174+ EXPECT_EQ (result[2 ], " value3" );
175+ }
176+
177+ TEST (JSONUtilsTest, GetStrings_MixedValues) {
178+ llvm::json::Object obj;
179+ llvm::json::Array arr{" string" , 42 , true , nullptr };
180+ obj.try_emplace (" key" , std::move (arr));
181+ auto result = GetStrings (&obj, " key" );
182+ ASSERT_EQ (result.size (), 3UL );
183+ EXPECT_EQ (result[0 ], " string" );
184+ EXPECT_EQ (result[1 ], " 42" );
185+ EXPECT_EQ (result[2 ], " true" );
186+ }
187+
188+ TEST (JSONUtilsTest, GetStrings_NestedArray) {
189+ llvm::json::Object obj;
190+ llvm::json::Array nested_array{" string" , llvm::json::Array{" nested" }};
191+ obj.try_emplace (" key" , std::move (nested_array));
192+ auto result = GetStrings (&obj, " key" );
193+ ASSERT_EQ (result.size (), 1UL );
194+ EXPECT_EQ (result[0 ], " string" );
195+ }
0 commit comments