/**
* Copyright: Copyright (c) From Down & Around, Inc.
*/
package com.fdar.apress.s2.domain;
import java.util.Date;
public class EventTestCase extends PersistenceBaseClass {
public void testCreateFindNoVoters() throws Exception {
Date now = new Date(System.currentTimeMillis());
Event e = new Event();
e.setName("event");
e.setDuration(3);
e.setLastUpdateTime(now);
e.setTimeZoneOffset(-5);
e.setStatus(Progress.NOT_STARTED);
e.setStartTime(now);
e.setVotingStartTime(now);
Address l = new Address();
l.setName("loc1");
l.setCity("boston");
l.setState("ma");
l.setAddress("newberry st");
l.setZipcode("02140");
e.setLocation(l);
Contestant c1 = new Contestant();
c1.setName("c1");
c1.setDescription("desc1");
e.addOption(c1);
Contestant c2 = new Contestant();
c2.setName("c2");
c2.setDescription("desc2");
e.addOption(c2);
entityMgr.persist(e);
entityMgr.flush();
Event test = entityMgr.find(Event.class,e.getId());
assertNotNull(test);
assertEquals(e.getId(),test.getId());
assertEquals(e.getName(),test.getName());
assertEquals(e.getDuration(),test.getDuration());
assertEquals(e.getLastUpdateTime(),test.getLastUpdateTime());
assertEquals(e.getTimeZoneOffset(),test.getTimeZoneOffset());
assertEquals(e.getStatus(),test.getStatus());
assertEquals(e.getStartTime(),test.getStartTime());
assertEquals(e.getVotingStartTime(),test.getVotingStartTime());
assertNotNull(test.getLocation());
assertEquals(l.getId(),test.getLocation().getId());
assertEquals(l.getName(),test.getLocation().getName());
assertEquals(l.getCity(),test.getLocation().getCity());
assertEquals(l.getState(),test.getLocation().getState());
assertEquals(l.getAddress(),((Address)test.getLocation()).getAddress());
assertEquals(l.getZipcode(),((Address)test.getLocation()).getZipcode());
assertNotNull(test.getOptions());
assertEquals(2,test.getOptions().size());
Contestant ct1 = c1.getId()==test.getOptions().get(0).getId()
? test.getOptions().get(0) : test.getOptions().get(1);
assertEquals(c1.getId(),ct1.getId());
assertEquals(c1.getName(),ct1.getName());
assertEquals(c1.getDescription(),ct1.getDescription());
assertEquals(e.getId(),ct1.getEvent().getId());
Contestant ct2 = c2.getId()==test.getOptions().get(0).getId()
? test.getOptions().get(0) : test.getOptions().get(1);
assertEquals(c2.getId(),ct2.getId());
assertEquals(c2.getName(),ct2.getName());
assertEquals(c2.getDescription(),ct2.getDescription());
assertEquals(e.getId(),ct2.getEvent().getId());
}
public void testCreateFind() throws Exception {
Date now = new Date(System.currentTimeMillis());
Event e = new Event();
e.setName("event");
e.setDuration(3);
e.setLastUpdateTime(now);
e.setTimeZoneOffset(-5);
e.setStatus(Progress.NOT_STARTED);
e.setStartTime(now);
e.setVotingStartTime(now);
Address l = new Address();
l.setName("loc1");
l.setCity("boston");
l.setState("ma");
l.setAddress("newberry st");
l.setZipcode("02140");
e.setLocation(l);
Contestant c1 = new Contestant();
c1.setName("c1");
c1.setDescription("desc1");
e.addOption(c1);
Contestant c2 = new Contestant();
c2.setName("c2");
c2.setDescription("desc2");
e.addOption(c2);
entityMgr.persist(e);
entityMgr.flush();
// add the voters
User u1 = new User();
u1.setEmail("test@test.com");
u1.setFirstName("mr");
u1.setLastName("test");
u1.setPassword("pw");
entityMgr.persist(u1);
User u2 = new User();
u2.setEmail("test2@test.com");
u2.setFirstName("mr2");
u2.setLastName("test2");
u2.setPassword("pw2");
entityMgr.persist(u2);
entityMgr.flush();
// voted
Voter v1 = new Voter();
v1.setUser(u1);
v1.setEnrollmentTime(now);
v1.setVotedForOption(c2);
v1.setVoteRecordedTime(now);
e.addVoter(v1);
// not voted yet
Voter v2 = new Voter();
v2.setUser(u2);
v2.setEnrollmentTime(now);
e.addVoter(v2);
entityMgr.persist(e);
// test
Event test = entityMgr.find(Event.class,e.getId());
assertNotNull(test);
assertEquals(e.getId(),test.getId());
assertEquals(e.getName(),test.getName());
assertEquals(e.getDuration(),test.getDuration());
assertEquals(e.getLastUpdateTime(),test.getLastUpdateTime());
assertEquals(e.getTimeZoneOffset(),test.getTimeZoneOffset());
assertEquals(e.getStatus(),test.getStatus());
assertEquals(e.getStartTime(),test.getStartTime());
assertEquals(e.getVotingStartTime(),test.getVotingStartTime());
assertNotNull(test.getLocation());
assertEquals(l.getId(),test.getLocation().getId());
assertEquals(l.getName(),test.getLocation().getName());
assertEquals(l.getCity(),test.getLocation().getCity());
assertEquals(l.getState(),test.getLocation().getState());
assertEquals(l.getAddress(),((Address)test.getLocation()).getAddress());
assertEquals(l.getZipcode(),((Address)test.getLocation()).getZipcode());
assertNotNull(test.getOptions());
assertEquals(2,test.getOptions().size());
Contestant ct1 = c1.getId()==test.getOptions().get(0).getId()
? test.getOptions().get(0) : test.getOptions().get(1);
assertEquals(c1.getId(),ct1.getId());
assertEquals(c1.getName(),ct1.getName());
assertEquals(c1.getDescription(),ct1.getDescription());
assertEquals(e.getId(),ct1.getEvent().getId());
Contestant ct2 = c2.getId()==test.getOptions().get(0).getId()
? test.getOptions().get(0) : test.getOptions().get(1);
assertEquals(c2.getId(),ct2.getId());
assertEquals(c2.getName(),ct2.getName());
assertEquals(c2.getDescription(),ct2.getDescription());
assertEquals(e.getId(),ct2.getEvent().getId());
assertNotNull(test.getVoters());
assertEquals(2,test.getVoters().size());
Object[] voters = test.getVoters().toArray();
Voter vt1 = v1.getId()==((Voter)voters[0]).getId() ? (Voter)voters[0] : (Voter)voters[1];
assertEquals(v1.getId(),vt1.getId());
assertEquals(v1.getEnrollmentTime(),vt1.getEnrollmentTime());
assertNotNull(vt1.getEvent());
assertEquals(e.getId(),vt1.getEvent().getId());
assertEquals(v1.getVotedForOption(),vt1.getVotedForOption());
assertEquals(v1.getVoteRecordedTime(),vt1.getVoteRecordedTime());
assertNotNull(vt1.getUser());
assertEquals(u1.getEmail(),vt1.getUser().getEmail());
assertEquals(u1.getFirstName(),vt1.getUser().getFirstName());
assertEquals(u1.getLastName(),vt1.getUser().getLastName());
assertEquals(u1.getPassword(),vt1.getUser().getPassword());
Voter vt2 = v2.getId()==((Voter)voters[0]).getId() ? (Voter)voters[0] : (Voter)voters[1];
assertEquals(v2.getId(),vt2.getId());
assertEquals(v2.getEnrollmentTime(),vt2.getEnrollmentTime());
assertNotNull(vt2.getEvent());
assertEquals(e.getId(),vt2.getEvent().getId());
assertNull(vt2.getVotedForOption());
assertNull(vt2.getVoteRecordedTime());
assertNotNull(vt2.getUser());
assertEquals(u2.getEmail(),vt2.getUser().getEmail());
assertEquals(u2.getFirstName(),vt2.getUser().getFirstName());
assertEquals(u2.getLastName(),vt2.getUser().getLastName());
assertEquals(u2.getPassword(),vt2.getUser().getPassword());
}
}