blob: 695fc957b6cccfe94b1fc000f3607b9c30510b99 [file] [log] [blame]
package com.xtremelabs.robolectric.shadows;
import android.app.Notification;
import android.app.NotificationManager;
import android.content.Context;
import com.xtremelabs.robolectric.Robolectric;
import com.xtremelabs.robolectric.WithTestDefaultsRunner;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import static com.xtremelabs.robolectric.Robolectric.shadowOf;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
@RunWith(WithTestDefaultsRunner.class)
public class NotificationManagerTest {
private NotificationManager notificationManager;
private Notification notification1 = new Notification();
private Notification notification2 = new Notification();
@Before public void setUp() {
notificationManager = (NotificationManager) Robolectric.application.getSystemService(Context.NOTIFICATION_SERVICE);
}
@Test
public void testNotify() throws Exception {
notificationManager.notify(1, notification1);
assertEquals(1, shadowOf(notificationManager).size());
assertEquals(notification1, shadowOf(notificationManager).getNotification(1));
notificationManager.notify(31, notification2);
assertEquals(2, shadowOf(notificationManager).size());
assertEquals(notification2, shadowOf(notificationManager).getNotification(31));
}
@Test
public void testNotifyReplaces() throws Exception {
notificationManager.notify(1, notification1);
notificationManager.notify(1, notification2);
assertEquals(1, shadowOf(notificationManager).size());
assertEquals(notification2, shadowOf(notificationManager).getNotification(1));
}
@Test
public void testNotifyWithTag() throws Exception {
notificationManager.notify("a tag", 1, notification1);
assertEquals(1, shadowOf(notificationManager).size());
assertEquals(notification1, shadowOf(notificationManager).getNotification("a tag"));
}
@Test
public void notifyWithTag_shouldReturnNullForNullTag() throws Exception {
notificationManager.notify("a tag", 1, notification1);
assertEquals(1, shadowOf(notificationManager).size());
assertNull(shadowOf(notificationManager).getNotification(null));
}
@Test
public void notifyWithTag_shouldReturnNullForUnknownTag() throws Exception {
notificationManager.notify("a tag", 1, notification1);
assertEquals(1, shadowOf(notificationManager).size());
assertNull(shadowOf(notificationManager).getNotification("unknown tag"));
}
@Test
public void testCancel() throws Exception {
notificationManager.notify(1, notification1);
notificationManager.cancel(1);
assertEquals(0, shadowOf(notificationManager).size());
assertNull(shadowOf(notificationManager).getNotification(1));
}
@Test
public void testCancelWithTag() throws Exception {
notificationManager.notify("a tag", 1, notification1);
notificationManager.cancel("a tag", 1);
assertEquals(0, shadowOf(notificationManager).size());
assertNull(shadowOf(notificationManager).getNotification(1));
assertNull(shadowOf(notificationManager).getNotification("a tag"));
}
@Test
public void testCancelAll() throws Exception {
notificationManager.notify(1, notification1);
notificationManager.notify(31, notification2);
notificationManager.cancelAll();
assertEquals(0, shadowOf(notificationManager).size());
assertNull(shadowOf(notificationManager).getNotification(1));
assertNull(shadowOf(notificationManager).getNotification(31));
}
}