5
5
package org.mozilla.fenix.onboarding.store
6
6
7
7
import androidx.test.ext.junit.runners.AndroidJUnit4
8
- import kotlinx.coroutines.flow.emptyFlow
8
+ import junit.framework.TestCase.assertEquals
9
9
import mozilla.components.lib.state.MiddlewareContext
10
10
import mozilla.components.support.test.mock
11
11
import org.junit.Before
12
12
import org.junit.Test
13
13
import org.junit.runner.RunWith
14
14
import org.mockito.Mock
15
- import org.mockito.Mockito.verify
16
15
import org.mockito.Mockito.verifyNoInteractions
17
- import org.mockito.Mockito.verifyNoMoreInteractions
18
- import org.mockito.Mockito.`when`
19
16
import org.mockito.MockitoAnnotations
20
17
21
18
@RunWith(AndroidJUnit4 ::class )
@@ -37,47 +34,41 @@ class PrivacyPreferencesMiddlewareTest {
37
34
}
38
35
39
36
@Test
40
- fun `GIVEN init called with no preferences WHEN middleware is invoked THEN only the repo is initialized` () {
41
- `when `(repository.privacyPreferenceUpdates).thenReturn(emptyFlow())
42
-
43
- middleware.invoke(context, {}, PrivacyPreferencesAction .Init )
44
-
45
- verifyNoInteractions(context)
46
- verify(repository).init ()
47
- }
37
+ fun `WHEN data usage update action is invoked THEN new value is set in repository` () {
38
+ var dataUsageEnabled = true
39
+ val middleware = PrivacyPreferencesMiddleware (
40
+ repository = object : PrivacyPreferencesRepository {
41
+ override fun getPreference (type : PreferenceType ) = false
42
+
43
+ override fun setPreference (type : PreferenceType , enabled : Boolean ) {
44
+ dataUsageEnabled = enabled
45
+ }
46
+ },
47
+ )
48
48
49
- @Test
50
- fun `GIVEN init called with preferences WHEN middleware is invoked THEN the repo is initialized` () {
51
- middleware.invoke(context, {}, PrivacyPreferencesAction .Init )
49
+ val updatedDataUsageEnabled = ! dataUsageEnabled
50
+ middleware.invoke(context, {}, PrivacyPreferencesAction .UsageDataPreferenceUpdatedTo (enabled = updatedDataUsageEnabled))
52
51
53
- verify(repository).init ()
54
- verifyNoMoreInteractions(repository)
52
+ assertEquals(updatedDataUsageEnabled, dataUsageEnabled)
55
53
}
56
54
57
55
@Test
58
- fun `GIVEN crash reporting called WHEN middleware is invoked THEN the repo is updated` () {
59
- val action = PrivacyPreferencesAction .CrashReportingPreferenceUpdatedTo (true )
60
- middleware.invoke(context, {}, action)
61
-
62
- verify(repository).updatePrivacyPreference(
63
- PrivacyPreferencesRepository .PrivacyPreferenceUpdate (
64
- preferenceType = PrivacyPreferencesRepository .PrivacyPreference .CrashReporting ,
65
- value = action.enabled,
66
- ),
56
+ fun `WHEN crash reporting update action is invoked THEN new value is set in repository` () {
57
+ var crashReportEnabled = true
58
+ val middleware = PrivacyPreferencesMiddleware (
59
+ repository = object : PrivacyPreferencesRepository {
60
+ override fun getPreference (type : PreferenceType ) = false
61
+
62
+ override fun setPreference (type : PreferenceType , enabled : Boolean ) {
63
+ crashReportEnabled = enabled
64
+ }
65
+ },
67
66
)
68
- }
69
67
70
- @Test
71
- fun `GIVEN usage data called WHEN middleware is invoked THEN the repo is updated` () {
72
- val action = PrivacyPreferencesAction .UsageDataPreferenceUpdatedTo (true )
73
- middleware.invoke(context, {}, action)
68
+ val updatedCrashReportEnabled = ! crashReportEnabled
69
+ middleware.invoke(context, {}, PrivacyPreferencesAction .UsageDataPreferenceUpdatedTo (enabled = updatedCrashReportEnabled))
74
70
75
- verify(repository).updatePrivacyPreference(
76
- PrivacyPreferencesRepository .PrivacyPreferenceUpdate (
77
- preferenceType = PrivacyPreferencesRepository .PrivacyPreference .UsageData ,
78
- value = action.enabled,
79
- ),
80
- )
71
+ assertEquals(updatedCrashReportEnabled, crashReportEnabled)
81
72
}
82
73
83
74
@Test
0 commit comments