PageRenderTime 26ms CodeModel.GetById 13ms app.highlight 12ms RepoModel.GetById 0ms app.codeStats 0ms

/woloc/src/test/java/org/richardsson/woloc/activity/SettingsHandlerTest.java

https://bitbucket.org/krichardsson/woloc
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}