@Override
@Before
public void setUp() throws Exception {
mailboxSessionMapperFactory = new InMemoryMailboxSessionMapperFactory();
Authenticator noAuthenticator = null;
Authorizator noAuthorizator = null;
DefaultDelegatingMailboxListener delegatingListener = new DefaultDelegatingMailboxListener();
MailboxEventDispatcher mailboxEventDispatcher = new MailboxEventDispatcher(delegatingListener);
MessageId.Factory messageIdFactory = new InMemoryMessageId.Factory();
GroupMembershipResolver groupMembershipResolver = null;
UnionMailboxACLResolver aclResolver = new UnionMailboxACLResolver();
StoreRightManager storeRightManager = new StoreRightManager(mailboxSessionMapperFactory, aclResolver, groupMembershipResolver, mailboxEventDispatcher);
StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mailboxSessionMapperFactory, storeRightManager);
mailboxManager = new InMemoryMailboxManager(mailboxSessionMapperFactory, noAuthenticator, noAuthorizator, new NoMailboxPathLocker(),
new MessageParser(), messageIdFactory, mailboxEventDispatcher, delegatingListener, annotationManager, storeRightManager);
mailboxManager.init();
MessageParser failingMessageParser = mock(MessageParser.class);
when(failingMessageParser.retrieveAttachments(any(InputStream.class)))
.thenThrow(new RuntimeException("Message parser set to fail"));
parseFailingMailboxManager = new InMemoryMailboxManager(mailboxSessionMapperFactory, noAuthenticator, noAuthorizator, new NoMailboxPathLocker(),
failingMessageParser, messageIdFactory, mailboxEventDispatcher, delegatingListener, annotationManager, storeRightManager);
parseFailingMailboxManager.init();
super.setUp();
}