package org.ovirt.engine.core.dao; import static org.junit.Assert.*; import java.util.Date; import java.util.List; import org.junit.Test; import org.ovirt.engine.core.common.EventNotificationMethods; import org.ovirt.engine.core.common.businessentities.event_map; import org.ovirt.engine.core.common.businessentities.event_notification_hist; import org.ovirt.engine.core.common.businessentities.event_notification_methods; import org.ovirt.engine.core.common.businessentities.event_subscriber; import org.ovirt.engine.core.compat.Guid; public class EventDAOTest extends BaseDAOTestCase { private static final int FREE_AUDIT_LOG_ID = 44295; private static final int EVENT_MAP_COUNT = 1; private static final int NOTIFICATION_METHOD_COUNT = 3; private EventDAO dao; private Guid existingSubscriber; private Guid newSubscriber; private event_subscriber newSubscription; private event_notification_hist newHistory; @Override public void setUp() throws Exception { super.setUp(); dao = prepareDAO(dbFacade.getEventDAO()); existingSubscriber = new Guid("9bf7c640-b620-456f-a550-0348f366544a"); newSubscriber = new Guid("9bf7c640-b620-456f-a550-0348f366544b"); newSubscription = new event_subscriber(); newSubscription.setsubscriber_id(newSubscriber); newSubscription.setmethod_id(1); newSubscription.setevent_up_name("TestRun"); newSubscription.settag_name("farkle"); newHistory = new event_notification_hist(); newHistory.setaudit_log_id(FREE_AUDIT_LOG_ID); newHistory.setevent_name("Failure"); newHistory.setmethod_type("Email"); newHistory.setreason("Dunno"); newHistory.setsent_at(new Date()); newHistory.setstatus(false); newHistory.setsubscriber_id(existingSubscriber); } /** * Ensures that retrieving all subscribers works as expected. */ @Test public void testGetAll() { List<event_subscriber> result = dao.getAll(); assertNotNull(result); assertFalse(result.isEmpty()); } /** * Ensures an empty collection is returned when the user has no subscriptions. */ @Test public void testGetAllForSubscriberWithNoSubscriptions() { List<event_subscriber> result = dao.getAllForSubscriber(Guid.NewGuid()); assertNotNull(result); assertTrue(result.isEmpty()); } /** * Ensures that all subscriptions are returned. */ @Test public void testGetAllForSubscriber() { List<event_subscriber> result = dao .getAllForSubscriber(existingSubscriber); assertNotNull(result); assertFalse(result.isEmpty()); for (event_subscriber subscription : result) { assertEquals(existingSubscriber, subscription.getsubscriber_id()); } } @Test public void testGetAllEventNotificationMethods() { List<event_notification_methods> result = dao.getAllEventNotificationMethods(); assertNotNull(result); assertFalse(result.isEmpty()); assertEquals(NOTIFICATION_METHOD_COUNT, result.size()); } @Test public void testGetEventNotificationMethodsById() { List<event_notification_methods> result = dao.getEventNotificationMethodsById(1); assertNotNull(result); assertFalse(result.isEmpty()); assertEquals(1, result.size()); } @Test public void testGetEventNotificationMethodsByType() { String target = "Email"; List<event_notification_methods> result = dao.getEventNotificationMethodsByType(target); assertNotNull(result); assertFalse(result.isEmpty()); for (event_notification_methods method : result) { assertEquals(EventNotificationMethods.EMAIL, method.getmethod_type()); } } /** * Ensures that subscribing a user works as expected. */ @Test public void testSubscribe() { dao.subscribe(newSubscription); List<event_subscriber> result = dao.getAllForSubscriber(newSubscription .getsubscriber_id()); assertNotNull(result); assertFalse(result.isEmpty()); for (event_subscriber subscription : result) { assertEquals(newSubscriber, subscription.getsubscriber_id()); } } /** * Ensures that updating a subscription works as expected. */ @Test public void testUpdate() { event_subscriber before = dao .getAllForSubscriber(existingSubscriber).get(0); int oldMethodId = before.getmethod_id(); before.setmethod_id(2); dao.update(before, oldMethodId); event_subscriber after = dao .getAllForSubscriber(existingSubscriber).get(0); assertNotNull(after); assertEquals(before, after); } /** * Ensures that unsubscribing a user works as expected. */ @Test public void testUnsubscribe() { List<event_subscriber> before = dao .getAllForSubscriber(existingSubscriber); // ensure we have subscriptions assertFalse(before.isEmpty()); for (event_subscriber subscriber : before) { dao.unsubscribe(subscriber); } List<event_subscriber> after = dao .getAllForSubscriber(existingSubscriber); assertNotNull(after); assertTrue(after.isEmpty()); } @Test public void testGetEventMapByNameWithInvalidName() { List<event_map> result = dao.getEventMapByName("farkle"); assertNotNull(result); assertTrue(result.isEmpty()); } @Test public void testGetEventMapByName() { List<event_map> result = dao.getEventMapByName("TestRun"); assertNotNull(result); for (event_map mapping : result) { assertEquals("TestRun", mapping.getevent_up_name()); } } @Test public void testGetAllEventMaps() { List<event_map> result = dao.getAllEventMaps(); assertNotNull(result); assertFalse(result.isEmpty()); assertEquals(EVENT_MAP_COUNT, result.size()); } }