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.Transaction;
import in.partake.model.dao.DAOException;
import in.partake.model.dao.PartakeConnection;
import in.partake.model.dao.access.IEventTicketAccess;
import in.partake.model.dto.EventTicket;
import in.partake.model.fixture.impl.EventTicketTestDataProvider;
import java.util.List;
import java.util.UUID;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
public class EventTicketAccessTest extends AbstractDaoTestCaseBase<IEventTicketAccess, EventTicket, UUID> {
private EventTicketTestDataProvider provider;
@Before
public void setup() throws Exception {
super.setup(PartakeApp.getDBService().getDAOs().getEventTicketAccess());
provider = PartakeTestApp.getTestService().getTestDataProviderSet().getEventTicketProvider();
}
@Override
protected EventTicket create(long pkNumber, String pkSalt, int objNumber) {
return provider.create(pkNumber, pkSalt, objNumber);
}
@Test
public void testFindByEventId() throws Exception {
final String eventId1 = UUID.randomUUID().toString();
final String eventId2 = UUID.randomUUID().toString();
final UUID[] ids = new UUID[] { UUID.randomUUID(), UUID.randomUUID(), UUID.randomUUID() };
final String[] eventIds = new String[] { eventId1, eventId2, eventId2 };
new Transaction<Void>() {
@Override
protected Void doExecute(PartakeConnection con, IPartakeDAOs daos) throws DAOException, PartakeException {
for (int i = 0; i < ids.length; ++i) {
dao.put(con, EventTicket.createDefaultTicket(ids[i], eventIds[i]));
}
con.commit();
con.beginTransaction();
List<EventTicket> tickets = dao.findEventTicketsByEventId(con, eventId1);
assertThat(tickets.size(), is(1));
assertThat(tickets.get(0).getId(), is(ids[0]));
return null;
}
}.execute();
}
}