Notice
Recent Posts
Recent Comments
Link
반응형
이로
Enum 사용 본문
반응형
참고 포스트
woowabros.github.io/tools/2017/07/10/java-enum-uses.html
코드적용
소스코드(일부)
import java.util.*;
public enum CntntsType {
IMG("이미지", Arrays.asList("png"))
, VOD("동영상", Arrays.asList("mp4"))
, DOC("문서", Arrays.asList("doc"))
, AOD("오디오", Arrays.asList("mp3"))
, WEB("웹", Arrays.asList("html"))
, PKG("패키지", Arrays.asList("zip"));
private String title;
private List<String> extendsList;
CntntsType(String title, List<String> extendsList){
this.title = title;
this.extendsList = extendsList;
}
public static CntntsType findByCntntsType(String extendType) {
return Arrays.stream(CntntsType.values())
.filter(cntntsType -> cntntsType.hasExtends(extendType))
.findAny()
.orElse(null);
}
private boolean hasExtends(String extendType) {
return extendsList.stream().anyMatch(extend -> extend.equals(extendType));
}
public String getTitle() {
return title;
}
}
테스트코드(일부)
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
class CntntsTypeTest {
@Test
@DisplayName("IMG - png 매칭 테스트")
void cntntsExtendsMatchTest() {
Assertions.assertTrue(CntntsType.IMG == CntntsType.findByCntntsType("png"));
}
@Test
@DisplayName("IMG - 다른확장자 매칭 테스트")
void cntntsExtendsNotMatchTest() {
Assertions.assertTrue(CntntsType.IMG != CntntsType.findByCntntsType("mp4"));
}
@Test
@DisplayName("IMG - null 테스트")
void cntntsExtendsNullTest() {
Assertions.assertTrue(CntntsType.IMG != CntntsType.findByCntntsType(null));
}
@Test
@DisplayName("IMG - 빈값 테스트")
void cntntsExtendsBlackTest() {
Assertions.assertTrue(CntntsType.IMG != CntntsType.findByCntntsType(""));
}
}
반응형
'컴퓨터 > 자바' 카테고리의 다른 글
JPA Repository Custom Query (0) | 2020.06.29 |
---|---|
인터페이스 기반 프로그래밍 (0) | 2020.03.20 |
함수와 메서드의 차이 (0) | 2019.10.17 |
자바 이펙티브 관련 링크 모음 (0) | 2019.05.26 |
Comments