Skip to content

Commit d971bd9

Browse files
Add unit tests
1 parent e19da62 commit d971bd9

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
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

Comments
 (0)