This is an automated email from the ASF dual-hosted git repository. reschke pushed a commit to branch OAK-11753 in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
commit db40b637a559f61a89739a572cb9357053600a3a Author: Julian Reschke <[email protected]> AuthorDate: Mon Jun 16 12:25:59 2025 +0100 OAK-11753: Remove usage of Guava base.CaseFormat - tests for replacement function --- .../elastic/index/ElasticIndexHelperTest.java | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/oak-search-elastic/src/test/java/org/apache/jackrabbit/oak/plugins/index/elastic/index/ElasticIndexHelperTest.java b/oak-search-elastic/src/test/java/org/apache/jackrabbit/oak/plugins/index/elastic/index/ElasticIndexHelperTest.java index 02b28fb016..cb75a4b34a 100644 --- a/oak-search-elastic/src/test/java/org/apache/jackrabbit/oak/plugins/index/elastic/index/ElasticIndexHelperTest.java +++ b/oak-search-elastic/src/test/java/org/apache/jackrabbit/oak/plugins/index/elastic/index/ElasticIndexHelperTest.java @@ -25,6 +25,7 @@ import co.elastic.clients.elasticsearch._types.mapping.TypeMapping; import co.elastic.clients.elasticsearch.indices.CreateIndexRequest; import co.elastic.clients.elasticsearch.indices.IndexSettings; import co.elastic.clients.elasticsearch.indices.IndexSettingsAnalysis; +import org.apache.jackrabbit.guava.common.base.CaseFormat; import org.apache.jackrabbit.oak.api.Tree; import org.apache.jackrabbit.oak.plugins.index.elastic.ElasticIndexDefinition; import org.apache.jackrabbit.oak.plugins.index.elastic.util.ElasticIndexDefinitionBuilder; @@ -36,6 +37,7 @@ import org.jetbrains.annotations.NotNull; import org.junit.Test; import java.util.Map; +import java.util.function.Function; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.notNullValue; @@ -392,4 +394,42 @@ public class ElasticIndexHelperTest { assertThat(status._kind(), is(Property.Kind.Keyword)); } + private void testCamelConversion(Function<String, String> f) { + assertEquals("foo_bar", f.apply("FooBar")); + assertEquals("foo_bar", f.apply("fooBar")); + assertEquals("foo _bar", f.apply("foo Bar")); + assertEquals("foo _bar", f.apply("Foo Bar")); + assertEquals("f_o_o__b_a_r", f.apply("FOO_BAR")); + assertEquals("foo__bar", f.apply("Foo_Bar")); + assertEquals("foo_bar ", f.apply("FooBar ")); + assertEquals(" _foo_bar", f.apply(" FooBar")); + assertEquals(" _foo_bar", f.apply(" FooBar")); + } + + private String convertUpperCamelToLowerUnderscore(String s) { + StringBuilder result = new StringBuilder(); + for (char c: s.toCharArray()) { + // start? + if (result.length() == 0) { + result.append(Character.toLowerCase(c)); + } else { + if (Character.isUpperCase(c)) { + result.append('_'); + } + result.append(Character.toLowerCase(c)); + } + } + + return result.toString(); + } + + @Test + public void testCamelConversionGuava() { + testCamelConversion(s -> CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, s)); + } + + @Test + public void testCamelConversionOurs() { + testCamelConversion(this::convertUpperCamelToLowerUnderscore); + } }
