[comp-str-enum] Comparing a String to an Enum Value in Java (#13349)
This commit is contained in:
parent
d7e857f427
commit
185093c26a
|
@ -0,0 +1,78 @@
|
|||
package com.baeldung.enums.comparestrenum;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Optional;
|
||||
|
||||
import static com.baeldung.enums.comparestrenum.Weekday.Fri;
|
||||
import static com.baeldung.enums.comparestrenum.Weekday.Sat;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
enum Weekday {
|
||||
Mon("Monday"),
|
||||
Tue("Tuesday"),
|
||||
Wed("Wednesday"),
|
||||
Thu("Thursday"),
|
||||
Fri("Friday"),
|
||||
Sat("Saturday");
|
||||
|
||||
private String fullName;
|
||||
|
||||
Weekday(String fullName) {
|
||||
this.fullName = fullName;
|
||||
}
|
||||
|
||||
public String getFullName() {
|
||||
return fullName;
|
||||
}
|
||||
|
||||
|
||||
static Optional<Weekday> byFullNameIgnoreCase(String givenFullName) {
|
||||
return Arrays.stream(values()).filter(it -> it.fullName.equalsIgnoreCase(givenFullName)).findAny();
|
||||
}
|
||||
|
||||
static Optional<Weekday> byNameIgnoreCase(String givenName) {
|
||||
return Arrays.stream(values()).filter(it -> it.name().equalsIgnoreCase(givenName)).findAny();
|
||||
}
|
||||
}
|
||||
|
||||
public class CompareStringAndEnumUnitTest {
|
||||
private static final String SAT = "sAt";
|
||||
private static final String SATURDAY = "sAtuRdAy";
|
||||
private static final String TYPO_FRI = "ffri";
|
||||
private static final String TYPO_FRIDAY = "ffriday";
|
||||
|
||||
@Test
|
||||
void givenAString_whenCompareEnumWithName_thenGetExpectedResult() {
|
||||
assertTrue(SAT.equalsIgnoreCase(Sat.name()));
|
||||
assertFalse(TYPO_FRI.equalsIgnoreCase(Fri.name()));
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenAString_whenCompareEnumWithProperty_thenGetExpectedResult() {
|
||||
assertTrue(SATURDAY.equalsIgnoreCase(Sat.getFullName()));
|
||||
assertFalse(TYPO_FRI.equalsIgnoreCase(Fri.getFullName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenAString_whenFindEnumByName_thenGetExpectedResult() {
|
||||
Optional<Weekday> optResult = Weekday.byNameIgnoreCase(SAT);
|
||||
assertTrue(optResult.isPresent());
|
||||
assertEquals(Sat, optResult.get());
|
||||
|
||||
Optional<Weekday> optResult2 = Weekday.byNameIgnoreCase(TYPO_FRI);
|
||||
assertFalse(optResult2.isPresent());
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenAString_whenFindEnumByProperty_thenGetExpectedResult() {
|
||||
Optional<Weekday> optResult = Weekday.byFullNameIgnoreCase(SATURDAY);
|
||||
assertTrue(optResult.isPresent());
|
||||
assertEquals(Sat, optResult.get());
|
||||
|
||||
Optional<Weekday> optResult2 = Weekday.byFullNameIgnoreCase(TYPO_FRIDAY);
|
||||
assertFalse(optResult2.isPresent());
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue