/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

  1. package org.richardsson.woloc.activity;
  2. import android.content.SharedPreferences;
  3. import org.junit.Before;
  4. import org.junit.Test;
  5. import org.mockito.InjectMocks;
  6. import org.mockito.Mock;
  7. import org.mockito.MockitoAnnotations;
  8. import org.richardsson.woloc.R;
  9. import org.richardsson.woloc.android.wrapper.ResourceWrapper;
  10. import org.richardsson.woloc.android.wrapper.Settings;
  11. import org.richardsson.woloc.android.wrapper.SettingsFragmentWrapper;
  12. import static org.mockito.Mockito.verify;
  13. import static org.mockito.Mockito.when;
  14. public class SettingsHandlerTest {
  15. @Mock private SettingsFragmentWrapper mockSettingsFragment;
  16. @Mock private SharedPreferences mockSharedPreferences;
  17. @Mock private ResourceWrapper mockResourceWrapper;
  18. private static final String SSID = "newSsid";
  19. private static final String NO_NETWORK_SELECTED = "No network selected";
  20. private static final String EMAIL_ADDRESS = "newEamil";
  21. private static final String NO_EMAIL_ADDRESS_SET = "No email address set";
  22. @InjectMocks private SettingsHandler classUnderTest;
  23. @Before
  24. public void beforeEachTest() {
  25. MockitoAnnotations.initMocks(this);
  26. when(mockSharedPreferences.getString(Settings.SSID_SETTINGS_KEY, "")).thenReturn(SSID);
  27. when(mockResourceWrapper.getString(R.string.no_network_selected)).thenReturn(NO_NETWORK_SELECTED);
  28. when(mockSharedPreferences.getString(Settings.EMAIL_ADDRESS_SETTINGS_KEY, "")).thenReturn(EMAIL_ADDRESS);
  29. when(mockResourceWrapper.getString(R.string.no_email_address_set)).thenReturn(NO_EMAIL_ADDRESS_SET);
  30. }
  31. @Test
  32. public void anUpdateOfASsidShouldUpdateSummary() {
  33. // Fixture
  34. // Test
  35. classUnderTest.onSharedPreferenceChanged(mockSharedPreferences, Settings.SSID_SETTINGS_KEY);
  36. // Assert
  37. verify(mockSettingsFragment).setSummary(Settings.SSID_SETTINGS_KEY, SSID);
  38. }
  39. @Test
  40. public void anUpdateToNoSsidShouldUpdateSummaryToDefaultString() {
  41. // Fixture
  42. when(mockSharedPreferences.getString(Settings.SSID_SETTINGS_KEY, "")).thenReturn("");
  43. // Test
  44. classUnderTest.onSharedPreferenceChanged(mockSharedPreferences, Settings.SSID_SETTINGS_KEY);
  45. // Assert
  46. verify(mockSettingsFragment).setSummary(Settings.SSID_SETTINGS_KEY, NO_NETWORK_SELECTED);
  47. }
  48. @Test
  49. public void aCallToUpdateSummariesShouldUpdateSsidSummary() {
  50. // Fixture
  51. // Test
  52. classUnderTest.updateSummaries(mockSharedPreferences);
  53. // Assert
  54. verify(mockSettingsFragment).setSummary(Settings.SSID_SETTINGS_KEY, SSID);
  55. }
  56. @Test
  57. public void anUpdateOfEmailAddressShouldUpdateSummary() {
  58. // Fixture
  59. // Test
  60. classUnderTest.onSharedPreferenceChanged(mockSharedPreferences, Settings.EMAIL_ADDRESS_SETTINGS_KEY);
  61. // Assert
  62. verify(mockSettingsFragment).setSummary(Settings.EMAIL_ADDRESS_SETTINGS_KEY, EMAIL_ADDRESS);
  63. }
  64. @Test
  65. public void anUpdateToNoEmailShouldUpdateSummaryToDefaultString() {
  66. // Fixture
  67. when(mockSharedPreferences.getString(Settings.EMAIL_ADDRESS_SETTINGS_KEY, "")).thenReturn("");
  68. // Test
  69. classUnderTest.onSharedPreferenceChanged(mockSharedPreferences, Settings.EMAIL_ADDRESS_SETTINGS_KEY);
  70. // Assert
  71. verify(mockSettingsFragment).setSummary(Settings.EMAIL_ADDRESS_SETTINGS_KEY, NO_EMAIL_ADDRESS_SET);
  72. }
  73. @Test
  74. public void aCallToUpdateSummariesShouldUpdateEmailAddressSummary() {
  75. // Fixture
  76. // Test
  77. classUnderTest.updateSummaries(mockSharedPreferences);
  78. // Assert
  79. verify(mockSettingsFragment).setSummary(Settings.EMAIL_ADDRESS_SETTINGS_KEY, EMAIL_ADDRESS);
  80. }
  81. }