diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/chat/model/ChatRoomFilter.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/chat/model/ChatRoomFilter.kt new file mode 100644 index 00000000..9c852d02 --- /dev/null +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/chat/model/ChatRoomFilter.kt @@ -0,0 +1,15 @@ +package kr.co.vividnext.sodalive.v2.main.chat.model + +enum class ChatRoomFilter(val apiValue: String) { + ALL("ALL"), + AI("AI"), + DM("DM"); + + companion object { + fun fromTabIndex(index: Int): ChatRoomFilter = when (index) { + 1 -> AI + 2 -> DM + else -> ALL + } + } +} diff --git a/app/src/test/java/kr/co/vividnext/sodalive/v2/main/chat/ChatRoomFilterTest.kt b/app/src/test/java/kr/co/vividnext/sodalive/v2/main/chat/ChatRoomFilterTest.kt new file mode 100644 index 00000000..9068d594 --- /dev/null +++ b/app/src/test/java/kr/co/vividnext/sodalive/v2/main/chat/ChatRoomFilterTest.kt @@ -0,0 +1,28 @@ +package kr.co.vividnext.sodalive.v2.main.chat + +import kr.co.vividnext.sodalive.v2.main.chat.model.ChatRoomFilter +import org.junit.Assert.assertEquals +import org.junit.Test + +class ChatRoomFilterTest { + + @Test + fun `탭 index는 채팅방 filter로 매핑된다`() { + assertEquals(ChatRoomFilter.ALL, ChatRoomFilter.fromTabIndex(0)) + assertEquals(ChatRoomFilter.AI, ChatRoomFilter.fromTabIndex(1)) + assertEquals(ChatRoomFilter.DM, ChatRoomFilter.fromTabIndex(2)) + } + + @Test + fun `유효하지 않은 탭 index는 전체 filter로 매핑된다`() { + assertEquals(ChatRoomFilter.ALL, ChatRoomFilter.fromTabIndex(-1)) + assertEquals(ChatRoomFilter.ALL, ChatRoomFilter.fromTabIndex(3)) + } + + @Test + fun `filter api value는 요청 계약과 일치한다`() { + assertEquals("ALL", ChatRoomFilter.ALL.apiValue) + assertEquals("AI", ChatRoomFilter.AI.apiValue) + assertEquals("DM", ChatRoomFilter.DM.apiValue) + } +}