|
@@ -11,10 +11,15 @@ import org.junit.runner.RunWith;
|
|
|
import org.junit.runners.Suite;
|
|
|
import org.mockito.InOrder;
|
|
|
import org.mockito.Mock;
|
|
|
-import static org.mockito.Mockito.*;
|
|
|
-
|
|
|
import org.mockito.MockitoAnnotations;
|
|
|
|
|
|
+import static org.mockito.Mockito.anyString;
|
|
|
+import static org.mockito.Mockito.doAnswer;
|
|
|
+import static org.mockito.Mockito.inOrder;
|
|
|
+import static org.mockito.Mockito.times;
|
|
|
+import static org.mockito.Mockito.verify;
|
|
|
+import static org.mockito.Mockito.when;
|
|
|
+
|
|
|
@RunWith(Suite.class)
|
|
|
@Suite.SuiteClasses({
|
|
|
TestAppPreferences.Preferences.class,
|
|
@@ -45,7 +50,7 @@ public class TestAppPreferences {
|
|
|
@Before
|
|
|
public void setUp() {
|
|
|
MockitoAnnotations.initMocks(this);
|
|
|
- when(appPreferences.isDarkThemeEnabled()).thenReturn(true);
|
|
|
+ when(appPreferences.getDarkThemeMode()).thenReturn(DarkMode.DARK);
|
|
|
registry = new AppPreferencesImpl.ListenerRegistry(appPreferences);
|
|
|
}
|
|
|
|
|
@@ -64,21 +69,21 @@ public class TestAppPreferences {
|
|
|
registry.remove(listener2);
|
|
|
registry.remove(listener3);
|
|
|
return null;
|
|
|
- }).when(listener2).onDarkThemeEnabledChanged(anyBoolean());
|
|
|
+ }).when(listener2).onDarkThemeModeChanged(DarkMode.DARK);
|
|
|
|
|
|
// WHEN
|
|
|
// callback is called twice
|
|
|
- registry.onSharedPreferenceChanged(NOT_USED_NULL, AppPreferencesImpl.PREF__DARK_THEME_ENABLED);
|
|
|
- registry.onSharedPreferenceChanged(NOT_USED_NULL, AppPreferencesImpl.PREF__DARK_THEME_ENABLED);
|
|
|
+ registry.onSharedPreferenceChanged(NOT_USED_NULL, AppPreferencesImpl.PREF__DARK_THEME);
|
|
|
+ registry.onSharedPreferenceChanged(NOT_USED_NULL, AppPreferencesImpl.PREF__DARK_THEME);
|
|
|
|
|
|
// THEN
|
|
|
// no ConcurrentModificationException
|
|
|
// 1st time, all listeners (including removed) are called
|
|
|
// 2nd time removed callbacks are not called
|
|
|
- verify(listener1, times(2)).onDarkThemeEnabledChanged(anyBoolean());
|
|
|
- verify(listener2).onDarkThemeEnabledChanged(anyBoolean());
|
|
|
- verify(listener3).onDarkThemeEnabledChanged(anyBoolean());
|
|
|
- verify(listener4, times(2)).onDarkThemeEnabledChanged(anyBoolean());
|
|
|
+ verify(listener1, times(2)).onDarkThemeModeChanged(DarkMode.DARK);
|
|
|
+ verify(listener2).onDarkThemeModeChanged(DarkMode.DARK);
|
|
|
+ verify(listener3).onDarkThemeModeChanged(DarkMode.DARK);
|
|
|
+ verify(listener4, times(2)).onDarkThemeModeChanged(DarkMode.DARK);
|
|
|
}
|
|
|
|
|
|
@Test
|
|
@@ -90,7 +95,7 @@ public class TestAppPreferences {
|
|
|
|
|
|
// WHEN
|
|
|
// callback is called
|
|
|
- registry.onSharedPreferenceChanged(NOT_USED_NULL, AppPreferencesImpl.PREF__DARK_THEME_ENABLED);
|
|
|
+ registry.onSharedPreferenceChanged(NOT_USED_NULL, AppPreferencesImpl.PREF__DARK_THEME);
|
|
|
|
|
|
// THEN
|
|
|
// nothing happens
|