@Test public void cancel_removesMatchingPendingIntents() { Intent newIntent = new Intent(Robolectric.application.getApplicationContext(), String.class); PendingIntent pendingIntent = PendingIntent.getBroadcast( Robolectric.application.getApplicationContext(), 0, newIntent, PendingIntent.FLAG_UPDATE_CURRENT); alarmManager.set(AlarmManager.RTC, 1337, pendingIntent); Intent newIntent2 = new Intent(Robolectric.application.getApplicationContext(), Integer.class); PendingIntent pendingIntent2 = PendingIntent.getBroadcast( Robolectric.application.getApplicationContext(), 0, newIntent2, PendingIntent.FLAG_UPDATE_CURRENT); alarmManager.set(AlarmManager.RTC, 1337, pendingIntent2); assertEquals(2, shadowAlarmManager.getScheduledAlarms().size()); Intent newIntent3 = new Intent(Robolectric.application.getApplicationContext(), String.class); PendingIntent newPendingIntent = PendingIntent.getBroadcast( Robolectric.application.getApplicationContext(), 0, newIntent3, PendingIntent.FLAG_UPDATE_CURRENT); alarmManager.cancel(newPendingIntent); assertEquals(1, shadowAlarmManager.getScheduledAlarms().size()); }
@Test public void shouldSupportSet() throws Exception { assertThat(shadowAlarmManager.getNextScheduledAlarm()).isNull(); alarmManager.set( AlarmManager.ELAPSED_REALTIME, 0, PendingIntent.getActivity(activity, 0, new Intent(activity, activity.getClass()), 0)); ShadowAlarmManager.ScheduledAlarm scheduledAlarm = shadowAlarmManager.getNextScheduledAlarm(); assertThat(scheduledAlarm).isNotNull(); }
@Test public void shouldSupportGetNextScheduledAlarm() throws Exception { assertThat(shadowAlarmManager.getNextScheduledAlarm()).isNull(); long now = new Date().getTime(); PendingIntent pendingIntent = PendingIntent.getActivity(activity, 0, new Intent(activity, activity.getClass()), 0); alarmManager.set(AlarmManager.ELAPSED_REALTIME, now, pendingIntent); ShadowAlarmManager.ScheduledAlarm scheduledAlarm = shadowAlarmManager.getNextScheduledAlarm(); assertThat(shadowAlarmManager.getNextScheduledAlarm()).isNull(); assertScheduledAlarm(now, pendingIntent, scheduledAlarm); }
@Test public void cancel_removesMatchingPendingIntentsWithActions() { Intent newIntent = new Intent("someAction"); PendingIntent pendingIntent = PendingIntent.getBroadcast( Robolectric.application.getApplicationContext(), 0, newIntent, 0); alarmManager.set(AlarmManager.RTC, 1337, pendingIntent); assertEquals(1, shadowAlarmManager.getScheduledAlarms().size()); alarmManager.cancel( PendingIntent.getBroadcast(Robolectric.application, 0, new Intent("anotherAction"), 0)); assertEquals(1, shadowAlarmManager.getScheduledAlarms().size()); alarmManager.cancel( PendingIntent.getBroadcast(Robolectric.application, 0, new Intent("someAction"), 0)); assertEquals(0, shadowAlarmManager.getScheduledAlarms().size()); }
@Test public void setShouldReplaceDuplicates() { alarmManager.set( AlarmManager.ELAPSED_REALTIME, 0, PendingIntent.getActivity(activity, 0, new Intent(activity, activity.getClass()), 0)); alarmManager.set( AlarmManager.ELAPSED_REALTIME, 0, PendingIntent.getActivity(activity, 0, new Intent(activity, activity.getClass()), 0)); assertEquals(1, shadowAlarmManager.getScheduledAlarms().size()); }