Updated on 2026-08-14
This commit is contained in:
parent
3e82313e52
commit
8794515c69
5 changed files with 22 additions and 28 deletions
|
|
@ -1,12 +1,14 @@
|
|||
package com.tangem.domain.promo.models
|
||||
|
||||
enum class PromoCampaignId(val deeplinkId: Int, val slug: String) {
|
||||
WhaleSwapCashback(deeplinkId = 1, slug = "whale-swap-cashback"),
|
||||
ReactivationCashback(deeplinkId = 2, slug = "reactivation-cashback"),
|
||||
private const val CAMPAIGN_ID_WHALE = "whale-swap-cashback"
|
||||
private const val CAMPAIGN_ID_REACTIVATION = "reactivation-cashback"
|
||||
|
||||
enum class PromoCampaignId(val slug: String) {
|
||||
WhaleSwapCashback(slug = CAMPAIGN_ID_WHALE),
|
||||
ReactivationCashback(slug = CAMPAIGN_ID_REACTIVATION),
|
||||
;
|
||||
|
||||
companion object {
|
||||
fun fromDeeplinkId(id: Int): PromoCampaignId? = entries.firstOrNull { it.deeplinkId == id }
|
||||
fun fromSlug(slug: String): PromoCampaignId? = entries.firstOrNull { it.slug == slug }
|
||||
}
|
||||
}
|
||||
|
|
@ -5,17 +5,6 @@ import org.junit.jupiter.api.Test
|
|||
|
||||
internal class PromoCampaignIdTest {
|
||||
|
||||
@Test
|
||||
fun `GIVEN known deeplink id WHEN fromDeeplinkId THEN returns campaign`() {
|
||||
assertThat(PromoCampaignId.fromDeeplinkId(1)).isEqualTo(PromoCampaignId.WhaleSwapCashback)
|
||||
assertThat(PromoCampaignId.fromDeeplinkId(2)).isEqualTo(PromoCampaignId.ReactivationCashback)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `GIVEN unknown deeplink id WHEN fromDeeplinkId THEN returns null`() {
|
||||
assertThat(PromoCampaignId.fromDeeplinkId(99)).isNull()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `GIVEN known slug WHEN fromSlug THEN returns campaign`() {
|
||||
assertThat(PromoCampaignId.fromSlug("whale-swap-cashback")).isEqualTo(PromoCampaignId.WhaleSwapCashback)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.tangem.features.promobanners.impl.campaigns.converters
|
||||
|
||||
import com.tangem.domain.promo.models.PromoCampaignId
|
||||
import com.tangem.features.promobanners.impl.campaigns.entity.CampaignType
|
||||
import com.tangem.utils.converter.Converter
|
||||
import javax.inject.Inject
|
||||
|
|
@ -9,14 +10,9 @@ internal class CampaignIdConverter @Inject constructor() :
|
|||
|
||||
override fun convert(value: String): CampaignType? {
|
||||
return when (value) {
|
||||
CAMPAIGN_ID_REACTIVATION -> CampaignType.ReactivationCashback(campaignId = value)
|
||||
CAMPAIGN_ID_WHALE -> CampaignType.WhaleSwapCashback(campaignId = value)
|
||||
PromoCampaignId.ReactivationCashback.slug -> CampaignType.ReactivationCashback(campaignId = value)
|
||||
PromoCampaignId.WhaleSwapCashback.slug -> CampaignType.WhaleSwapCashback(campaignId = value)
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
|
||||
private companion object {
|
||||
const val CAMPAIGN_ID_WHALE = "1"
|
||||
const val CAMPAIGN_ID_REACTIVATION = "2"
|
||||
}
|
||||
}
|
||||
|
|
@ -22,8 +22,14 @@ internal class CampaignIdConverterTest {
|
|||
}
|
||||
|
||||
private fun provideConvertModels() = listOf(
|
||||
ConvertModel(id = "1", expected = CampaignType.WhaleSwapCashback(campaignId = "1")),
|
||||
ConvertModel(id = "2", expected = CampaignType.ReactivationCashback(campaignId = "2")),
|
||||
ConvertModel(
|
||||
id = "whale-swap-cashback",
|
||||
expected = CampaignType.WhaleSwapCashback(campaignId = "whale-swap-cashback"),
|
||||
),
|
||||
ConvertModel(
|
||||
id = "reactivation-cashback",
|
||||
expected = CampaignType.ReactivationCashback(campaignId = "reactivation-cashback"),
|
||||
),
|
||||
ConvertModel(id = "0", expected = null),
|
||||
ConvertModel(id = "unknown", expected = null),
|
||||
ConvertModel(id = "", expected = null),
|
||||
|
|
|
|||
|
|
@ -42,7 +42,6 @@ internal class CampaignsModelTest {
|
|||
private val messageSender: UiMessageSender = mockk(relaxed = true)
|
||||
private val analyticsEventHandler: AnalyticsEventHandler = mockk(relaxed = true)
|
||||
|
||||
// Real converter: "1" -> WhaleSwapCashback, "2" -> ReactivationCashback, else null.
|
||||
private val campaignIdConverter = CampaignIdConverter()
|
||||
|
||||
@BeforeEach
|
||||
|
|
@ -82,7 +81,9 @@ internal class CampaignsModelTest {
|
|||
// Arrange
|
||||
coEvery { getPromoCampaignStateUseCase.invoke(any(), any(), any()) } returns
|
||||
Either.Left(RuntimeException("network"))
|
||||
val model = createModel(campaignFlow = flowOf(CampaignRequest(campaignId = "1", userWalletId = userWalletId)))
|
||||
val model = createModel(
|
||||
campaignFlow = flowOf(CampaignRequest(campaignId = "whale-swap-cashback", userWalletId = userWalletId)),
|
||||
)
|
||||
|
||||
// Act
|
||||
advanceUntilIdle()
|
||||
|
|
@ -180,8 +181,8 @@ internal class CampaignsModelTest {
|
|||
}
|
||||
|
||||
private fun provideKnownCampaignModels() = listOf(
|
||||
KnownCampaignModel(campaignId = "1", expectedPromoId = PromoCampaignId.WhaleSwapCashback),
|
||||
KnownCampaignModel(campaignId = "2", expectedPromoId = PromoCampaignId.ReactivationCashback),
|
||||
KnownCampaignModel(campaignId = "whale-swap-cashback", expectedPromoId = PromoCampaignId.WhaleSwapCashback),
|
||||
KnownCampaignModel(campaignId = "reactivation-cashback", expectedPromoId = PromoCampaignId.ReactivationCashback),
|
||||
)
|
||||
|
||||
internal data class KnownCampaignModel(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue