diff --git a/core-java-modules/core-java-exceptions-4/src/main/java/com/baeldung/exception/noenumconst/Priority.java b/core-java-modules/core-java-exceptions-4/src/main/java/com/baeldung/exception/noenumconst/Priority.java new file mode 100644 index 0000000000..ff9591b1e0 --- /dev/null +++ b/core-java-modules/core-java-exceptions-4/src/main/java/com/baeldung/exception/noenumconst/Priority.java @@ -0,0 +1,13 @@ +package com.baeldung.exception.noenumconst; + +public enum Priority { + + HIGH("High"), MEDIUM("Medium"), LOW("Low"); + + private String name; + + Priority(String name) { + this.name = name; + } + +} diff --git a/core-java-modules/core-java-exceptions-4/src/main/java/com/baeldung/exception/noenumconst/PriorityUtils.java b/core-java-modules/core-java-exceptions-4/src/main/java/com/baeldung/exception/noenumconst/PriorityUtils.java new file mode 100644 index 0000000000..8d7004bf39 --- /dev/null +++ b/core-java-modules/core-java-exceptions-4/src/main/java/com/baeldung/exception/noenumconst/PriorityUtils.java @@ -0,0 +1,21 @@ +package com.baeldung.exception.noenumconst; + +public class PriorityUtils { + + public static Priority getByName(String name) { + return Priority.valueOf(name); + } + + public static Priority getByUpperCaseName(String name) { + if (name == null || name.isEmpty()) { + return null; + } + + return Priority.valueOf(name.toUpperCase()); + } + + public static void main(String[] args) { + System.out.println(getByName("Low")); + } + +} diff --git a/core-java-modules/core-java-exceptions-4/src/test/java/com/baeldung/exception/noenumconst/PriorityUtilsUnitTest.java b/core-java-modules/core-java-exceptions-4/src/test/java/com/baeldung/exception/noenumconst/PriorityUtilsUnitTest.java new file mode 100644 index 0000000000..1ff9c49015 --- /dev/null +++ b/core-java-modules/core-java-exceptions-4/src/test/java/com/baeldung/exception/noenumconst/PriorityUtilsUnitTest.java @@ -0,0 +1,36 @@ +package com.baeldung.exception.noenumconst; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import org.junit.jupiter.api.Test; + +class PriorityUtilsUnitTest { + + @Test + void givenCustomName_whenUsingGetByName_thenThrowIllegalArgumentException() { + assertThrows(IllegalArgumentException.class, () -> PriorityUtils.getByName("Low")); + } + + @Test + void givenCustomName_whenUsingGetByUpperCaseName_thenReturnEnumConstant() { + assertEquals(Priority.HIGH, PriorityUtils.getByUpperCaseName("High")); + } + + @Test + void givenInvalidCustomName_whenUsingGetByUpperCaseName_thenThrowIllegalArgumentException() { + assertThrows(IllegalArgumentException.class, () -> PriorityUtils.getByUpperCaseName("invalid")); + } + + @Test + void givenEmptyName_whenUsingGetByUpperCaseName_thenReturnNull() { + assertNull(PriorityUtils.getByUpperCaseName("")); + } + + @Test + void givenNull_whenUsingGetByUpperCaseName_thenReturnNull() { + assertNull(PriorityUtils.getByUpperCaseName(null)); + } + +}