/woloc/src/test/java/org/richardsson/woloc/activity/SettingsHandlerTest.java
Java | 108 lines | 63 code | 27 blank | 18 comment | 0 complexity | b1a514ebf3bdbf783a38f8cf3961de29 MD5 | raw file
1package org.richardsson.woloc.activity;
2
3import android.content.SharedPreferences;
4import org.junit.Before;
5import org.junit.Test;
6import org.mockito.InjectMocks;
7import org.mockito.Mock;
8import org.mockito.MockitoAnnotations;
9import org.richardsson.woloc.R;
10import org.richardsson.woloc.android.wrapper.ResourceWrapper;
11import org.richardsson.woloc.android.wrapper.Settings;
12import org.richardsson.woloc.android.wrapper.SettingsFragmentWrapper;
13
14import static org.mockito.Mockito.verify;
15import static org.mockito.Mockito.when;
16
17public class SettingsHandlerTest {
18
19 @Mock private SettingsFragmentWrapper mockSettingsFragment;
20 @Mock private SharedPreferences mockSharedPreferences;
21 @Mock private ResourceWrapper mockResourceWrapper;
22
23 private static final String SSID = "newSsid";
24 private static final String NO_NETWORK_SELECTED = "No network selected";
25 private static final String EMAIL_ADDRESS = "newEamil";
26 private static final String NO_EMAIL_ADDRESS_SET = "No email address set";
27
28 @InjectMocks private SettingsHandler classUnderTest;
29
30 @Before
31 public void beforeEachTest() {
32 MockitoAnnotations.initMocks(this);
33
34 when(mockSharedPreferences.getString(Settings.SSID_SETTINGS_KEY, "")).thenReturn(SSID);
35 when(mockResourceWrapper.getString(R.string.no_network_selected)).thenReturn(NO_NETWORK_SELECTED);
36
37 when(mockSharedPreferences.getString(Settings.EMAIL_ADDRESS_SETTINGS_KEY, "")).thenReturn(EMAIL_ADDRESS);
38 when(mockResourceWrapper.getString(R.string.no_email_address_set)).thenReturn(NO_EMAIL_ADDRESS_SET);
39 }
40
41 @Test
42 public void anUpdateOfASsidShouldUpdateSummary() {
43 // Fixture
44
45 // Test
46 classUnderTest.onSharedPreferenceChanged(mockSharedPreferences, Settings.SSID_SETTINGS_KEY);
47
48 // Assert
49 verify(mockSettingsFragment).setSummary(Settings.SSID_SETTINGS_KEY, SSID);
50 }
51
52 @Test
53 public void anUpdateToNoSsidShouldUpdateSummaryToDefaultString() {
54 // Fixture
55 when(mockSharedPreferences.getString(Settings.SSID_SETTINGS_KEY, "")).thenReturn("");
56
57 // Test
58 classUnderTest.onSharedPreferenceChanged(mockSharedPreferences, Settings.SSID_SETTINGS_KEY);
59
60 // Assert
61 verify(mockSettingsFragment).setSummary(Settings.SSID_SETTINGS_KEY, NO_NETWORK_SELECTED);
62 }
63
64 @Test
65 public void aCallToUpdateSummariesShouldUpdateSsidSummary() {
66 // Fixture
67
68 // Test
69 classUnderTest.updateSummaries(mockSharedPreferences);
70
71 // Assert
72 verify(mockSettingsFragment).setSummary(Settings.SSID_SETTINGS_KEY, SSID);
73 }
74
75 @Test
76 public void anUpdateOfEmailAddressShouldUpdateSummary() {
77 // Fixture
78
79 // Test
80 classUnderTest.onSharedPreferenceChanged(mockSharedPreferences, Settings.EMAIL_ADDRESS_SETTINGS_KEY);
81
82 // Assert
83 verify(mockSettingsFragment).setSummary(Settings.EMAIL_ADDRESS_SETTINGS_KEY, EMAIL_ADDRESS);
84 }
85
86 @Test
87 public void anUpdateToNoEmailShouldUpdateSummaryToDefaultString() {
88 // Fixture
89 when(mockSharedPreferences.getString(Settings.EMAIL_ADDRESS_SETTINGS_KEY, "")).thenReturn("");
90
91 // Test
92 classUnderTest.onSharedPreferenceChanged(mockSharedPreferences, Settings.EMAIL_ADDRESS_SETTINGS_KEY);
93
94 // Assert
95 verify(mockSettingsFragment).setSummary(Settings.EMAIL_ADDRESS_SETTINGS_KEY, NO_EMAIL_ADDRESS_SET);
96 }
97
98 @Test
99 public void aCallToUpdateSummariesShouldUpdateEmailAddressSummary() {
100 // Fixture
101
102 // Test
103 classUnderTest.updateSummaries(mockSharedPreferences);
104
105 // Assert
106 verify(mockSettingsFragment).setSummary(Settings.EMAIL_ADDRESS_SETTINGS_KEY, EMAIL_ADDRESS);
107 }
108}