diff --git a/core-java-modules/core-java-reflection-2/src/main/java/com/baeldung/reflection/access/staticmethods/GreetingAndBye.java b/core-java-modules/core-java-reflection-2/src/main/java/com/baeldung/reflection/access/staticmethods/GreetingAndBye.java new file mode 100644 index 0000000000..471ed1ee5b --- /dev/null +++ b/core-java-modules/core-java-reflection-2/src/main/java/com/baeldung/reflection/access/staticmethods/GreetingAndBye.java @@ -0,0 +1,12 @@ +package com.baeldung.reflection.access.staticmethods; + +public class GreetingAndBye { + + public static String greeting(String name) { + return String.format("Hey %s, nice to meet you!", name); + } + + private static String goodBye(String name) { + return String.format("Bye %s, see you next time.", name); + } +} diff --git a/core-java-modules/core-java-reflection-2/src/test/java/com/baeldung/reflection/check/abstractclass/GreetingAndByeClassUnitTest.java b/core-java-modules/core-java-reflection-2/src/test/java/com/baeldung/reflection/check/abstractclass/GreetingAndByeClassUnitTest.java new file mode 100644 index 0000000000..da82d2370c --- /dev/null +++ b/core-java-modules/core-java-reflection-2/src/test/java/com/baeldung/reflection/check/abstractclass/GreetingAndByeClassUnitTest.java @@ -0,0 +1,28 @@ +package com.baeldung.reflection.check.abstractclass; + +import com.baeldung.reflection.access.staticmethods.GreetingAndBye; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +class GreetingAndByeUnitTest { + + @Test + void givenPublicStaticMethod_whenCallWithReflection_thenReturnExpectedResult() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { + Class clazz = GreetingAndBye.class; + Method method = clazz.getMethod("greeting", String.class); + Object result = method.invoke(null, "Eric"); + Assertions.assertEquals("Hey Eric, nice to meet you!", result); + } + + @Test + void givenPrivateStaticMethod_whenCallWithReflection_thenReturnExpectedResult() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { + Class clazz = GreetingAndBye.class; + Method method = clazz.getDeclaredMethod("goodBye", String.class); + method.setAccessible(true); + Object result = method.invoke(null, "Eric"); + Assertions.assertEquals("Bye Eric, see you next time.", result); + } +}