Skip to content

Commit 5a999c4

Browse files
fercarcedopocmo
authored andcommitted
Issue mozilla-mobile#464: Let app access a list of experiments
Closes mozilla-mobile#464: Let app access a list of experiments
1 parent f788b9c commit 5a999c4

File tree

2 files changed

+38
-0
lines changed
  • components/service/fretboard/src

2 files changed

+38
-0
lines changed

components/service/fretboard/src/main/java/mozilla/components/service/fretboard/Fretboard.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@ class Fretboard(
2121
private var experimentsLoaded: Boolean = false
2222
private val evaluator = ExperimentEvaluator(valuesProvider)
2323

24+
/**
25+
* Provides the list of experiments (active or not)
26+
*/
27+
val experiments: List<Experiment>
28+
get() = experimentsResult.experiments.toList()
29+
2430
/**
2531
* Loads experiments from local storage
2632
*/

components/service/fretboard/src/test/java/mozilla/components/service/fretboard/FretboardTest.kt

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
package mozilla.components.service.fretboard
66

7+
import org.junit.Assert.assertEquals
8+
import org.junit.Assert.assertTrue
79
import org.junit.Test
810
import org.junit.runner.RunWith
911
import org.mockito.Mockito.`when`
@@ -58,4 +60,34 @@ class FretboardTest {
5860
verify(experimentSource).getExperiments(ExperimentsSnapshot(listOf(Experiment("id0")), null))
5961
verify(experimentStorage).save(ExperimentsSnapshot(listOf(Experiment("id")), null))
6062
}
63+
64+
@Test
65+
fun testExperiments() {
66+
val experimentSource = mock(ExperimentSource::class.java)
67+
val experimentStorage = mock(ExperimentStorage::class.java)
68+
val experiments = listOf(
69+
Experiment("first-id"),
70+
Experiment("second-id")
71+
)
72+
`when`(experimentStorage.retrieve()).thenReturn(ExperimentsSnapshot(experiments, null))
73+
val fretboard = Fretboard(experimentSource, experimentStorage)
74+
var returnedExperiments = fretboard.experiments
75+
assertEquals(0, returnedExperiments.size)
76+
fretboard.loadExperiments()
77+
returnedExperiments = fretboard.experiments
78+
assertEquals(2, returnedExperiments.size)
79+
assertTrue(returnedExperiments.contains(experiments[0]))
80+
assertTrue(returnedExperiments.contains(experiments[1]))
81+
}
82+
83+
@Test
84+
fun testExperimentsNoExperiments() {
85+
val experimentSource = mock(ExperimentSource::class.java)
86+
val experimentStorage = mock(ExperimentStorage::class.java)
87+
val experiments = listOf<Experiment>()
88+
`when`(experimentStorage.retrieve()).thenReturn(ExperimentsSnapshot(experiments, null))
89+
val fretboard = Fretboard(experimentSource, experimentStorage)
90+
val returnedExperiments = fretboard.experiments
91+
assertEquals(0, returnedExperiments.size)
92+
}
6193
}

0 commit comments

Comments
 (0)