@Test
 public void testGetAllEvents() throws XWikiException {
   ArrayList<EventApi> eventList = new ArrayList<EventApi>();
   IEvent event = createMock(IEvent.class);
   event.setLanguage(eq("de"));
   expectLastCall().once();
   IEvent event2 = createMock(IEvent.class);
   event2.setLanguage(eq("de"));
   expectLastCall().once();
   IEvent event3 = createMock(IEvent.class);
   event3.setLanguage(eq("de"));
   expectLastCall().once();
   IEvent event4 = createMock(IEvent.class);
   event4.setLanguage(eq("de"));
   expectLastCall().once();
   DocumentReference cal2DocRef =
       new DocumentReference(context.getDatabase(), "MyCalDoc2Space", "MyCal2Doc");
   Calendar cal2 = new Calendar(cal2DocRef, isArchiv);
   cal2.setCalendarUtils(calUtils);
   cal2.inject_getEventCmd(eventMgrMock);
   expect(eventMgrMock.getEvents(same(cal2), eq(0), eq(0))).andReturn(eventList);
   replayAll(event, event2, event3, event4);
   eventList.add(new EventApi(event, context));
   eventList.add(new EventApi(event2, context));
   eventList.add(new EventApi(event3, context));
   eventList.add(new EventApi(event4, context));
   List<EventApi> events = cal2.getAllEvents();
   verifyAll(event, event2, event3, event4);
   assertEquals("expecting complete eventList", eventList, events);
 }
 @Test
 public void testGetNrOfEvents_emptyList() {
   expect(eventMgrMock.countEvents(eq(calDocRef), eq(false), isA(Date.class))).andReturn(0L);
   replayAll();
   assertEquals("must be zero for empty list.", 0, cal.getNrOfEvents());
   verifyAll();
 }
 @Test
 public void testGetAllEvents_informationHidingSecurity() throws XWikiException {
   List<EventApi> list = Collections.emptyList();
   expect(eventMgrMock.getEvents(same(cal), eq(0), eq(0))).andReturn(list).once();
   replayAll();
   List<EventApi> events = cal.getAllEvents();
   verifyAll();
   assertNotSame("getAllEvents may not leak internal data references.", eventList, events);
 }
 @Test
 public void testGetNrOfEvents_nonEmptyList() throws XWikiException {
   ArrayList<Long> eventList = new ArrayList<Long>();
   eventList.add(123l);
   DocumentReference cal2DocRef =
       new DocumentReference(context.getDatabase(), "MyCalDoc2Space", "MyCal2Doc");
   Calendar cal2 = new Calendar(cal2DocRef, isArchiv);
   cal2.setCalendarUtils(calUtils);
   cal2.inject_getEventCmd(eventMgrMock);
   expect(eventMgrMock.countEvents(eq(cal2DocRef), eq(isArchiv), eq(cal2.getStartDate())))
       .andReturn(123l);
   replayAll();
   long numEvents = cal2.getNrOfEvents();
   verifyAll();
   assertEquals("Expecting size of eventList.", 123l, numEvents);
 }
 @Test
 public void testGetEvents_illegalStartValue() throws XWikiException {
   ArrayList<EventApi> eventList = new ArrayList<EventApi>();
   IEvent event = createMock(IEvent.class);
   event.setLanguage(eq("de"));
   expectLastCall().once();
   DocumentReference cal2DocRef =
       new DocumentReference(context.getDatabase(), "MyCalDoc2Space", "MyCal2Doc");
   Calendar cal2 = new Calendar(cal2DocRef, isArchiv);
   cal2.setCalendarUtils(calUtils);
   cal2.inject_getEventCmd(eventMgrMock);
   expect(eventMgrMock.getEvents(same(cal2), eq(5), eq(1))).andReturn(eventList);
   replayAll(event);
   eventList.add(new EventApi(event, context));
   int start = 5;
   int nb = 1;
   List<EventApi> events = cal2.getEvents(start, nb);
   verifyAll(event);
   assertEquals("Expecting to get the full eventlist", eventList, events);
 }