@@ -289,3 +289,50 @@ TEST_F(StringUtilsTestSuite, LargeInputPerformance) {
289289}
290290
291291
292+ TEST_F (StringUtilsTestSuite, UrlPaths_SimilarStrings) {
293+ std::string str1 = " /v1/threads/{1}/messages/{2}" ;
294+ std::string str2 = " /v1/threads/xxx/messages/yyy" ;
295+ EXPECT_TRUE ( AreUrlPathsEqual (str1, str2));
296+ }
297+
298+ TEST_F (StringUtilsTestSuite, UrlPaths_DifferentPaths) {
299+ std::string str1 = " /v1/threads/{1}/messages/{2}" ;
300+ std::string str2 = " /v1/threads/xxx/messages/yyy/extra" ;
301+ EXPECT_FALSE (AreUrlPathsEqual (str1, str2));
302+ }
303+
304+ TEST_F (StringUtilsTestSuite, UrlPaths_DifferentPlaceholderCounts) {
305+ std::string str1 = " /v1/threads/{1}/messages/{2}" ;
306+ std::string str2 = " /v1/threads/{1}/messages/{2}/{3}" ;
307+ EXPECT_FALSE (AreUrlPathsEqual (str1, str2));
308+ }
309+
310+ TEST_F (StringUtilsTestSuite, UrlPaths_NoPlaceholders) {
311+ std::string str1 = " /v1/threads/1/messages/2" ;
312+ std::string str2 = " /v1/threads/xxx/messages/yyy" ;
313+ EXPECT_FALSE (AreUrlPathsEqual (str1, str2));
314+ }
315+
316+ TEST_F (StringUtilsTestSuite, UrlPaths_EmptyStrings) {
317+ std::string str1 = " " ;
318+ std::string str2 = " " ;
319+ EXPECT_TRUE (AreUrlPathsEqual (str1, str2));
320+ }
321+
322+ TEST_F (StringUtilsTestSuite, UrlPaths_SinglePlaceholder) {
323+ std::string str1 = " /v1/threads/{1}" ;
324+ std::string str2 = " /v1/threads/xxx" ;
325+ EXPECT_TRUE (AreUrlPathsEqual (str1, str2));
326+ }
327+
328+ TEST_F (StringUtilsTestSuite, UrlPaths_MultiplePlaceholdersSameFormat) {
329+ std::string str1 = " /v1/threads/{1}/messages/{2}/comments/{3}" ;
330+ std::string str2 = " /v1/threads/xxx/messages/yyy/comments/zzz" ;
331+ EXPECT_TRUE (AreUrlPathsEqual (str1, str2));
332+ }
333+
334+ TEST_F (StringUtilsTestSuite, UrlPaths_NonPlaceholderDifferences) {
335+ std::string str1 = " /v1/threads/{1}/messages/{2}" ;
336+ std::string str2 = " /v2/threads/xxx/messages/yyy" ;
337+ EXPECT_FALSE (AreUrlPathsEqual (str1, str2));
338+ }
0 commit comments