import org.robolectric.RuntimeEnvironment;
import org.robolectric.util.ReflectionHelpers;
+import java.util.ArrayList;
+import java.util.List;
+
@RunWith(SettingsRobolectricTestRunner.class)
public class AndroidBeamPreferenceControllerTest {
UserManager.DISALLOW_OUTGOING_BEAM, UserHandle.myUserId())).thenReturn(false);
when(NfcAdapter.getDefaultAdapter(mContext)).thenReturn(mNfcAdapter);
- mAndroidBeamController = new AndroidBeamPreferenceController(mContext);
+ mAndroidBeamController = new AndroidBeamPreferenceController(mContext,
+ AndroidBeamPreferenceController.KEY_ANDROID_BEAM_SETTINGS);
mAndroidBeamPreference = new RestrictedPreference(RuntimeEnvironment.application);
when(mScreen.findPreference(mAndroidBeamController.getPreferenceKey())).thenReturn(
mAndroidBeamPreference);
mAndroidBeamController.onResume();
assertThat(mAndroidBeamPreference.isEnabled()).isFalse();
}
+
+ @Test
+ public void updateNonIndexableKeys_available_shouldNotUpdate() {
+ when(mNfcAdapter.isEnabled()).thenReturn(true);
+ final List<String> keys = new ArrayList<>();
+
+ mAndroidBeamController.updateNonIndexableKeys(keys);
+
+ assertThat(keys).isEmpty();
+ }
+
+ @Test
+ public void updateNonIndexableKeys_notAvailable_shouldUpdate() {
+ ReflectionHelpers.setField(mAndroidBeamController, "mNfcAdapter", null);
+ final List<String> keys = new ArrayList<>();
+
+ mAndroidBeamController.updateNonIndexableKeys(keys);
+
+ assertThat(keys).hasSize(1);
+ }
}