@Test
  public void testEmptyList() throws Exception {

    Folder folder = mock(Folder.class);
    when(folder.search(any(SearchTerm.class))).thenThrow(new MessagingException());

    MessageExtractor extractor = new MessageExtractor(folder);
    List<NamedPeriod> periods = extractor.list(new DateTime(), new DateTime());

    assertEquals(0, periods.size());
  }
  @Test
  public void testValidList() throws Exception {

    Message message1 = mockMessage(DATE_1, SUBJECT_1);
    Message message2 = mockMessage(DATE_2, SUBJECT_2);

    Folder folder = mock(Folder.class);
    when(folder.search(any(SearchTerm.class))).thenReturn(new Message[] {message1, message2});

    MessageExtractor extractor = new MessageExtractor(folder);
    List<NamedPeriod> periods = extractor.list(new DateTime(), new DateTime());

    assertEquals(2, periods.size());

    assertEquals(DATE_1, periods.get(0).getFrom().toDate());
    assertEquals(DATE_1, periods.get(0).getTo().toDate());
    assertEquals(SUBJECT_1, periods.get(0).getName());

    assertEquals(DATE_2, periods.get(1).getFrom().toDate());
    assertEquals(DATE_2, periods.get(1).getTo().toDate());
    assertEquals(SUBJECT_2, periods.get(1).getName());
  }