diff --git a/domain/promo/models/src/main/kotlin/com/tangem/domain/promo/models/PromoCampaignId.kt b/domain/promo/models/src/main/kotlin/com/tangem/domain/promo/models/PromoCampaignId.kt index 81269512e0..bb94ae415d 100644 --- a/domain/promo/models/src/main/kotlin/com/tangem/domain/promo/models/PromoCampaignId.kt +++ b/domain/promo/models/src/main/kotlin/com/tangem/domain/promo/models/PromoCampaignId.kt @@ -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 } } } \ No newline at end of file diff --git a/domain/promo/models/src/test/kotlin/com/tangem/domain/promo/models/PromoCampaignIdTest.kt b/domain/promo/models/src/test/kotlin/com/tangem/domain/promo/models/PromoCampaignIdTest.kt index acd7d9425d..414d3bfa06 100644 --- a/domain/promo/models/src/test/kotlin/com/tangem/domain/promo/models/PromoCampaignIdTest.kt +++ b/domain/promo/models/src/test/kotlin/com/tangem/domain/promo/models/PromoCampaignIdTest.kt @@ -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) diff --git a/features/promo-banners/impl/src/main/kotlin/com/tangem/features/promobanners/impl/campaigns/converters/CampaignIdConverter.kt b/features/promo-banners/impl/src/main/kotlin/com/tangem/features/promobanners/impl/campaigns/converters/CampaignIdConverter.kt index bf2a879216..6c5c480f96 100644 --- a/features/promo-banners/impl/src/main/kotlin/com/tangem/features/promobanners/impl/campaigns/converters/CampaignIdConverter.kt +++ b/features/promo-banners/impl/src/main/kotlin/com/tangem/features/promobanners/impl/campaigns/converters/CampaignIdConverter.kt @@ -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" - } } \ No newline at end of file diff --git a/features/promo-banners/impl/src/test/kotlin/com/tangem/features/promobanners/impl/campaigns/converters/CampaignIdConverterTest.kt b/features/promo-banners/impl/src/test/kotlin/com/tangem/features/promobanners/impl/campaigns/converters/CampaignIdConverterTest.kt index b80b33fbbd..9c571d85d0 100644 --- a/features/promo-banners/impl/src/test/kotlin/com/tangem/features/promobanners/impl/campaigns/converters/CampaignIdConverterTest.kt +++ b/features/promo-banners/impl/src/test/kotlin/com/tangem/features/promobanners/impl/campaigns/converters/CampaignIdConverterTest.kt @@ -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), diff --git a/features/promo-banners/impl/src/test/kotlin/com/tangem/features/promobanners/impl/campaigns/model/CampaignsModelTest.kt b/features/promo-banners/impl/src/test/kotlin/com/tangem/features/promobanners/impl/campaigns/model/CampaignsModelTest.kt index 27e2b8cb00..246510e41f 100644 --- a/features/promo-banners/impl/src/test/kotlin/com/tangem/features/promobanners/impl/campaigns/model/CampaignsModelTest.kt +++ b/features/promo-banners/impl/src/test/kotlin/com/tangem/features/promobanners/impl/campaigns/model/CampaignsModelTest.kt @@ -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(