}
@Test
public void accessTest()
{
final TeamCalTestHelper testHelper = new TeamCalTestHelper();
final TeamCalDO cal = testHelper.prepareUsersAndGroups("teamEvent", this, getTeamCalDao());
calId = cal.getId();
logon(testHelper.getOwner());
final TeamEventDO event = new TeamEventDO();
event.setStartDate(new Timestamp(DateHelperTest.createDate(2012, Calendar.DECEMBER, 8, 8, 0, 0, 0).getTime()));
event.setEndDate(new Timestamp(DateHelperTest.createDate(2012, Calendar.DECEMBER, 8, 15, 0, 0, 0).getTime()));
event.setSubject("Testing the event dao.");
event.setAttendees(new TreeSet<TeamEventAttendeeDO>());
event.getAttendees().add(new TeamEventAttendeeDO().setUrl("k.reinhard@acme.com"));
event.setLocation("At home").setNote("This is a note.");
try {
log.info("Next AccessException is expected:");
teamEventDao.save(event);
Assert.fail("AccessException expected, no calendar given in event.");
} catch (final AccessException ex) {
// OK
}
event.setCalendar(cal);
eventId = (Integer) teamEventDao.save(event);
checkSelectAccess(true, testHelper.getOwner(), testHelper.getFullUser1(), testHelper.getFullUser3(), testHelper.getReadonlyUser1(),
testHelper.getReadonlyUser3());
checkSelectAccess(false, testHelper.getNoAccessUser());
checkUpdateAccess(event, true, testHelper.getOwner(), testHelper.getFullUser1(), testHelper.getFullUser3());
checkUpdateAccess(event, false, testHelper.getReadonlyUser1(), testHelper.getReadonlyUser3(), testHelper.getMinimalUser1(),
testHelper.getMinimalUser3(), testHelper.getNoAccessUser(), getUser(TEST_ADMIN_USER));
checkMinimalAccess(eventId, testHelper.getMinimalUser1(), testHelper.getMinimalUser3());
}