|
| 1 | +package com.woocommerce.android.ciab |
| 2 | + |
| 3 | +import com.woocommerce.android.tools.SelectedSite |
| 4 | +import com.woocommerce.android.viewmodel.BaseUnitTest |
| 5 | +import kotlinx.coroutines.ExperimentalCoroutinesApi |
| 6 | +import org.junit.Assert.assertFalse |
| 7 | +import org.junit.Assert.assertTrue |
| 8 | +import org.junit.Test |
| 9 | +import org.mockito.Mockito.mock |
| 10 | +import org.mockito.kotlin.given |
| 11 | +import org.wordpress.android.fluxc.model.SiteModel |
| 12 | + |
| 13 | +@OptIn(ExperimentalCoroutinesApi::class) |
| 14 | +class CIABSiteGateKeeperTest : BaseUnitTest() { |
| 15 | + private val selectedSite: SelectedSite = mock() |
| 16 | + private val ciabSiteGateKeeper = CIABSiteGateKeeper(selectedSite) |
| 17 | + |
| 18 | + @Test |
| 19 | + fun `given current site is CIAB, when checking feature support, then feature is unsupported`() { |
| 20 | + val site = createSite(isCIAB = true) |
| 21 | + given(selectedSite.getOrNull()).willReturn(site) |
| 22 | + |
| 23 | + CIABAffectedFeature.entries.forEach { |
| 24 | + assertFalse(ciabSiteGateKeeper.isFeatureSupported(it)) |
| 25 | + } |
| 26 | + } |
| 27 | + |
| 28 | + @Test |
| 29 | + fun `given current site is not CIAB, when checking feature support, then feature is supported`() { |
| 30 | + val site = createSite(isCIAB = false) |
| 31 | + given(selectedSite.getOrNull()).willReturn(site) |
| 32 | + |
| 33 | + CIABAffectedFeature.entries.forEach { |
| 34 | + assertTrue(ciabSiteGateKeeper.isFeatureSupported(it)) |
| 35 | + } |
| 36 | + } |
| 37 | + |
| 38 | + private fun createSite(isCIAB: Boolean): SiteModel { |
| 39 | + return SiteModel().apply { |
| 40 | + setIsGardenSite(isCIAB) |
| 41 | + this.gardenName = if (isCIAB) CIABSiteGateKeeper.CIAB_GARDEN_NAME else null |
| 42 | + } |
| 43 | + } |
| 44 | +} |
0 commit comments