@@ -149,3 +149,47 @@ TEST(JSONUtilsTest, CreateModule) {
149
149
ASSERT_NE (object, nullptr );
150
150
EXPECT_EQ (object->size (), 0UL );
151
151
}
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