package org.ovirt.engine.core.dao;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.util.Date;
import java.util.List;
import org.junit.Test;
import org.ovirt.engine.core.common.EventNotificationMethod;
import org.ovirt.engine.core.common.businessentities.EventNotificationHist;
import org.ovirt.engine.core.common.businessentities.EventSubscriber;
import org.ovirt.engine.core.compat.Guid;
public class EventDaoTest extends BaseDaoTestCase {
private static final int FREE_AUDIT_LOG_ID = 44295;
private EventDao dao;
private Guid existingSubscriber;
private Guid newSubscriber;
private EventSubscriber newSubscription;
private EventNotificationHist newHistory;
@Override
public void setUp() throws Exception {
super.setUp();
dao = dbFacade.getEventDao();
existingSubscriber = new Guid("9bf7c640-b620-456f-a550-0348f366544a");
newSubscriber = new Guid("9bf7c640-b620-456f-a550-0348f366544b");
newSubscription = new EventSubscriber();
newSubscription.setSubscriberId(newSubscriber);
newSubscription.setEventNotificationMethod(EventNotificationMethod.SMTP);
newSubscription.setEventUpName("TestRun");
newSubscription.setTagName("farkle");
newHistory = new EventNotificationHist();
newHistory.setAuditLogId(FREE_AUDIT_LOG_ID);
newHistory.setEventName("Failure");
newHistory.setMethodType("Email");
newHistory.setReason("Dunno");
newHistory.setSentAt(new Date());
newHistory.setStatus(false);
newHistory.setSubscriberId(existingSubscriber);
}
/**
* Ensures an empty collection is returned when the user has no subscriptions.
*/
@Test
public void testGetAllForSubscriberWithNoSubscriptions() {
List<EventSubscriber> result = dao.getAllForSubscriber(Guid.newGuid());
assertNotNull(result);
assertTrue(result.isEmpty());
}
/**
* Ensures that all subscriptions are returned.
*/
@Test
public void testGetAllForSubscriber() {
List<EventSubscriber> result = dao
.getAllForSubscriber(existingSubscriber);
assertNotNull(result);
assertFalse(result.isEmpty());
for (EventSubscriber subscription : result) {
assertEquals(existingSubscriber,
subscription.getSubscriberId());
}
}
/**
* Ensures that subscribing a user works as expected.
*/
@Test
public void testSubscribe() {
dao.subscribe(newSubscription);
List<EventSubscriber> result = dao.getAllForSubscriber(newSubscription
.getSubscriberId());
assertNotNull(result);
assertFalse(result.isEmpty());
for (EventSubscriber subscription : result) {
assertEquals(newSubscriber, subscription.getSubscriberId());
}
}
/**
* Ensures that unsubscribing a user works as expected.
*/
@Test
public void testUnsubscribe() {
List<EventSubscriber> before = dao
.getAllForSubscriber(existingSubscriber);
// ensure we have subscriptions
assertFalse(before.isEmpty());
for (EventSubscriber subscriber : before) {
dao.unsubscribe(subscriber);
}
List<EventSubscriber> after = dao.getAllForSubscriber(existingSubscriber);
assertNotNull(after);
assertTrue(after.isEmpty());
}
}