[java] Enum case

간단히 만들어 본 enum test case. 근데 이게 유용할지는 모르겠네요.

@RunWith(SpringRunner.class)
public class EnumTest {
public enum ErrorCode {
SUCCESS("0", "성공"), AUTH("1", "미인증 에러"), TOKEN("2", "토큰 없음");

private static Map<String, ErrorCode> map = new HashMap<>();
static{
Arrays.stream(ErrorCode.values()).forEach( p -> map.put(p.getCode(), p)); }

@Getter
private final String code;

@Getter
private final String message;

ErrorCode(String code, String message) {
this.code = code;
this.message = message;
}

public static ErrorCode get(String code){
return ErrorCode.map.get(code);
}

public Boolean is(String code){
return this == ErrorCode.map.get(code);
}

public Boolean is(ErrorCode errorCode){
return this == errorCode;
}
}

@Test
public void enum_is_test() throws Exception {
assertThat(ErrorCode.SUCCESS.is("0")).isTrue();
assertThat(ErrorCode.SUCCESS.is("1")).isFalse();
assertThat(ErrorCode.AUTH.is("1")).isTrue();

ErrorCode e = ErrorCode.
TOKEN;
assertThat(ErrorCode.AUTH.is(e)).isFalse();
assertThat(ErrorCode.TOKEN.is(e)).isTrue();

assertThat(ErrorCode.get("0")).isEqualTo(ErrorCode.SUCCESS);
}
}

2017년 5월 16일 업데이트 — 이렇게 사용할 수도 있군요. UI에서 select box에서 선택 가능한 값들을 넘겨 줄 때 유용하겠네요.

public void enum_constants() throws Exception {
Arrays.stream(ErrorCode.class.getEnumConstants()).forEach(System.out::println);
}
>> 결과 값.
SUCCESS
AUTH
TOKEN
Show your support

Clapping shows how much you appreciated Logan.81k’s story.