package in.partake.model.dao.access; import in.partake.app.PartakeApp; import in.partake.app.PartakeTestApp; import in.partake.base.PartakeException; import in.partake.model.IPartakeDAOs; import in.partake.model.access.DBAccess; import in.partake.model.dao.DAOException; import in.partake.model.dao.PartakeConnection; import in.partake.model.dao.access.IEventAccess; import in.partake.model.dao.auxiliary.EventFilterCondition; import in.partake.model.dto.Event; import in.partake.model.fixture.impl.EventTestDataProvider; import java.util.HashSet; import java.util.List; import java.util.Set; import org.junit.Assert; import org.junit.Before; import org.junit.Test; public class EventAccessTest extends AbstractDaoTestCaseBase<IEventAccess, Event, String> { private EventTestDataProvider provider; @Before public void setup() throws Exception { super.setup(PartakeApp.getDBService().getDAOs().getEventAccess()); provider = PartakeTestApp.getTestService().getTestDataProviderSet().getEventProvider(); } @Override protected Event create(long pkNumber, String pkSalt, int objNumber) { return provider.create(pkNumber, pkSalt, objNumber); } @Test public void testToFindByOwnerId() throws Exception { new DBAccess<Void>() { @Override protected Void doExecute(PartakeConnection con, IPartakeDAOs daos) throws DAOException, PartakeException { String userId = "userId-getbyowner-" + System.currentTimeMillis(); Set<String> eventIds = new HashSet<String>(); for (int i = 0; i < 10; ++i) { String eventId; Event original = createEvent(null, userId); { con.beginTransaction(); eventId = dao.getFreshId(con); original.setId(eventId); dao.put(con, original); con.commit(); eventIds.add(eventId); } } List<Event> targetEvents = dao.findByOwnerId(con, userId, EventFilterCondition.ALL_EVENTS, 0, Integer.MAX_VALUE); Set<String> targetEventIds = new HashSet<String>(); for (Event e : targetEvents) { targetEventIds.add(e.getId()); } Assert.assertEquals(eventIds, targetEventIds); return null; } }.execute(); } @Test public void testToFindByInvalidOwner() throws Exception { new DBAccess<Void>() { @Override protected Void doExecute(PartakeConnection con, IPartakeDAOs daos) throws DAOException, PartakeException { String userId = "userId-getbyowner-" + System.currentTimeMillis(); String invalidUserId = "userId-invalid-" + System.currentTimeMillis(); Set<String> eventIds = new HashSet<String>(); for (int i = 0; i < 10; ++i) { String eventId; Event original = createEvent(null, userId); { con.beginTransaction(); eventId = dao.getFreshId(con); original.setId(eventId); dao.put(con, original); con.commit(); eventIds.add(eventId); } } List<Event> targetEvents = dao.findByOwnerId(con, invalidUserId, EventFilterCondition.ALL_EVENTS, 0, Integer.MAX_VALUE); Assert.assertNotNull(targetEvents); Assert.assertTrue(targetEvents.isEmpty()); return null; } }.execute(); } private Event createEvent(String eventId, String userId) { EventTestDataProvider provider = PartakeTestApp.getTestService().getTestDataProviderSet().getEventProvider(); Event event = provider.create(); event.setId(eventId); event.setOwnerId(userId); return event; } }