File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package kr.itn.itnhub.code;
import kr.itn.itnhub.AbstractDbTest;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
class CodeMapperTest extends AbstractDbTest {
@Autowired
CodeMapper mapper;
@Test
void 모든_코드를_그룹과_정렬순서대로_읽는다() {
List<CodeRow> rows = mapper.findAllCodes();
assertThat(rows).isNotEmpty();
List<CodeRow> stages = rows.stream().filter(r -> r.groupId().equals("STAGE")).toList();
assertThat(stages).hasSize(13);
assertThat(stages.get(0).code()).isEqualTo("1");
assertThat(stages.get(12).label()).isEqualTo("보고서 제출 완료");
}
@Test
void attrs를_JSON_문자열로_읽는다() {
CodeRow stage13 = mapper.findAllCodes().stream()
.filter(r -> r.groupId().equals("STAGE") && r.code().equals("13"))
.findFirst().orElseThrow();
assertThat(stage13.attrsJson())
.contains("progress")
.contains("done")
.contains("completed");
}
@Test
void 비활성_코드도_함께_읽는다() {
// 활성 필터는 CodeService가 용도에 따라 건다. 매퍼는 전부 내려줘야
// 과거 데이터의 라벨을 그릴 수 있다.
List<CodeRow> rows = mapper.findAllCodes();
assertThat(rows).allSatisfy(r -> assertThat(r.groupId()).isNotBlank());
assertThat(rows).anySatisfy(r -> assertThat(r.active()).isTrue());
}
@Test
void 그룹_목록을_읽는다() {
List<CodeGroup> groups = mapper.findAllGroups();
assertThat(groups).hasSize(12);
assertThat(groups).anySatisfy(g -> {
assertThat(g.groupId()).isEqualTo("STAGE");
assertThat(g.editable()).isFalse();
});
assertThat(groups).anySatisfy(g -> {
assertThat(g.groupId()).isEqualTo("CONTACT_METHOD");
assertThat(g.editable()).isTrue();
});
}
}