user.setUsername("poller");
user.setName("Poller");
user.setPassword("poller");
user.addRole((RoleImpl) securityDAO.findAuthority("polladmin"));
securityDAO.createUser(user);
Poll clubPoll = new Poll();
clubPoll.setQuestion(new I18nText());
clubPoll.getQuestion().add(new Locale("en"), "What's your favorite european football club?");
clubPoll.getQuestion().add(new Locale("es"), "�Cual es tu equipo de futbol favorito de Europa?");
clubPoll.setStoreVotes(true);
clubPoll.setRandomizeOptions(true);
clubPoll.setAllowAnonymousVotes(true);
List<PollOption> options = new ArrayList<PollOption>(5);
options.add(new PollOption());
options.get(0).setPoll(clubPoll);
options.get(0).setOrder(0);
options.get(0).setTotalVotes(2);
options.get(0).setAnswer(new I18nText());
options.get(0).getAnswer().add(new Locale("en"), "Real Madrid");
options.get(0).getAnswer().add(new Locale("es"), "Real Madrid C.F.");
List<PollVote> votes = new ArrayList<PollVote>(2);
votes.add(new PollVote());
votes.get(0).setIP("127.0.0.4");
votes.get(0).setOption(options.get(0));
votes.add(new PollVote());
votes.get(1).setIP("127.0.0.2");
votes.get(1).setOption(options.get(0));
options.get(0).setVotes(votes);
options.add(new PollOption());
options.get(1).setPoll(clubPoll);
options.get(1).setOrder(1);
options.get(1).setTotalVotes(1);
options.get(1).setAnswer(new I18nText());
options.get(1).getAnswer().add(new Locale("en"), "AC Milan");
options.get(1).getAnswer().add(new Locale("es"), "AC Milan");
List<PollVote> votes2 = new ArrayList<PollVote>(1);
votes2.add(new PollVote());
votes2.get(0).setIP("192.168.1.8");
votes2.get(0).setOption(options.get(1));
options.get(1).setVotes(votes2);
options.add(new PollOption());
options.get(2).setPoll(clubPoll);
options.get(2).setOrder(2);
options.get(2).setTotalVotes(2);
options.get(2).setAnswer(new I18nText());
options.get(2).getAnswer().add(new Locale("en"), "Manchester United");
options.get(2).getAnswer().add(new Locale("es"), "Manchester United");
List<PollVote> votes3 = new ArrayList<PollVote>(2);
votes3.add(new PollVote());
votes3.get(0).setIP("192.168.1.2");
votes3.get(0).setOption(options.get(2));
votes3.add(new PollVote());
votes3.get(1).setAuthor((UserImpl) securityDAO.findUser("poller"));
votes3.get(1).setOption(options.get(2));
options.get(2).setVotes(votes3);
options.add(new PollOption());
options.get(3).setPoll(clubPoll);
options.get(3).setOrder(3);
options.get(3).setTotalVotes(0);
options.get(3).setAnswer(new I18nText());
options.get(3).getAnswer().add(new Locale("en"), "Bayern Munich");
options.get(3).getAnswer().add(new Locale("es"), "Bayern Munich");
options.add(new PollOption());
options.get(4).setPoll(clubPoll);
options.get(4).setOrder(4);
options.get(4).setTotalVotes(1);
options.get(4).setAnswer(new I18nText());
options.get(4).getAnswer().add(new Locale("en"), "PSV Eindhoven");
options.get(4).getAnswer().add(new Locale("es"), "PSV Eindhoven");
List<PollVote> votes4 = new ArrayList<PollVote>(1);
votes4.add(new PollVote());
votes4.get(0).setIP("192.168.1.1");
votes4.get(0).setOption(options.get(4));
options.get(4).setVotes(votes4);
clubPoll.setOptions(options);
baseDao.create(clubPoll);
baseDao.flush();
assertTrue(baseDao.find(PollOption.class, 0, 100).size() == 5);
assertFalse(CollectionUtils.isEmpty(baseDao.find(Poll.class, 0, 100)));
}