From 3c4abb9f1f90b1d9dae9a0611384035f1e188f18 Mon Sep 17 00:00:00 2001 From: Thorsten Marx Date: Tue, 3 Mar 2026 14:58:42 +0100 Subject: [PATCH] #609 change orderby in queries to be case insensitive --- .../filesystem/metadata/query/Queries.java | 2 +- .../filesystem/PresistentFileSystemTest.java | 22 +++++++++++++++++++ .../src/test/resources/content/test/test1.md | 3 ++- .../src/test/resources/content/test/test2.md | 3 ++- 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/cms-filesystem/src/main/java/com/condation/cms/filesystem/metadata/query/Queries.java b/cms-filesystem/src/main/java/com/condation/cms/filesystem/metadata/query/Queries.java index 8d268ae81..6e6ee3f5c 100644 --- a/cms-filesystem/src/main/java/com/condation/cms/filesystem/metadata/query/Queries.java +++ b/cms-filesystem/src/main/java/com/condation/cms/filesystem/metadata/query/Queries.java @@ -155,7 +155,7 @@ public static int compare(Object o1, Object o2) { } else if (o1 instanceof Long) { return Long.compare((long) o1, (long) o2); } else if (o1 instanceof String string) { - return string.compareTo((String) o2); + return string.compareToIgnoreCase((String) o2); } else if (o1 instanceof Date date) { return date.compareTo((Date) o2); } diff --git a/cms-filesystem/src/test/java/com/condation/cms/filesystem/PresistentFileSystemTest.java b/cms-filesystem/src/test/java/com/condation/cms/filesystem/PresistentFileSystemTest.java index ffccf8996..42a6b8ae8 100644 --- a/cms-filesystem/src/test/java/com/condation/cms/filesystem/PresistentFileSystemTest.java +++ b/cms-filesystem/src/test/java/com/condation/cms/filesystem/PresistentFileSystemTest.java @@ -209,4 +209,26 @@ public void test_sorting_page() throws IOException { Assertions.assertThat(page.getItems().get(1).data().get("name")).isEqualTo("test1"); Assertions.assertThat(page.getItems().get(2).data().get("name")).isEqualTo("start"); } + + @Test + public void test_sorting_case_insensitive() throws IOException { + + var page = fileSystem.query((node, i) -> node) + .orderby("sort_field").asc() + .whereExists("sort_field") + .page(1, 10); + + Assertions.assertThat(page.getItems()).hasSize(2); + Assertions.assertThat(page.getItems().get(0).data().get("name")).isEqualTo("test2"); + Assertions.assertThat(page.getItems().get(1).data().get("name")).isEqualTo("test1"); + + page = fileSystem.query((node, i) -> node) + .orderby("sort_field").desc() + .whereExists("sort_field") + .page(1, 10); + + Assertions.assertThat(page.getItems()).hasSize(2); + Assertions.assertThat(page.getItems().get(0).data().get("name")).isEqualTo("test1"); + Assertions.assertThat(page.getItems().get(1).data().get("name")).isEqualTo("test2"); + } } diff --git a/cms-filesystem/src/test/resources/content/test/test1.md b/cms-filesystem/src/test/resources/content/test/test1.md index 4ad29432c..c4901b212 100644 --- a/cms-filesystem/src/test/resources/content/test/test1.md +++ b/cms-filesystem/src/test/resources/content/test/test1.md @@ -6,4 +6,5 @@ number1: 1 number2: 5 publish_date: 2024-10-01 keywords: ["eins", "zwei"] -published: true \ No newline at end of file +published: true +sort_field: Superman \ No newline at end of file diff --git a/cms-filesystem/src/test/resources/content/test/test2.md b/cms-filesystem/src/test/resources/content/test/test2.md index 07c8fc636..28fc81b63 100644 --- a/cms-filesystem/src/test/resources/content/test/test2.md +++ b/cms-filesystem/src/test/resources/content/test/test2.md @@ -3,4 +3,5 @@ featured: false taxonomy: tags: [zwei, drei] publish_date: 2024-11-04 -published: true \ No newline at end of file +published: true +sort_field: antman \ No newline at end of file