package kr.itn.itnhub.org; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; class OrganizationStatusTest { private Organization withContact() { Organization org = new Organization(); org.setOrgNo("001"); org.setOrgName("국제방송교류재단"); org.setChannelSlug("001"); org.setDeptName("데이터정보화팀"); org.setManagerName("송민지"); org.setManagerPhone("02-3475-5434"); org.setManagerEmail("ming@arirang.com"); return org; } @Test void 담당자정보가_없으면_정보대기다() { Organization org = new Organization(); org.setOrgNo("008"); org.setOrgName("경찰청_치안정책연구소"); assertThat(org.getStatus()).isEqualTo(OrgStatus.INFO_PENDING); } @Test void 담당자정보가_다_차면_생성가능이다() { assertThat(withContact().getStatus()).isEqualTo(OrgStatus.READY); } @Test void 직급은_없어도_생성가능이다() { Organization org = withContact(); org.setManagerTitle(null); assertThat(org.getStatus()).isEqualTo(OrgStatus.READY); } @Test void 채널이_한쪽만_있으면_부분생성이다() { Organization org = withContact(); org.setChannelIdMj("chan-mj"); assertThat(org.getStatus()).isEqualTo(OrgStatus.PARTIAL); } @Test void 채널이_둘_다_있으면_운영중이다() { Organization org = withContact(); org.setChannelIdMj("chan-mj"); org.setChannelIdLaw("chan-law"); assertThat(org.getStatus()).isEqualTo(OrgStatus.ACTIVE); } @Test void 담당자정보가_비어도_채널이_있으면_운영중이다() { Organization org = new Organization(); org.setOrgNo("008"); org.setOrgName("경찰청_치안정책연구소"); org.setChannelIdMj("chan-mj"); org.setChannelIdLaw("chan-law"); assertThat(org.getStatus()).isEqualTo(OrgStatus.ACTIVE); } @Test void 공백만_있는_값은_없는_것으로_본다() { Organization org = withContact(); org.setManagerEmail(" "); assertThat(org.getStatus()).isEqualTo(OrgStatus.INFO_PENDING); } }