Skip to content

Commit 34abcd4

Browse files
committed
Fix tests
1 parent ad7d1c8 commit 34abcd4

File tree

3 files changed

+80
-14
lines changed

3 files changed

+80
-14
lines changed

feature-toggles/feature-toggles-impl/src/test/java/com/duckduckgo/feature/toggles/api/FeatureTogglesTest.kt

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ import org.junit.Assert.assertNull
3434
import org.junit.Assert.assertTrue
3535
import org.junit.Before
3636
import org.junit.Test
37-
import org.mockito.kotlin.times
3837

3938
class FeatureTogglesTest {
4039

@@ -70,6 +69,29 @@ class FeatureTogglesTest {
7069
assertEquals(FeatureName(parentName = "test", name = "disableByDefault"), feature.disableByDefault().featureName())
7170
}
7271

72+
@Test
73+
fun whenInternalByDefaultAndInternalBuildReturnTrue() {
74+
provider.flavorName = BuildFlavor.INTERNAL.name
75+
assertTrue(feature.internalByDefault().isEnabled())
76+
}
77+
78+
@Test
79+
fun whenInternalByDefaultAndPlayBuildReturnFalse() {
80+
provider.flavorName = BuildFlavor.PLAY.name
81+
assertFalse(feature.internalByDefault().isEnabled())
82+
}
83+
84+
@Test
85+
fun whenInternalByDefaultAndFdroidBuildReturnFalse() {
86+
provider.flavorName = BuildFlavor.FDROID.name
87+
assertFalse(feature.internalByDefault().isEnabled())
88+
}
89+
90+
@Test
91+
fun whenInternalByDefaultAndNoFlavourBuildReturnFalse() {
92+
assertFalse(feature.internalByDefault().isEnabled())
93+
}
94+
7395
@Test
7496
fun whenDisableByDefaultThenReturnDisabled() {
7597
assertFalse(feature.disableByDefault().isEnabled())
@@ -562,6 +584,9 @@ interface TestFeature {
562584
@Toggle.DefaultValue(DefaultFeatureValue.TRUE)
563585
fun self(): Toggle
564586

587+
@Toggle.DefaultValue(DefaultFeatureValue.INTERNAL)
588+
fun internalByDefault(): Toggle
589+
565590
@Toggle.DefaultValue(DefaultFeatureValue.FALSE)
566591
fun disableByDefault(): Toggle
567592

feature-toggles/feature-toggles-impl/src/test/java/com/duckduckgo/feature/toggles/codegen/ContributesActivePluginPointCodeGeneratorTest.kt

Lines changed: 44 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ import kotlin.reflect.KClass
3333
import kotlin.reflect.full.functions
3434
import kotlinx.coroutines.CoroutineScope
3535
import org.junit.Assert.assertEquals
36-
import org.junit.Assert.assertFalse
3736
import org.junit.Assert.assertNotNull
3837
import org.junit.Assert.assertNull
3938
import org.junit.Assert.assertTrue
@@ -76,8 +75,12 @@ class ContributesActivePluginPointCodeGeneratorTest {
7675
clazz.kotlin.functions.firstOrNull { it.name == "pluginBarActivePlugin" }!!.annotations
7776
.firstOrNull { it.annotationClass == Toggle.DefaultValue::class },
7877
)
79-
assertTrue(clazz.kotlin.java.methods.find { it.name == "self" }!!.getAnnotation(Toggle.DefaultValue::class.java)!!.defaultValue)
80-
assertTrue(
78+
assertEquals(
79+
Toggle.DefaultFeatureValue.TRUE,
80+
clazz.kotlin.java.methods.find { it.name == "self" }!!.getAnnotation(Toggle.DefaultValue::class.java)!!.defaultValue,
81+
)
82+
assertEquals(
83+
Toggle.DefaultFeatureValue.TRUE,
8184
clazz.kotlin.java.methods.find { it.name == "pluginBarActivePlugin" }!!.getAnnotation(Toggle.DefaultValue::class.java)!!.defaultValue,
8285
)
8386

@@ -93,6 +96,8 @@ class ContributesActivePluginPointCodeGeneratorTest {
9396
fun `test generated foo remote features`() {
9497
val clazz = Class
9598
.forName("com.duckduckgo.feature.toggles.codegen.FooActivePlugin_ActivePlugin_RemoteFeature")
99+
val clazzInternal = Class
100+
.forName("com.duckduckgo.feature.toggles.codegen.FooActiveInternalPlugin_ActivePlugin_RemoteFeature")
96101

97102
assertNotNull(clazz.methods.find { it.name == "self" && it.returnType.kotlin == Toggle::class })
98103
assertNotNull(clazz.methods.find { it.name == "pluginFooActivePlugin" && it.returnType.kotlin == Toggle::class })
@@ -104,10 +109,18 @@ class ContributesActivePluginPointCodeGeneratorTest {
104109
clazz.kotlin.functions.firstOrNull { it.name == "pluginFooActivePlugin" }!!.annotations
105110
.firstOrNull { it.annotationClass == Toggle.DefaultValue::class },
106111
)
107-
assertTrue(clazz.kotlin.java.methods.find { it.name == "self" }!!.getAnnotation(Toggle.DefaultValue::class.java)!!.defaultValue)
108-
assertFalse(
112+
assertEquals(
113+
Toggle.DefaultFeatureValue.TRUE,
114+
clazz.kotlin.java.methods.find { it.name == "self" }!!.getAnnotation(Toggle.DefaultValue::class.java)!!.defaultValue,
115+
)
116+
assertEquals(
117+
Toggle.DefaultFeatureValue.FALSE,
109118
clazz.kotlin.java.methods.find { it.name == "pluginFooActivePlugin" }!!.getAnnotation(Toggle.DefaultValue::class.java)!!.defaultValue,
110119
)
120+
assertEquals(
121+
Toggle.DefaultFeatureValue.INTERNAL,
122+
clazzInternal.kotlin.java.methods.find { it.name == "pluginFooActiveInternalPlugin" }!!.getAnnotation(Toggle.DefaultValue::class.java)!!.defaultValue,
123+
)
111124

112125
val featureAnnotation = clazz.kotlin.java.getAnnotation(ContributesRemoteFeature::class.java)!!
113126
assertEquals(AppScope::class, featureAnnotation.scope)
@@ -147,8 +160,12 @@ class ContributesActivePluginPointCodeGeneratorTest {
147160
clazz.kotlin.functions.firstOrNull { it.name == "pluginExperimentActivePlugin" }!!.annotations
148161
.firstOrNull { it.annotationClass == Toggle.InternalAlwaysEnabled::class },
149162
)
150-
assertTrue(clazz.kotlin.java.methods.find { it.name == "self" }!!.getAnnotation(Toggle.DefaultValue::class.java)!!.defaultValue)
151-
assertTrue(
163+
assertEquals(
164+
Toggle.DefaultFeatureValue.TRUE,
165+
clazz.kotlin.java.methods.find { it.name == "self" }!!.getAnnotation(Toggle.DefaultValue::class.java)!!.defaultValue,
166+
)
167+
assertEquals(
168+
Toggle.DefaultFeatureValue.TRUE,
152169
clazz.kotlin.java.methods.find { it.name == "pluginExperimentActivePlugin" }!!
153170
.getAnnotation(Toggle.DefaultValue::class.java)!!.defaultValue,
154171
)
@@ -191,8 +208,12 @@ class ContributesActivePluginPointCodeGeneratorTest {
191208
clazz.kotlin.functions.firstOrNull { it.name == "pluginInternalAlwaysEnabledActivePlugin" }!!.annotations
192209
.firstOrNull { it.annotationClass == Toggle.InternalAlwaysEnabled::class },
193210
)
194-
assertTrue(clazz.kotlin.java.methods.find { it.name == "self" }!!.getAnnotation(Toggle.DefaultValue::class.java)!!.defaultValue)
195-
assertTrue(
211+
assertEquals(
212+
Toggle.DefaultFeatureValue.TRUE,
213+
clazz.kotlin.java.methods.find { it.name == "self" }!!.getAnnotation(Toggle.DefaultValue::class.java)!!.defaultValue,
214+
)
215+
assertEquals(
216+
Toggle.DefaultFeatureValue.TRUE,
196217
clazz.kotlin.java.methods.find { it.name == "pluginInternalAlwaysEnabledActivePlugin" }!!
197218
.getAnnotation(Toggle.DefaultValue::class.java)!!.defaultValue,
198219
)
@@ -225,7 +246,10 @@ class ContributesActivePluginPointCodeGeneratorTest {
225246
assertNotNull(
226247
clazz.kotlin.functions.firstOrNull { it.name == "self" }!!.annotations.firstOrNull { it.annotationClass == Toggle.DefaultValue::class },
227248
)
228-
assertTrue(clazz.kotlin.java.methods.find { it.name == "self" }!!.getAnnotation(Toggle.DefaultValue::class.java)!!.defaultValue)
249+
assertEquals(
250+
Toggle.DefaultFeatureValue.TRUE,
251+
clazz.kotlin.java.methods.find { it.name == "self" }!!.getAnnotation(Toggle.DefaultValue::class.java)!!.defaultValue,
252+
)
229253

230254
val featureAnnotation = clazz.kotlin.java.getAnnotation(ContributesRemoteFeature::class.java)!!
231255
assertEquals(AppScope::class, featureAnnotation.scope)
@@ -255,7 +279,10 @@ class ContributesActivePluginPointCodeGeneratorTest {
255279
assertNotNull(
256280
clazz.kotlin.functions.firstOrNull { it.name == "self" }!!.annotations.firstOrNull { it.annotationClass == Toggle.DefaultValue::class },
257281
)
258-
assertTrue(clazz.kotlin.java.methods.find { it.name == "self" }!!.getAnnotation(Toggle.DefaultValue::class.java)!!.defaultValue)
282+
assertEquals(
283+
Toggle.DefaultFeatureValue.TRUE,
284+
clazz.kotlin.java.methods.find { it.name == "self" }!!.getAnnotation(Toggle.DefaultValue::class.java)!!.defaultValue,
285+
)
259286

260287
val featureAnnotation = clazz.kotlin.java.getAnnotation(ContributesRemoteFeature::class.java)!!
261288
assertEquals(AppScope::class, featureAnnotation.scope)
@@ -277,8 +304,12 @@ class ContributesActivePluginPointCodeGeneratorTest {
277304
clazz.kotlin.functions.firstOrNull { it.name == "pluginFooActiveTriggeredMyPlugin" }!!.annotations
278305
.firstOrNull { it.annotationClass == Toggle.DefaultValue::class },
279306
)
280-
assertTrue(clazz.kotlin.java.methods.find { it.name == "self" }!!.getAnnotation(Toggle.DefaultValue::class.java)!!.defaultValue)
281-
assertFalse(
307+
assertEquals(
308+
Toggle.DefaultFeatureValue.TRUE,
309+
clazz.kotlin.java.methods.find { it.name == "self" }!!.getAnnotation(Toggle.DefaultValue::class.java)!!.defaultValue,
310+
)
311+
assertEquals(
312+
Toggle.DefaultFeatureValue.FALSE,
282313
clazz.kotlin.java.methods.find { it.name == "pluginFooActiveTriggeredMyPlugin" }!!
283314
.getAnnotation(Toggle.DefaultValue::class.java)!!.defaultValue,
284315
)

feature-toggles/feature-toggles-impl/src/test/java/com/duckduckgo/feature/toggles/codegen/TestActivePlugins.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,16 @@ class FooActivePlugin @Inject constructor() : MyPlugin {
6060
}
6161
}
6262

63+
@ContributesActivePlugin(
64+
scope = AppScope::class,
65+
boundType = MyPlugin::class,
66+
defaultActiveValue = DefaultFeatureValue.INTERNAL,
67+
)
68+
class FooActiveInternalPlugin @Inject constructor() : MyPlugin {
69+
override fun doSomething() {
70+
}
71+
}
72+
6373
@ContributesActivePlugin(
6474
scope = AppScope::class,
6575
boundType = MyPlugin::class,

0 commit comments

Comments
 (0)