feat(ranking): 랭킹 내부 모델을 추가한다
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
package kr.co.vividnext.sodalive.v2.ranking.application
|
||||
|
||||
import kr.co.vividnext.sodalive.v2.ranking.domain.CreatorRankingItem
|
||||
import kr.co.vividnext.sodalive.v2.ranking.domain.CreatorRankingSnapshotCandidate
|
||||
import org.junit.jupiter.api.Assertions.assertEquals
|
||||
import org.junit.jupiter.api.Assertions.assertFalse
|
||||
import org.junit.jupiter.api.Assertions.assertNull
|
||||
import org.junit.jupiter.api.Assertions.assertTrue
|
||||
import org.junit.jupiter.api.DisplayName
|
||||
import org.junit.jupiter.api.Test
|
||||
|
||||
class CreatorRankingQueryServiceTest {
|
||||
@Test
|
||||
@DisplayName("스냅샷 후보와 조회 item 내부 모델은 순위 변화와 신규 진입 값을 담을 수 있다")
|
||||
fun shouldCreateRankingDomainModelsForLaterQueryService() {
|
||||
val candidate = CreatorRankingSnapshotCandidate(
|
||||
creatorId = 1L,
|
||||
nickname = "creator",
|
||||
profileImageUrl = "profile.png",
|
||||
finalScore = 100.0,
|
||||
contentLiveScore = 10.0,
|
||||
engagementScore = 20.0,
|
||||
supportScore = 30.0,
|
||||
fanLoyaltyScore = 40.0,
|
||||
liveCanAmount = 100,
|
||||
contentPurchaseCanAmount = 200,
|
||||
contentLikeCount = 3,
|
||||
contentCommentCount = 4,
|
||||
channelDonationCanAmount = 500,
|
||||
channelDonationCount = 6,
|
||||
fanTalkCount = 7,
|
||||
finalFollowerCount = 8,
|
||||
followIncrease = -1
|
||||
)
|
||||
val item = CreatorRankingItem(
|
||||
rank = 1,
|
||||
rankChange = null,
|
||||
isNew = true,
|
||||
creatorId = candidate.creatorId,
|
||||
nickname = candidate.nickname,
|
||||
profileImageUrl = candidate.profileImageUrl
|
||||
)
|
||||
val fallenItem = item.copy(rank = 2, rankChange = -1, isNew = false)
|
||||
|
||||
assertEquals(1L, candidate.creatorId)
|
||||
assertEquals(100.0, candidate.finalScore, 0.0001)
|
||||
assertNull(item.rankChange)
|
||||
assertTrue(item.isNew)
|
||||
assertEquals(-1, fallenItem.rankChange)
|
||||
assertFalse(fallenItem.isNew)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user