From 28b608c8142811c280ab17be8cfbabdf216f8445 Mon Sep 17 00:00:00 2001 From: Tim Chamberlain Date: Tue, 15 Apr 2025 20:03:17 -0500 Subject: [PATCH 1/2] added utils method to do equals ignoring case safely --- .../qqq/backend/core/utils/StringUtils.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/utils/StringUtils.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/utils/StringUtils.java index ae01b7af..313cb069 100755 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/utils/StringUtils.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/utils/StringUtils.java @@ -489,6 +489,24 @@ public class StringUtils + /*************************************************************************** + ** + ***************************************************************************/ + public static boolean safeEqualsIgnoreCase(String a, String b) + { + if(a == null && b == null) + { + return true; + } + if(a == null || b == null) + { + return false; + } + return (a.equalsIgnoreCase(b)); + } + + + /*************************************************************************** ** ***************************************************************************/ From 2d89dafdc159396e09df51f2be1836c3a92d7238 Mon Sep 17 00:00:00 2001 From: Tim Chamberlain Date: Tue, 15 Apr 2025 20:09:00 -0500 Subject: [PATCH 2/2] added test cases --- .../backend/core/utils/StringUtilsTest.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/utils/StringUtilsTest.java b/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/utils/StringUtilsTest.java index ae8ce0d3..9faaabb1 100644 --- a/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/utils/StringUtilsTest.java +++ b/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/utils/StringUtilsTest.java @@ -350,4 +350,22 @@ class StringUtilsTest extends BaseTest assertEquals("test ((2)) (101)", StringUtils.appendIncrementingSuffix("test ((2)) (100)")); } + + + /******************************************************************************* + ** + *******************************************************************************/ + @Test + void testSafeEqualsIgnoreCase() + { + assertTrue(StringUtils.safeEqualsIgnoreCase(null, null)); + assertFalse(StringUtils.safeEqualsIgnoreCase("a", null)); + assertFalse(StringUtils.safeEqualsIgnoreCase(null, "a")); + assertTrue(StringUtils.safeEqualsIgnoreCase("a", "a")); + assertTrue(StringUtils.safeEqualsIgnoreCase("A", "a")); + assertFalse(StringUtils.safeEqualsIgnoreCase("a", "b")); + assertTrue(StringUtils.safeEqualsIgnoreCase("timothy d. chamberlain", "TIMOThy d. chaMberlain")); + assertTrue(StringUtils.safeEqualsIgnoreCase("timothy d. chamberlain", "timothy d. chamberlain")); + } + }