diff --git a/core-java-modules/core-java-function/pom.xml b/core-java-modules/core-java-function/pom.xml
index a3add5a686..c05f9585b2 100644
--- a/core-java-modules/core-java-function/pom.xml
+++ b/core-java-modules/core-java-function/pom.xml
@@ -14,6 +14,26 @@
0.0.1-SNAPSHOT
+
+
+ org.apache.commons
+ commons-lang3
+ ${commons-lang3.version}
+
+
+ org.assertj
+ assertj-core
+ ${assertj.version}
+ test
+
+
+ org.mockito
+ mockito-inline
+ ${mockito-inline.version}
+ test
+
+
+
core-java-function
@@ -24,4 +44,10 @@
+
+ 3.8.0
+ 3.22.0
+ 3.12.0
+
+
\ No newline at end of file
diff --git a/core-java-modules/core-java-function/src/main/java/com/baeldung/staticmethods/CustomStringUtils.java b/core-java-modules/core-java-function/src/main/java/com/baeldung/staticmethods/CustomStringUtils.java
new file mode 100644
index 0000000000..5561123e54
--- /dev/null
+++ b/core-java-modules/core-java-function/src/main/java/com/baeldung/staticmethods/CustomStringUtils.java
@@ -0,0 +1,9 @@
+package com.baeldung.staticmethods;
+
+public final class CustomStringUtils {
+
+ private CustomStringUtils() {}
+
+ public static boolean isEmpty(CharSequence cs) { return cs == null || cs.length() == 0; }
+
+}
diff --git a/core-java-modules/core-java-function/src/main/java/com/baeldung/staticmethods/StaticCounter.java b/core-java-modules/core-java-function/src/main/java/com/baeldung/staticmethods/StaticCounter.java
new file mode 100644
index 0000000000..9abf97e8df
--- /dev/null
+++ b/core-java-modules/core-java-function/src/main/java/com/baeldung/staticmethods/StaticCounter.java
@@ -0,0 +1,15 @@
+package com.baeldung.staticmethods;
+
+public class StaticCounter {
+
+ private static int counter = 0;
+
+ public static int incrementCounter() {
+ return ++counter;
+ }
+
+ public static int getCounterValue() {
+ return counter;
+ }
+
+}
diff --git a/core-java-modules/core-java-function/src/test/java/com/baeldung/staticmethods/CollectionUtilsUnitTest.java b/core-java-modules/core-java-function/src/test/java/com/baeldung/staticmethods/CollectionUtilsUnitTest.java
new file mode 100644
index 0000000000..74aac8deb7
--- /dev/null
+++ b/core-java-modules/core-java-function/src/test/java/com/baeldung/staticmethods/CollectionUtilsUnitTest.java
@@ -0,0 +1,20 @@
+package com.baeldung.staticmethods;
+
+import org.junit.jupiter.api.Test;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+class CollectionUtilsUnitTest {
+
+ @Test
+ void givenListOfNumbers_whenReverseStaticMethodIsCalled_thenNumbersInReversedOrderAreReturned() {
+ List list = Arrays.asList("1", "2", "3");
+ Collections.reverse(list);
+ assertThat(list).containsExactly("3", "2", "1");
+ }
+
+}
diff --git a/core-java-modules/core-java-function/src/test/java/com/baeldung/staticmethods/CustomStringUtilsUnitTest.java b/core-java-modules/core-java-function/src/test/java/com/baeldung/staticmethods/CustomStringUtilsUnitTest.java
new file mode 100644
index 0000000000..d01b97d938
--- /dev/null
+++ b/core-java-modules/core-java-function/src/test/java/com/baeldung/staticmethods/CustomStringUtilsUnitTest.java
@@ -0,0 +1,21 @@
+package com.baeldung.staticmethods;
+
+import org.junit.jupiter.api.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+class CustomStringUtilsUnitTest {
+
+ @Test
+ void givenNonEmptyString_whenIsEmptyMethodIsCalled_thenFalseIsReturned() {
+ boolean empty = CustomStringUtils.isEmpty("baeldung");
+ assertThat(empty).isFalse();
+ }
+
+ @Test
+ void givenEmptyString_whenIsEmptyMethodIsCalled_thenTrueIsReturned() {
+ boolean empty = CustomStringUtils.isEmpty("");
+ assertThat(empty).isTrue();
+ }
+
+}
diff --git a/core-java-modules/core-java-function/src/test/java/com/baeldung/staticmethods/StaticCounterUnitTest.java b/core-java-modules/core-java-function/src/test/java/com/baeldung/staticmethods/StaticCounterUnitTest.java
new file mode 100644
index 0000000000..f8605883ba
--- /dev/null
+++ b/core-java-modules/core-java-function/src/test/java/com/baeldung/staticmethods/StaticCounterUnitTest.java
@@ -0,0 +1,16 @@
+package com.baeldung.staticmethods;
+
+import org.junit.jupiter.api.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+class StaticCounterUnitTest {
+
+ @Test
+ void givenStaticCounter_whenIncrementCounterIsCalled_thenValueIsIncresedByOne() {
+ int oldValue = StaticCounter.getCounterValue();
+ int newValue = StaticCounter.incrementCounter();
+ assertThat(newValue).isEqualTo(oldValue + 1);
+ }
+
+}
diff --git a/core-java-modules/core-java-function/src/test/java/com/baeldung/staticmethods/StringUtilsUnitTest.java b/core-java-modules/core-java-function/src/test/java/com/baeldung/staticmethods/StringUtilsUnitTest.java
new file mode 100644
index 0000000000..d7a379a246
--- /dev/null
+++ b/core-java-modules/core-java-function/src/test/java/com/baeldung/staticmethods/StringUtilsUnitTest.java
@@ -0,0 +1,16 @@
+package com.baeldung.staticmethods;
+
+import org.apache.commons.lang3.StringUtils;
+import org.junit.jupiter.api.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+class StringUtilsUnitTest {
+
+ @Test
+ void givenSimpleString_whenCapitalizeStaticMethodIsCalled_thenCapitalizedStringIsReturned() {
+ String str = StringUtils.capitalize("baeldung");
+ assertThat(str).isEqualTo("Baeldung");
+ }
+
+}