Repository: james-project
Updated Branches:
  refs/heads/master d8e844e3c -> 55b58b859


http://git-wip-us.apache.org/repos/asf/james-project/blob/e9a73fd1/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java
 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java
index e9089e7..5c2f47b 100644
--- 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java
+++ 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java
@@ -49,16 +49,14 @@ import 
org.apache.james.util.concurrency.ConcurrentTestRunner;
 import org.assertj.core.data.MapEntry;
 import org.junit.After;
 import org.junit.Assume;
+import org.junit.Before;
 import org.junit.Rule;
+import org.junit.Test;
 import org.junit.rules.ExpectedException;
-import org.xenei.junit.contract.Contract;
-import org.xenei.junit.contract.ContractTest;
-import org.xenei.junit.contract.IProducer;
 
 import com.google.common.collect.ImmutableList;
 
-@Contract(MapperProvider.class)
-public class MessageIdMapperTest<T extends MapperProvider> {
+public abstract class MessageIdMapperTest {
 
     @Rule
     public ExpectedException expectedException = ExpectedException.none();
@@ -67,7 +65,6 @@ public class MessageIdMapperTest<T extends MapperProvider> {
     private static final int BODY_START = 16;
     private final static long UID_VALIDITY = 42;
 
-    private IProducer<T> producer;
     private MessageMapper messageMapper;
     private MailboxMapper mailboxMapper;
     private MessageIdMapper sut;
@@ -82,12 +79,13 @@ public class MessageIdMapperTest<T extends MapperProvider> {
 
     @Rule
     public ExpectedException expected = ExpectedException.none();
-    private T mapperProvider;
+    private MapperProvider mapperProvider;
 
-    @Contract.Inject
-    public final void setProducer(IProducer<T> producer) throws 
MailboxException {
-        this.producer = producer;
-        this.mapperProvider = producer.newInstance();
+    protected abstract MapperProvider provideMapper();
+
+    @Before
+    public final void setUp() throws MailboxException {
+        this.mapperProvider = provideMapper();
         
Assume.assumeTrue(mapperProvider.getSupportedCapabilities().contains(MapperProvider.Capabilities.UNIQUE_MESSAGE_ID));
 
         this.mapperProvider.ensureMapperPrepared();
@@ -106,48 +104,48 @@ public class MessageIdMapperTest<T extends 
MapperProvider> {
 
     @After
     public void tearDown() throws MailboxException {
-        producer.cleanUp();
+        mapperProvider.clearMapper();
     }
 
-    @ContractTest
+    @Test
     public void findShouldReturnEmptyWhenIdListIsEmpty() throws 
MailboxException {
         assertThat(sut.find(ImmutableList.<MessageId> of(), 
FetchType.Full)).isEmpty();
     }
 
-    @ContractTest
+    @Test
     public void findShouldReturnOneMessageWhenIdListContainsOne() throws 
MailboxException {
         saveMessages();
         List<MailboxMessage> messages = 
sut.find(ImmutableList.of(message1.getMessageId()), FetchType.Full);
         assertThat(messages).containsOnly(message1);
     }
 
-    @ContractTest
+    @Test
     public void findShouldReturnMultipleMessagesWhenIdContainsMultiple() 
throws MailboxException {
         saveMessages();
         List<MailboxMessage> messages = 
sut.find(ImmutableList.of(message1.getMessageId(), message2.getMessageId(), 
message3.getMessageId()), FetchType.Full);
         assertThat(messages).containsOnly(message1, message2, message3);
     }
 
-    @ContractTest
+    @Test
     public void 
findShouldReturnMultipleMessagesWhenIdContainsMultipleInDifferentMailboxes() 
throws MailboxException {
         saveMessages();
         List<MailboxMessage> messages = 
sut.find(ImmutableList.of(message1.getMessageId(), message4.getMessageId(), 
message3.getMessageId()), FetchType.Full);
         assertThat(messages).containsOnly(message1, message4, message3);
     }
 
-    @ContractTest
+    @Test
     public void findMailboxesShouldReturnEmptyWhenMessageDoesntExist() throws 
MailboxException {
         
assertThat(sut.findMailboxes(mapperProvider.generateMessageId())).isEmpty();
     }
 
-    @ContractTest
+    @Test
     public void 
findMailboxesShouldReturnOneMailboxWhenMessageExistsInOneMailbox() throws 
MailboxException {
         saveMessages();
         List<MailboxId> mailboxes = sut.findMailboxes(message1.getMessageId());
         assertThat(mailboxes).containsOnly(benwaInboxMailbox.getMailboxId());
     }
 
-    @ContractTest
+    @Test
     public void 
findMailboxesShouldReturnTwoMailboxesWhenMessageExistsInTwoMailboxes() throws 
MailboxException {
         saveMessages();
 
@@ -160,7 +158,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         assertThat(mailboxes).containsOnly(benwaInboxMailbox.getMailboxId(), 
benwaWorkMailbox.getMailboxId());
     }
 
-    @ContractTest
+    @Test
     public void saveShouldSaveAMessage() throws Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
@@ -169,7 +167,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         assertThat(messages).containsOnly(message1);
     }
 
-    @ContractTest
+    @Test
     public void saveShouldThrowWhenMailboxDoesntExist() throws Exception {
         SimpleMailbox notPersistedMailbox = new SimpleMailbox(new 
MailboxPath("#private", "benwa", "mybox"), UID_VALIDITY);
         notPersistedMailbox.setMailboxId(mapperProvider.generateId());
@@ -181,7 +179,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         sut.save(message);
     }
 
-    @ContractTest
+    @Test
     public void 
saveShouldSaveMessageInAnotherMailboxWhenMessageAlreadyInOneMailbox() throws 
Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
@@ -196,7 +194,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         assertThat(mailboxes).containsOnly(benwaInboxMailbox.getMailboxId(), 
benwaWorkMailbox.getMailboxId());
     }
 
-    @ContractTest
+    @Test
     public void 
saveShouldWorkWhenSavingTwoTimesWithSameMessageIdAndSameMailboxId() throws 
Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
@@ -210,12 +208,12 @@ public class MessageIdMapperTest<T extends 
MapperProvider> {
         assertThat(mailboxes).containsOnly(benwaInboxMailbox.getMailboxId(), 
benwaInboxMailbox.getMailboxId());
     }
 
-    @ContractTest
+    @Test
     public void deleteShouldNotThrowWhenUnknownMessage() {
         sut.delete(message1.getMessageId());
     }
 
-    @ContractTest
+    @Test
     public void deleteShouldDeleteAMessage() throws Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
@@ -228,7 +226,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         assertThat(messages).isEmpty();
     }
 
-    @ContractTest
+    @Test
     public void deleteShouldDeleteMessageIndicesWhenStoredInTwoMailboxes() 
throws Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
@@ -246,7 +244,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         assertThat(mailboxes).isEmpty();
     }
 
-    @ContractTest
+    @Test
     public void 
deleteShouldDeleteMessageIndicesWhenStoredTwoTimesInTheSameMailbox() throws 
Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
@@ -263,7 +261,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         assertThat(mailboxes).isEmpty();
     }
 
-    @ContractTest
+    @Test
     public void 
deleteWithMailboxIdsShouldNotDeleteIndicesWhenMailboxIdsIsEmpty() throws 
Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
@@ -281,7 +279,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         assertThat(mailboxes).containsOnly(benwaInboxMailbox.getMailboxId(), 
benwaWorkMailbox.getMailboxId());
     }
 
-    @ContractTest
+    @Test
     public void 
deleteWithMailboxIdsShouldDeleteOneIndexWhenMailboxIdsContainsOneElement() 
throws Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
@@ -299,7 +297,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         assertThat(mailboxes).containsOnly(benwaWorkMailbox.getMailboxId());
     }
 
-    @ContractTest
+    @Test
     public void 
deleteWithMailboxIdsShouldDeleteIndicesWhenMailboxIdsContainsMultipleElements() 
throws Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
@@ -317,7 +315,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         assertThat(mailboxes).isEmpty();
     }
 
-    @ContractTest
+    @Test
     public void setFlagsShouldReturnUpdatedFlagsWhenMessageIsInOneMailbox() 
throws Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
@@ -337,7 +335,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         
assertThat(flags).containsOnly(MapEntry.entry(benwaInboxMailbox.getMailboxId(), 
expectedUpdatedFlags));
     }
 
-    @ContractTest
+    @Test
     public void setFlagsShouldReturnUpdatedFlagsWhenReplaceMode() throws 
Exception {
         Flags messageFlags = new FlagsBuilder().add(Flags.Flag.RECENT, 
Flags.Flag.FLAGGED)
             .build();
@@ -365,7 +363,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         
assertThat(flags).contains(MapEntry.entry(benwaInboxMailbox.getMailboxId(), 
expectedUpdatedFlags));
     }
 
-    @ContractTest
+    @Test
     public void setFlagsShouldReturnUpdatedFlagsWhenRemoveMode() throws 
Exception {
         Flags messageFlags = new FlagsBuilder().add(Flags.Flag.RECENT, 
Flags.Flag.FLAGGED)
             .build();
@@ -393,7 +391,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         
assertThat(flags).contains(MapEntry.entry(benwaInboxMailbox.getMailboxId(), 
expectedUpdatedFlags));
     }
 
-    @ContractTest
+    @Test
     public void setFlagsShouldUpdateMessageFlagsWhenRemoveMode() throws 
Exception {
         Flags messageFlags = new FlagsBuilder().add(Flags.Flag.RECENT, 
Flags.Flag.FLAGGED)
             .build();
@@ -416,7 +414,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         assertThat(messages.get(0).isFlagged()).isFalse();
     }
 
-    @ContractTest
+    @Test
     public void setFlagsShouldReturnEmptyWhenMailboxIdsIsEmpty() throws 
Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
@@ -429,7 +427,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         assertThat(flags).isEmpty();
     }
 
-    @ContractTest
+    @Test
     public void setFlagsShouldReturnEmptyWhenMessageIdDoesntExist() throws 
Exception {
         MessageId unknownMessageId = mapperProvider.generateMessageId();
         Map<MailboxId, UpdatedFlags> flags = sut.setFlags(unknownMessageId, 
ImmutableList.of(message1.getMailboxId()), new Flags(Flag.RECENT), 
FlagsUpdateMode.REMOVE);
@@ -437,7 +435,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         assertThat(flags).isEmpty();
     }
 
-    @ContractTest
+    @Test
     public void setFlagsShouldAddFlagsWhenAddUpdateMode() throws Exception {
         Flags initialFlags = new Flags(Flag.RECENT);
         message1.setUid(mapperProvider.generateMessageUid());
@@ -463,7 +461,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         
assertThat(flags).containsOnly(MapEntry.entry(benwaInboxMailbox.getMailboxId(), 
expectedUpdatedFlags));
     }
 
-    @ContractTest
+    @Test
     public void setFlagsShouldReturnUpdatedFlagsWhenMessageIsInTwoMailboxes() 
throws Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
@@ -496,7 +494,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
                 MapEntry.entry(message1InOtherMailbox.getMailboxId(), 
expectedUpdatedFlags2));
     }
 
-    @ContractTest
+    @Test
     public void setFlagsShouldUpdateFlagsWhenMessageIsInOneMailbox() throws 
Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
@@ -510,7 +508,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         assertThat(messages.get(0).isAnswered()).isTrue();
     }
 
-    @ContractTest
+    @Test
     public void setFlagsShouldNotModifyModSeqWhenMailboxIdsIsEmpty() throws 
Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         long modSeq = mapperProvider.generateModSeq(benwaInboxMailbox);
@@ -526,7 +524,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         assertThat(messages.get(0).getModSeq()).isEqualTo(modSeq);
     }
 
-    @ContractTest
+    @Test
     public void setFlagsShouldUpdateModSeqWhenMessageIsInOneMailbox() throws 
Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         long modSeq = mapperProvider.generateModSeq(benwaInboxMailbox);
@@ -541,7 +539,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         assertThat(messages.get(0).getModSeq()).isGreaterThan(modSeq);
     }
 
-    @ContractTest
+    @Test
     public void setFlagsShouldNotModifyFlagsWhenMailboxIdsIsEmpty() throws 
Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         long modSeq = mapperProvider.generateModSeq(benwaInboxMailbox);
@@ -559,7 +557,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         assertThat(messages.get(0).createFlags()).isEqualTo(initialFlags);
     }
 
-    @ContractTest
+    @Test
     public void setFlagsShouldUpdateFlagsWhenMessageIsInTwoMailboxes() throws 
Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
@@ -579,7 +577,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         assertThat(messages.get(1).isAnswered()).isTrue();
     }
 
-    @ContractTest
+    @Test
     public void setFlagsShouldWorkWhenCalledOnFirstMessage() throws Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
@@ -602,7 +600,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         assertThat(messages.get(0).isAnswered()).isTrue();
     }
 
-    @ContractTest
+    @Test
     public void setFlagsShouldWorkWhenCalledOnDuplicatedMailbox() throws 
Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
@@ -625,7 +623,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         assertThat(messages.get(0).isAnswered()).isTrue();
     }
 
-    @ContractTest
+    @Test
     public void setFlagsShouldWorkWithConcurrencyWithAdd() throws Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
@@ -650,7 +648,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         
assertThat(messages.get(0).createFlags().getUserFlags()).hasSize(threadCount * 
updateCount);
     }
 
-    @ContractTest
+    @Test
     public void setFlagsShouldWorkWithConcurrencyWithRemove() throws Exception 
{
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
@@ -682,7 +680,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         assertThat(messages.get(0).createFlags().getUserFlags()).isEmpty();
     }
 
-    @ContractTest
+    @Test
     public void countMessageShouldReturnWhenCreateNewMessage() throws 
Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
@@ -691,7 +689,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         
assertThat(messageMapper.countMessagesInMailbox(benwaInboxMailbox)).isEqualTo(1);
     }
 
-    @ContractTest
+    @Test
     public void countUnseenMessageShouldBeEmptyWhenMessageIsSeen() throws 
Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
@@ -701,7 +699,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         
assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(0);
     }
 
-    @ContractTest
+    @Test
     public void countUnseenMessageShouldReturnWhenMessageIsNotSeen() throws 
Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
@@ -710,7 +708,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         
assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(1);
     }
 
-    @ContractTest
+    @Test
     public void countMessageShouldBeEmptyWhenDeleteMessage() throws Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
@@ -721,7 +719,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         
assertThat(messageMapper.countMessagesInMailbox(benwaInboxMailbox)).isEqualTo(0);
     }
 
-    @ContractTest
+    @Test
     public void countUnseenMessageShouldBeEmptyWhenDeleteMessage() throws 
Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
@@ -732,7 +730,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         
assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(0);
     }
 
-    @ContractTest
+    @Test
     public void countUnseenMessageShouldReturnWhenDeleteMessage() throws 
Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
@@ -748,7 +746,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         
assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(1);
     }
 
-    @ContractTest
+    @Test
     public void countUnseenMessageShouldTakeCareOfMessagesMarkedAsRead() 
throws Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
@@ -759,7 +757,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         
assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(0);
     }
 
-    @ContractTest
+    @Test
     public void countUnseenMessageShouldTakeCareOfMessagesMarkedAsUnread() 
throws Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
@@ -771,7 +769,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         
assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(1);
     }
 
-    @ContractTest
+    @Test
     public void setFlagsShouldNotUpdateModSeqWhenNoop() throws Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         long modSeq = mapperProvider.generateModSeq(benwaInboxMailbox);
@@ -789,7 +787,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         assertThat(messages.get(0).getModSeq()).isEqualTo(modSeq);
     }
 
-    @ContractTest
+    @Test
     public void 
addingFlagToAMessageThatAlreadyHasThisFlagShouldResultInNoChange() throws 
Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         long modSeq = mapperProvider.generateModSeq(benwaInboxMailbox);
@@ -808,7 +806,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
         assertThat(messages.get(0).createFlags()).isEqualTo(flags);
     }
 
-    @ContractTest
+    @Test
     public void setFlagsShouldReturnUpdatedFlagsWhenNoop() throws Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         long modSeq = mapperProvider.generateModSeq(benwaInboxMailbox);
@@ -832,7 +830,7 @@ public class MessageIdMapperTest<T extends MapperProvider> {
                     .build()));
     }
 
-    @ContractTest
+    @Test
     public void countUnseenMessageShouldNotTakeCareOfOtherFlagsUpdates() 
throws Exception {
         message1.setUid(mapperProvider.generateMessageUid());
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));

http://git-wip-us.apache.org/repos/asf/james-project/blob/e9a73fd1/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java
 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java
index 955f39a..90cbada 100644
--- 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java
+++ 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java
@@ -54,17 +54,15 @@ import 
org.apache.james.mailbox.store.mail.model.impl.SimpleMailboxMessage;
 import org.apache.james.util.concurrency.ConcurrentTestRunner;
 import org.junit.After;
 import org.junit.Assume;
+import org.junit.Before;
 import org.junit.Rule;
+import org.junit.Test;
 import org.junit.rules.ExpectedException;
-import org.xenei.junit.contract.Contract;
-import org.xenei.junit.contract.ContractTest;
-import org.xenei.junit.contract.IProducer;
 
 import com.google.common.base.Optional;
 import com.google.common.collect.Lists;
 
-@Contract(MapperProvider.class)
-public class MessageMapperTest<T extends MapperProvider> {
+public abstract class MessageMapperTest {
 
     private final static char DELIMITER = '.';
     private static final int LIMIT = 10;
@@ -74,7 +72,6 @@ public class MessageMapperTest<T extends MapperProvider> {
 
     public static final String CUSTOMS_USER_FLAGS_VALUE = "CustomsFlags";
 
-    private IProducer<T> producer;
     private MapperProvider mapperProvider;
     private MessageMapper messageMapper;
     private MailboxMapper mailboxMapper;
@@ -92,10 +89,11 @@ public class MessageMapperTest<T extends MapperProvider> {
     @Rule
     public ExpectedException expected = ExpectedException.none();
 
-    @Contract.Inject
-    public final void setProducer(IProducer<T> producer) throws 
MailboxException {
-        this.producer = producer;
-        this.mapperProvider = producer.newInstance();
+    protected abstract MapperProvider createMapperProvider();
+
+    @Before
+    public final void setProducer() throws MailboxException {
+        this.mapperProvider = createMapperProvider();
         this.mapperProvider.ensureMapperPrepared();
 
         
Assume.assumeTrue(mapperProvider.getSupportedCapabilities().contains(MapperProvider.Capabilities.MESSAGE));
@@ -120,39 +118,39 @@ public class MessageMapperTest<T extends MapperProvider> {
 
     @After
     public void tearDown() throws MailboxException {
-        producer.cleanUp();
+        mapperProvider.clearMapper();
     }
 
-    @ContractTest
+    @Test
     public void emptyMailboxShouldHaveZeroMessageCount() throws 
MailboxException {
         
assertThat(messageMapper.countMessagesInMailbox(benwaInboxMailbox)).isEqualTo(0);
     }
 
-    @ContractTest
+    @Test
     public void mailboxContainingMessagesShouldHaveTheGoodMessageCount() 
throws MailboxException {
         saveMessages();
         
assertThat(messageMapper.countMessagesInMailbox(benwaInboxMailbox)).isEqualTo(5);
     }
 
-    @ContractTest
+    @Test
     public void mailboxCountShouldBeDecrementedAfterAMessageDelete() throws 
MailboxException {
         saveMessages();
         messageMapper.delete(benwaInboxMailbox, message1);
         
assertThat(messageMapper.countMessagesInMailbox(benwaInboxMailbox)).isEqualTo(4);
     }
 
-    @ContractTest
+    @Test
     public void emptyMailboxShouldNotHaveUnseenMessages() throws 
MailboxException {
         
assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(0);
     }
 
-    @ContractTest
+    @Test
     public void mailboxContainingMessagesShouldHaveTheGoodUnseenMessageCount() 
throws MailboxException {
         saveMessages();
         
assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(5);
     }
 
-    @ContractTest
+    @Test
     public void 
mailboxUnSeenCountShouldBeDecrementedAfterAMessageIsMarkedSeen() throws 
MailboxException {
         saveMessages();
         FlagsUpdateCalculator newFlags = new FlagsUpdateCalculator(new 
Flags(Flags.Flag.SEEN), FlagsUpdateMode.REPLACE);
@@ -162,7 +160,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(4);
     }
 
-    @ContractTest
+    @Test
     public void 
mailboxUnSeenCountShouldBeDecrementedAfterAMessageIsMarkedUnSeen() throws 
MailboxException {
         saveMessages();
         messageMapper.updateFlags(benwaInboxMailbox, new 
FlagsUpdateCalculator(new Flags(Flags.Flag.SEEN), FlagsUpdateMode.REPLACE), 
MessageRange.one(message1.getUid()));
@@ -170,21 +168,21 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(5);
     }
 
-    @ContractTest
+    @Test
     public void mailboxUnSeenCountShouldBeDecrementedAfterAMessageDelete() 
throws MailboxException {
         saveMessages();
         messageMapper.delete(benwaInboxMailbox, message1);
         
assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(4);
     }
 
-    @ContractTest
+    @Test
     public void deletedMessagesShouldBeRemovedFromStorage() throws 
MailboxException {
         saveMessages();
         messageMapper.delete(benwaInboxMailbox, message1);
         assertThat(messageMapper.findInMailbox(benwaInboxMailbox, 
MessageRange.one(message1.getUid()), MessageMapper.FetchType.Metadata, 
LIMIT)).isEmpty();
     }
 
-    @ContractTest
+    @Test
     public void deletingUnExistingMessageShouldHaveNoSideEffect() throws 
MailboxException, IOException {
         saveMessages();
         
message6.setUid(messageMapper.getLastUid(benwaInboxMailbox).get().next());
@@ -194,12 +192,12 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertMessages(Lists.newArrayList(retrievedMessageIterator)).containOnly(message1,
 message2, message3, message4, message5);
     }
 
-    @ContractTest
+    @Test
     public void noMessageShouldBeRetrievedInEmptyMailbox() throws 
MailboxException {
         assertThat(messageMapper.findInMailbox(benwaInboxMailbox, 
MessageRange.one(MessageUid.MIN_VALUE), MessageMapper.FetchType.Metadata, 
LIMIT)).isEmpty();
     }
 
-    @ContractTest
+    @Test
     public void messagesCanBeRetrievedInMailboxWithRangeTypeOne() throws 
MailboxException, IOException{
         saveMessages();
         MessageMapper.FetchType fetchType = MessageMapper.FetchType.Full;
@@ -208,7 +206,7 @@ public class MessageMapperTest<T extends MapperProvider> {
             .isEqualToWithoutAttachment(message1, fetchType);
     }
 
-    @ContractTest
+    @Test
     public void messagesCanBeRetrievedInMailboxWithRangeTypeRange() throws 
MailboxException, IOException{
         saveMessages();
         Iterator<MailboxMessage> retrievedMessageIterator = messageMapper
@@ -217,7 +215,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertMessages(Lists.newArrayList(retrievedMessageIterator)).containOnly(message1,
 message2, message3, message4);
     }
     
-    @ContractTest
+    @Test
     public void 
messagesCanBeRetrievedInMailboxWithRangeTypeRangeContainingAHole() throws 
MailboxException, IOException {
         saveMessages();
         messageMapper.delete(benwaInboxMailbox, message3);
@@ -226,7 +224,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertMessages(Lists.newArrayList(retrievedMessageIterator)).containOnly(message1,
 message2, message4);
     }
 
-    @ContractTest
+    @Test
     public void messagesCanBeRetrievedInMailboxWithRangeTypeFrom() throws 
MailboxException, IOException {
         saveMessages();
         Iterator<MailboxMessage> retrievedMessageIterator = messageMapper
@@ -234,7 +232,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertMessages(Lists.newArrayList(retrievedMessageIterator)).containOnly(message3,
 message4, message5);
     }
 
-    @ContractTest
+    @Test
     public void 
messagesCanBeRetrievedInMailboxWithRangeTypeFromContainingAHole() throws 
MailboxException, IOException {
         saveMessages();
         messageMapper.delete(benwaInboxMailbox, message4);
@@ -243,14 +241,14 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertMessages(Lists.newArrayList(retrievedMessageIterator)).containOnly(message3,
 message5);
     }
 
-    @ContractTest
+    @Test
     public void messagesCanBeRetrievedInMailboxWithRangeTypeAll() throws 
MailboxException, IOException {
         saveMessages();
         Iterator<MailboxMessage> retrievedMessageIterator = 
messageMapper.findInMailbox(benwaInboxMailbox, MessageRange.all(), 
MessageMapper.FetchType.Full, LIMIT);
         
assertMessages(Lists.newArrayList(retrievedMessageIterator)).containOnly(message1,
 message2, message3, message4, message5);
     }
 
-    @ContractTest
+    @Test
     public void 
messagesCanBeRetrievedInMailboxWithRangeTypeAllContainingHole() throws 
MailboxException, IOException {
         saveMessages();
         messageMapper.delete(benwaInboxMailbox, message1);
@@ -259,7 +257,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertMessages(Lists.newArrayList(retrievedMessageIterator)).containOnly(message2,
 message3, message4, message5);
     }
 
-    @ContractTest
+    @Test
     public void 
messagesRetrievedUsingFetchTypeMetadataShouldHaveAtLastMetadataDataLoaded() 
throws MailboxException, IOException{
         saveMessages();
         MessageMapper.FetchType fetchType = MessageMapper.FetchType.Metadata;
@@ -268,7 +266,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         assertThat(retrievedMessageIterator).isEmpty();
     }
 
-    @ContractTest
+    @Test
     public void 
messagesRetrievedUsingFetchTypeHeaderShouldHaveHeaderDataLoaded() throws 
MailboxException, IOException{
         saveMessages();
         MessageMapper.FetchType fetchType = MessageMapper.FetchType.Headers;
@@ -277,7 +275,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         assertThat(retrievedMessageIterator).isEmpty();
     }
 
-    @ContractTest
+    @Test
     public void messagesRetrievedUsingFetchTypeBodyShouldHaveBodyDataLoaded() 
throws MailboxException, IOException{
         saveMessages();
         MessageMapper.FetchType fetchType = MessageMapper.FetchType.Body;
@@ -286,19 +284,19 @@ public class MessageMapperTest<T extends MapperProvider> {
         assertThat(retrievedMessageIterator).isEmpty();
     }
 
-    @ContractTest
+    @Test
     public void retrievingMessagesWithALimitShouldLimitTheNumberOfMessages() 
throws MailboxException {
         int limit = 2;
         saveMessages();
         assertThat(messageMapper.findInMailbox(benwaInboxMailbox, 
MessageRange.all(), MessageMapper.FetchType.Full, limit)).hasSize(2);
     }
 
-    @ContractTest
+    @Test
     public void 
findRecentUidsInMailboxShouldReturnEmptyListWhenNoMessagesMarkedAsRecentArePresentInMailbox()
 throws MailboxException {
         
assertThat(messageMapper.findRecentMessageUidsInMailbox(benwaInboxMailbox)).isEmpty();
     }
 
-    @ContractTest
+    @Test
     public void 
findRecentUidsInMailboxShouldReturnListOfMessagesHoldingFlagsRecent() throws 
MailboxException {
         saveMessages();
         messageMapper.updateFlags(benwaInboxMailbox, new 
FlagsUpdateCalculator(new Flags(Flags.Flag.RECENT), FlagsUpdateMode.REPLACE), 
MessageRange.one(message2.getUid()));
@@ -307,7 +305,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertThat(messageMapper.findRecentMessageUidsInMailbox(benwaInboxMailbox)).containsOnly(message2.getUid(),
 message4.getUid());
     }
 
-    @ContractTest
+    @Test
     public void deleteShouldUpdateRecentWhenNeeded() throws MailboxException {
         saveMessages();
         messageMapper.updateFlags(benwaInboxMailbox, new 
FlagsUpdateCalculator(new Flags(Flags.Flag.RECENT), FlagsUpdateMode.REPLACE), 
MessageRange.one(message2.getUid()));
@@ -319,7 +317,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertThat(messageMapper.findRecentMessageUidsInMailbox(benwaInboxMailbox)).containsOnly(message4.getUid());
     }
 
-    @ContractTest
+    @Test
     public void deleteShouldNotUpdateRecentWhenNotNeeded() throws 
MailboxException {
         saveMessages();
         messageMapper.updateFlags(benwaInboxMailbox, new 
FlagsUpdateCalculator(new Flags(Flags.Flag.RECENT), FlagsUpdateMode.REPLACE), 
MessageRange.one(message2.getUid()));
@@ -331,7 +329,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertThat(messageMapper.findRecentMessageUidsInMailbox(benwaInboxMailbox)).containsOnly(message2.getUid(),
 message4.getUid());
     }
 
-    @ContractTest
+    @Test
     public void addShouldUpdateRecentWhenNeeded() throws MailboxException {
         message1.setFlags(new Flags(Flags.Flag.RECENT));
         messageMapper.add(benwaInboxMailbox, message1);
@@ -340,7 +338,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertThat(messageMapper.findRecentMessageUidsInMailbox(benwaInboxMailbox)).containsOnly(message1.getUid());
     }
 
-    @ContractTest
+    @Test
     public void addShouldNotUpdateRecentWhenNotNeeded() throws 
MailboxException {
         messageMapper.add(benwaInboxMailbox, message1);
         message1.setModSeq(messageMapper.getHighestModSeq(benwaInboxMailbox));
@@ -348,18 +346,18 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertThat(messageMapper.findRecentMessageUidsInMailbox(benwaInboxMailbox)).isEmpty();
     }
 
-    @ContractTest
+    @Test
     public void 
findFirstUnseenMessageUidShouldReturnNullWhenNoUnseenMessagesCanBeFound() 
throws MailboxException {
         
assertThat(messageMapper.findFirstUnseenMessageUid(benwaInboxMailbox)).isNull();
     }
 
-    @ContractTest
+    @Test
     public void findFirstUnseenMessageUidShouldReturnUid1WhenUid1isNotSeen() 
throws MailboxException {
         saveMessages();
         
assertThat(messageMapper.findFirstUnseenMessageUid(benwaInboxMailbox)).isEqualTo(message1.getUid());
     }
 
-    @ContractTest
+    @Test
     public void findFirstUnseenMessageUidShouldReturnUid2WhenUid2isSeen() 
throws MailboxException {
         saveMessages();
         messageMapper.updateFlags(benwaInboxMailbox, new 
FlagsUpdateCalculator(new Flags(Flags.Flag.SEEN), FlagsUpdateMode.REPLACE), 
MessageRange.one(message1.getUid()));
@@ -368,12 +366,12 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertThat(messageMapper.findFirstUnseenMessageUid(benwaInboxMailbox)).isEqualTo(message2.getUid());
     }
 
-    @ContractTest
+    @Test
     public void 
expungeMarkedForDeletionInMailboxShouldReturnEmptyResultOnEmptyMailbox() throws 
MailboxException, IOException {
         
assertThat(messageMapper.expungeMarkedForDeletionInMailbox(benwaInboxMailbox, 
MessageRange.all())).isEmpty();
     }
 
-    @ContractTest
+    @Test
     public void 
expungeMarkedForDeletionInMailboxShouldReturnEmptyResultWhenNoMessageInMailboxIsDeleted()
 throws MailboxException, IOException {
         saveMessages();
         
assertThat(messageMapper.expungeMarkedForDeletionInMailbox(benwaInboxMailbox, 
MessageRange.all())).isEmpty();
@@ -382,7 +380,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertMessages(Lists.newArrayList(retrievedMessageIterator)).containOnly(message1,
 message2, message3, message4, message5);
     }
 
-    @ContractTest
+    @Test
     public void expungeShouldReturnCorrectMetadataWithRangeAll() throws 
MailboxException, IOException {
         saveMessages();
         
MetadataMapAssert.assertThat(markThenPerformExpunge(MessageRange.all()))
@@ -390,7 +388,7 @@ public class MessageMapperTest<T extends MapperProvider> {
             .containsMetadataForMessages(message1, message4);
     }
 
-    @ContractTest
+    @Test
     public void expungeShouldModifyUnderlyingStorageWithRangeAll() throws 
MailboxException, IOException {
         saveMessages();
         markThenPerformExpunge(MessageRange.all());
@@ -400,7 +398,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertMessages(Lists.newArrayList(retrievedMessageIterator)).containOnly(message2,
 message3, message5);
     }
 
-    @ContractTest
+    @Test
     public void expungeShouldReturnCorrectMetadataWithRangeOne() throws 
MailboxException, IOException {
         saveMessages();
         
MetadataMapAssert.assertThat(markThenPerformExpunge(MessageRange.one(message1.getUid())))
@@ -408,7 +406,7 @@ public class MessageMapperTest<T extends MapperProvider> {
             .containsMetadataForMessages(message1);
     }
 
-    @ContractTest
+    @Test
     public void expungeShouldModifyUnderlyingStorageWithRangeOne() throws 
MailboxException, IOException {
         saveMessages();
         markThenPerformExpunge(MessageRange.one(message1.getUid()));
@@ -418,7 +416,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertMessages(Lists.newArrayList(retrievedMessageIterator)).containOnly(message4,
 message2, message3, message5);
     }
 
-    @ContractTest
+    @Test
     public void expungeShouldReturnCorrectMetadataWithRangeFrom() throws 
MailboxException, IOException {
         saveMessages();
         
MetadataMapAssert.assertThat(markThenPerformExpunge(MessageRange.from(message3.getUid())))
@@ -426,7 +424,7 @@ public class MessageMapperTest<T extends MapperProvider> {
             .containsMetadataForMessages(message4);
     }
 
-    @ContractTest
+    @Test
     public void expungeShouldModifyUnderlyingStorageWithRangeFrom() throws 
MailboxException, IOException {
         saveMessages();
         markThenPerformExpunge(MessageRange.from(message3.getUid()));
@@ -436,7 +434,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertMessages(Lists.newArrayList(retrievedMessageIterator)).containOnly(message1,
 message2, message3, message5);
     }
 
-    @ContractTest
+    @Test
     public void expungeShouldReturnCorrectMetadataWithRange() throws 
MailboxException, IOException {
         saveMessages();
         
MetadataMapAssert.assertThat(markThenPerformExpunge(MessageRange.range(message3.getUid(),
 message5.getUid())))
@@ -444,7 +442,7 @@ public class MessageMapperTest<T extends MapperProvider> {
             .containsMetadataForMessages(message4);
     }
 
-    @ContractTest
+    @Test
     public void expungeShouldModifyUnderlyingStorageWithRange() throws 
MailboxException, IOException {
         saveMessages();
         markThenPerformExpunge(MessageRange.range(message3.getUid(), 
message5.getUid()));
@@ -454,12 +452,12 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertMessages(Lists.newArrayList(retrievedMessageIterator)).containOnly(message1,
 message2, message3, message5);
     }
 
-    @ContractTest
+    @Test
     public void getHighestMoseqShouldBeEqualToZeroOnEmptyMailbox() throws 
MailboxException {
         
assertThat(messageMapper.getHighestModSeq(benwaInboxMailbox)).isEqualTo(0);
     }
 
-    @ContractTest
+    @Test
     public void insertingAMessageShouldIncrementModSeq() throws 
MailboxException {
         messageMapper.add(benwaInboxMailbox, message1);
         long modSeq = messageMapper.getHighestModSeq(benwaInboxMailbox);
@@ -468,12 +466,12 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertThat(messageMapper.getHighestModSeq(benwaInboxMailbox)).isGreaterThan(modSeq);
     }
 
-    @ContractTest
+    @Test
     public void getLastUidShouldReturnEmptyOnEmptyMailbox() throws 
MailboxException {
         
assertThat(messageMapper.getLastUid(benwaInboxMailbox)).isEqualTo(Optional.absent());
     }
 
-    @ContractTest
+    @Test
     public void insertingAMessageShouldIncrementLastUid() throws 
MailboxException {
         messageMapper.add(benwaInboxMailbox, message1);
         Optional<MessageUid> uid = messageMapper.getLastUid(benwaInboxMailbox);
@@ -482,7 +480,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertThat(messageMapper.getLastUid(benwaInboxMailbox).get()).isGreaterThan(uid.get());
     }
 
-    @ContractTest
+    @Test
     public void copyShouldIncrementUid() throws MailboxException, IOException {
         saveMessages();
         MessageUid uid = messageMapper.getLastUid(benwaInboxMailbox).get();
@@ -490,21 +488,21 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertThat(messageMapper.getLastUid(benwaInboxMailbox).get()).isGreaterThan(uid);
     }
 
-    @ContractTest
+    @Test
     public void copyShouldIncrementMessageCount() throws MailboxException, 
IOException {
         saveMessages();
         messageMapper.copy(benwaInboxMailbox, 
SimpleMailboxMessage.copy(benwaInboxMailbox.getMailboxId(), message6));
         
assertThat(messageMapper.countMessagesInMailbox(benwaInboxMailbox)).isEqualTo(6);
     }
 
-    @ContractTest
+    @Test
     public void copyOfUnSeenMessageShouldIncrementUnSeenMessageCount() throws 
MailboxException, IOException {
         saveMessages();
         messageMapper.copy(benwaInboxMailbox, 
SimpleMailboxMessage.copy(benwaInboxMailbox.getMailboxId(), message6));
         
assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(6);
     }
 
-    @ContractTest
+    @Test
     public void copyShouldIncrementModSeq() throws MailboxException, 
IOException {
         saveMessages();
         long modSeq = messageMapper.getHighestModSeq(benwaInboxMailbox);
@@ -512,7 +510,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertThat(messageMapper.getHighestModSeq(benwaInboxMailbox)).isGreaterThan(modSeq);
     }
 
-    @ContractTest
+    @Test
     public void copyShouldCreateAMessageInDestination() throws 
MailboxException, IOException {
         saveMessages();
         MailboxMessage message7 = 
SimpleMailboxMessage.copy(benwaInboxMailbox.getMailboxId(), message6);
@@ -530,7 +528,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertThat(result.getUid()).isEqualTo(messageMapper.getLastUid(benwaInboxMailbox).get());
     }
 
-    @ContractTest
+    @Test
     public void copyOfSeenMessageShouldNotIncrementUnSeenMessageCount() throws 
MailboxException {
         message6.setFlags(new Flags(Flags.Flag.SEEN));
         saveMessages();
@@ -540,7 +538,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(expectedUnseenMessages);
     }
 
-    @ContractTest
+    @Test
     public void copiedMessageShouldBeMarkedAsRecent() throws MailboxException {
         saveMessages();
         MessageMetaData metaData = messageMapper.copy(benwaInboxMailbox, 
SimpleMailboxMessage.copy(benwaInboxMailbox.getMailboxId(), message6));
@@ -554,7 +552,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         ).isTrue();
     }
 
-    @ContractTest
+    @Test
     public void copiedRecentMessageShouldBeMarkedAsRecent() throws 
MailboxException {
         saveMessages();
         message6.setFlags(new Flags(Flags.Flag.RECENT));
@@ -569,7 +567,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         ).isTrue();
     }
 
-    @ContractTest
+    @Test
     public void copiedMessageShouldNotChangeTheFlagsOnOriginalMessage() throws 
MailboxException {
         saveMessages();
         messageMapper.copy(benwaInboxMailbox, 
SimpleMailboxMessage.copy(benwaInboxMailbox.getMailboxId(), message6));
@@ -583,14 +581,14 @@ public class MessageMapperTest<T extends MapperProvider> {
         ).isFalse();
     }
 
-    @ContractTest
+    @Test
     public void flagsReplacementShouldReplaceStoredMessageFlags() throws 
MailboxException {
         saveMessages();
         messageMapper.updateFlags(benwaInboxMailbox, new 
FlagsUpdateCalculator(new Flags(Flags.Flag.FLAGGED), FlagsUpdateMode.REPLACE), 
MessageRange.one(message1.getUid()));
         assertThat(retrieveMessageFromStorage(message1)).hasFlags(new 
Flags(Flags.Flag.FLAGGED));
     }
 
-    @ContractTest
+    @Test
     public void 
flagsReplacementShouldReturnAnUpdatedFlagHighlightingTheReplacement() throws 
MailboxException {
         saveMessages();
         long modSeq = messageMapper.getHighestModSeq(benwaInboxMailbox);
@@ -605,7 +603,7 @@ public class MessageMapperTest<T extends MapperProvider> {
                 .build());
     }
 
-    @ContractTest
+    @Test
     public void 
flagsAdditionShouldReturnAnUpdatedFlagHighlightingTheAddition() throws 
MailboxException {
         saveMessages();
         messageMapper.updateFlags(benwaInboxMailbox, new 
FlagsUpdateCalculator(new Flags(Flags.Flag.FLAGGED), FlagsUpdateMode.REPLACE), 
MessageRange.one(message1.getUid()));
@@ -619,7 +617,7 @@ public class MessageMapperTest<T extends MapperProvider> {
                     .build());
     }
 
-    @ContractTest
+    @Test
     public void flagsAdditionShouldUpdateStoredMessageFlags() throws 
MailboxException {
         saveMessages();
         messageMapper.updateFlags(benwaInboxMailbox, new 
FlagsUpdateCalculator(new Flags(Flags.Flag.FLAGGED), FlagsUpdateMode.REPLACE), 
MessageRange.one(message1.getUid()));
@@ -627,7 +625,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         assertThat(retrieveMessageFromStorage(message1)).hasFlags(new 
FlagsBuilder().add(Flags.Flag.SEEN, Flags.Flag.FLAGGED).build());
     }
 
-    @ContractTest
+    @Test
     public void flagsAdditionShouldHaveNoEffectOnStoredFlagsWhenNoop() throws 
MailboxException {
         saveMessages();
         messageMapper.updateFlags(benwaInboxMailbox, new 
FlagsUpdateCalculator(new Flags(Flags.Flag.FLAGGED), FlagsUpdateMode.REPLACE), 
MessageRange.one(message1.getUid()));
@@ -637,7 +635,7 @@ public class MessageMapperTest<T extends MapperProvider> {
             .hasFlags(new FlagsBuilder().add(Flags.Flag.FLAGGED).build());
     }
 
-    @ContractTest
+    @Test
     public void flagsRemovalShouldReturnAnUpdatedFlagHighlightingTheRemoval() 
throws MailboxException {
         saveMessages();
         messageMapper.updateFlags(benwaInboxMailbox, new 
FlagsUpdateCalculator(new FlagsBuilder().add(Flags.Flag.FLAGGED, 
Flags.Flag.SEEN).build(), FlagsUpdateMode.REPLACE), 
MessageRange.one(message1.getUid()));
@@ -652,7 +650,7 @@ public class MessageMapperTest<T extends MapperProvider> {
                     .build());
     }
 
-    @ContractTest
+    @Test
     public void flagsRemovalShouldUpdateStoredMessageFlags() throws 
MailboxException {
         saveMessages();
         messageMapper.updateFlags(benwaInboxMailbox, new 
FlagsUpdateCalculator(new FlagsBuilder().add(Flags.Flag.FLAGGED, 
Flags.Flag.SEEN).build(), FlagsUpdateMode.REPLACE), 
MessageRange.one(message1.getUid()));
@@ -660,26 +658,26 @@ public class MessageMapperTest<T extends MapperProvider> {
         assertThat(retrieveMessageFromStorage(message1)).hasFlags(new 
Flags(Flags.Flag.FLAGGED));
     }
 
-    @ContractTest
+    @Test
     public void updateFlagsOnRangeShouldAffectMessagesContainedInThisRange() 
throws MailboxException {
         saveMessages();
         assertThat(messageMapper.updateFlags(benwaInboxMailbox, new 
FlagsUpdateCalculator(new Flags(Flags.Flag.SEEN), FlagsUpdateMode.REPLACE), 
MessageRange.range(message1.getUid(), message3.getUid())))
             .hasSize(3);
     }
 
-    @ContractTest
+    @Test
     public void 
updateFlagsWithRangeFromShouldAffectMessagesContainedInThisRange() throws 
MailboxException {
         saveMessages();
         assertThat(messageMapper.updateFlags(benwaInboxMailbox, new 
FlagsUpdateCalculator(new Flags(Flags.Flag.SEEN), FlagsUpdateMode.REPLACE), 
MessageRange.from(message3.getUid()))).hasSize(3);
     }
 
-    @ContractTest
+    @Test
     public void updateFlagsWithRangeAllRangeShouldAffectAllMessages() throws 
MailboxException {
         saveMessages();
         assertThat(messageMapper.updateFlags(benwaInboxMailbox, new 
FlagsUpdateCalculator(new Flags(Flags.Flag.SEEN), FlagsUpdateMode.REPLACE), 
MessageRange.all())).hasSize(5);
     }
 
-    @ContractTest
+    @Test
     public void messagePropertiesShouldBeStored() throws Exception {
         PropertyBuilder propBuilder = new PropertyBuilder();
         propBuilder.setMediaType("text");
@@ -695,7 +693,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertProperties(message.getProperties()).containsOnly(propBuilder.toProperties());
     }
     
-    @ContractTest
+    @Test
     public void messagePropertiesShouldBeStoredWhenDuplicateEntries() throws 
Exception {
         PropertyBuilder propBuilder = new PropertyBuilder();
         propBuilder.setProperty(StandardNames.MIME_CONTENT_LANGUAGE_SPACE, 
StandardNames.MIME_CONTENT_LANGUAGE_NAME, "us");
@@ -708,7 +706,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertProperties(message.getProperties()).containsOnly(propBuilder.toProperties());
     }
 
-    @ContractTest
+    @Test
     public void messagePropertiesShouldBeStoredWhenNoProperty() throws 
Exception {
         MailboxMessage messageWithProperties = createMessage(benwaWorkMailbox, 
mapperProvider.generateMessageId(), "Subject: 
messagePropertiesShouldBeStoredWhenNoProperty \n\nBody\n.\n", BODY_START, new 
PropertyBuilder());
         MessageMetaData messageMetaData = messageMapper.add(benwaInboxMailbox, 
messageWithProperties);
@@ -716,7 +714,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         assertThat(message.getProperties()).isEmpty();
     }
 
-    @ContractTest
+    @Test
     public void textualLineCountShouldBeWellStored() throws Exception {
         long textualLineCount = 48L;
         PropertyBuilder propBuilder = new PropertyBuilder();
@@ -728,7 +726,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         assertThat(message.getTextualLineCount()).isEqualTo(textualLineCount);
     }
 
-    @ContractTest
+    @Test
     public void mediaTypeShouldBeWellStored() throws Exception {
         String mediaType = "plain";
         PropertyBuilder propBuilder = new PropertyBuilder();
@@ -740,7 +738,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         assertThat(message.getMediaType()).isEqualTo(mediaType);
     }
 
-    @ContractTest
+    @Test
     public void subTypeShouldBeWellStored() throws Exception {
         String subType = "text";
         PropertyBuilder propBuilder = new PropertyBuilder();
@@ -752,14 +750,14 @@ public class MessageMapperTest<T extends MapperProvider> {
         assertThat(message.getSubType()).isEqualTo(subType);
     }
 
-    @ContractTest
+    @Test
     public void userFlagsShouldBeSupported() throws Exception {
         saveMessages();
         messageMapper.updateFlags(benwaInboxMailbox, new 
FlagsUpdateCalculator(new Flags(USER_FLAG), FlagsUpdateMode.ADD), 
MessageRange.one(message1.getUid()));
         assertThat(retrieveMessageFromStorage(message1)).hasFlags(new 
Flags(USER_FLAG));
     }
 
-    @ContractTest
+    @Test
     public void userFlagsUpdateShouldReturnCorrectUpdatedFlags() throws 
Exception {
         saveMessages();
         long modSeq = messageMapper.getHighestModSeq(benwaInboxMailbox);
@@ -773,7 +771,7 @@ public class MessageMapperTest<T extends MapperProvider> {
                     .build());
     }
 
-    @ContractTest
+    @Test
     public void userFlagsUpdateShouldReturnCorrectUpdatedFlagsWhenNoop() 
throws Exception {
         saveMessages();
 
@@ -790,8 +788,10 @@ public class MessageMapperTest<T extends MapperProvider> {
                     .build());
     }
 
-    @ContractTest
+    @Test
     public void userFlagsUpdateShouldWorkInConcurrentEnvironment() throws 
Exception {
+        
Assume.assumeTrue(mapperProvider.getSupportedCapabilities().contains(MapperProvider.Capabilities.THREAD_SAFE_FLAGS_UPDATE));
+
         saveMessages();
 
         int threadCount = 2;
@@ -813,7 +813,7 @@ public class MessageMapperTest<T extends MapperProvider> {
         
assertThat(messages.next().createFlags().getUserFlags()).hasSize(threadCount * 
updateCount);
     }
 
-    @ContractTest
+    @Test
     public void setFlagsShouldWorkWithConcurrencyWithRemove() throws Exception 
{
         
Assume.assumeTrue(mapperProvider.getSupportedCapabilities().contains(MapperProvider.Capabilities.THREAD_SAFE_FLAGS_UPDATE));
         saveMessages();
@@ -844,14 +844,14 @@ public class MessageMapperTest<T extends MapperProvider> {
         assertThat(messages.next().createFlags().getUserFlags()).isEmpty();
     }
 
-    @ContractTest
+    @Test
     public void messagesShouldBeSavedWithTheirUserFlags() throws Exception {
         MailboxMessage message = 
SimpleMailboxMessage.copy(benwaInboxMailbox.getMailboxId(), message1);
         messageMapper.add(benwaInboxMailbox, message);
         assertThat(retrieveMessageFromStorage(message)).hasFlags(new 
Flags(USER_FLAG));
     }
 
-    @ContractTest
+    @Test
     public void getApplicableFlagShouldUnionAllMessageFlags() throws Exception 
{
         message1.setFlags(new Flags(Flag.ANSWERED));
         message2.setFlags(new Flags(Flag.DELETED));
@@ -864,7 +864,7 @@ public class MessageMapperTest<T extends MapperProvider> {
                 .build());
     }
 
-    @ContractTest
+    @Test
     public void 
getApplicableFlagShouldUnionAllMessageFlagsExceptRecentAndUser() throws 
Exception {
         message1.setFlags(new Flags(Flag.ANSWERED));
         message2.setFlags(new Flags(Flag.DELETED));
@@ -883,7 +883,7 @@ public class MessageMapperTest<T extends MapperProvider> {
                 .build());
     }
 
-    @ContractTest
+    @Test
     public void 
getApplicableFlagShouldHaveEffectWhenUpdateFlagsByAddingThenComputingApplicableFlagsFromCurrentMailboxState()
 throws Exception {
         message1.setFlags(new Flags(Flag.ANSWERED));
         message2.setFlags(new Flags(Flag.DELETED));
@@ -898,7 +898,7 @@ public class MessageMapperTest<T extends MapperProvider> {
                 .build());
     }
 
-    @ContractTest
+    @Test
     public void 
getApplicableFlagShouldHaveNotEffectWhenUpdateFlagsByReplaceThenIncrementalApplicableFlags()
 throws Exception {
         
Assume.assumeTrue(mapperProvider.getSupportedCapabilities().contains(Capabilities.INCREMENTAL_APPLICABLE_FLAGS));
         message1.setFlags(new Flags(Flag.ANSWERED));
@@ -914,7 +914,7 @@ public class MessageMapperTest<T extends MapperProvider> {
                 .build());
     }
 
-    @ContractTest
+    @Test
     public void 
getApplicableFlagShouldHaveEffectWhenUpdateFlagsByReplaceThenComputingApplicableFlagsFromCurrentMailboxState()
 throws Exception {
         
Assume.assumeFalse(mapperProvider.getSupportedCapabilities().contains(Capabilities.INCREMENTAL_APPLICABLE_FLAGS));
         message1.setFlags(new Flags(Flag.ANSWERED));
@@ -930,7 +930,7 @@ public class MessageMapperTest<T extends MapperProvider> {
                 .build());
     }
 
-    @ContractTest
+    @Test
     public void 
getApplicableFlagShouldHaveNotEffectWhenUpdateFlagsByRemoveThenIncrementalApplicableFlags()
 throws Exception {
         
Assume.assumeTrue(mapperProvider.getSupportedCapabilities().contains(Capabilities.INCREMENTAL_APPLICABLE_FLAGS));
         message1.setFlags(new FlagsBuilder().add(Flag.ANSWERED, 
Flag.SEEN).build());
@@ -946,7 +946,7 @@ public class MessageMapperTest<T extends MapperProvider> {
                 .build());
     }
 
-    @ContractTest
+    @Test
     public void 
getApplicableFlagShouldHaveEffectWhenUpdateFlagsByRemoveThenComputingApplicableFlagsFromCurrentMailboxState()
 throws Exception {
         
Assume.assumeFalse(mapperProvider.getSupportedCapabilities().contains(Capabilities.INCREMENTAL_APPLICABLE_FLAGS));
         message1.setFlags(new FlagsBuilder().add(Flag.ANSWERED, 
Flag.SEEN).build());
@@ -962,7 +962,7 @@ public class MessageMapperTest<T extends MapperProvider> {
                 .build());
     }
 
-    @ContractTest
+    @Test
     public void 
getApplicableFlagShouldHaveEffectWhenUnsetMessageFlagThenComputingApplicableFlagsFromCurrentMailboxState()
 throws Exception {
         
Assume.assumeFalse(mapperProvider.getSupportedCapabilities().contains(Capabilities.INCREMENTAL_APPLICABLE_FLAGS));
         message1.setFlags(new FlagsBuilder().add(Flag.ANSWERED, 
Flag.SEEN).build());
@@ -978,7 +978,7 @@ public class MessageMapperTest<T extends MapperProvider> {
                 .build());
     }
 
-    @ContractTest
+    @Test
     public void 
getApplicableFlagShouldHaveNotEffectWhenUnsetMessageFlagThenIncrementalApplicableFlags()
 throws Exception {
         
Assume.assumeTrue(mapperProvider.getSupportedCapabilities().contains(MapperProvider.Capabilities.THREAD_SAFE_FLAGS_UPDATE));
         message1.setFlags(new Flags(Flag.ANSWERED));
@@ -995,7 +995,7 @@ public class MessageMapperTest<T extends MapperProvider> {
     }
 
 
-    @ContractTest
+    @Test
     public void 
getApplicableFlagShouldHaveNotEffectWhenDeleteMessageThenIncrementalApplicableFlags()
 throws Exception {
         
Assume.assumeTrue(mapperProvider.getSupportedCapabilities().contains(Capabilities.INCREMENTAL_APPLICABLE_FLAGS));
         message1.setFlags(new Flags(Flag.ANSWERED));
@@ -1010,7 +1010,7 @@ public class MessageMapperTest<T extends MapperProvider> {
                 .build());
     }
 
-    @ContractTest
+    @Test
     public void 
getApplicableFlagShouldHaveEffectWhenDeleteMessageThenComputingApplicableFlagsFromCurrentMailboxState()
 throws Exception {
         
Assume.assumeFalse(mapperProvider.getSupportedCapabilities().contains(Capabilities.INCREMENTAL_APPLICABLE_FLAGS));
         message1.setFlags(new Flags(Flag.ANSWERED));

http://git-wip-us.apache.org/repos/asf/james-project/blob/e9a73fd1/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMoveTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMoveTest.java
 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMoveTest.java
index f3eae89..ff9460a 100644
--- 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMoveTest.java
+++ 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMoveTest.java
@@ -39,14 +39,12 @@ import 
org.apache.james.mailbox.store.mail.model.impl.SimpleMailbox;
 import org.apache.james.mailbox.store.mail.model.impl.SimpleMailboxMessage;
 import org.junit.After;
 import org.junit.Assume;
+import org.junit.Before;
 import org.junit.Rule;
+import org.junit.Test;
 import org.junit.rules.ExpectedException;
-import org.xenei.junit.contract.Contract;
-import org.xenei.junit.contract.ContractTest;
-import org.xenei.junit.contract.IProducer;
 
-@Contract(MapperProvider.class)
-public class MessageMoveTest<T extends MapperProvider> {
+public abstract class MessageMoveTest {
 
     private final static char DELIMITER = '.';
     private static final int LIMIT = 10;
@@ -55,20 +53,20 @@ public class MessageMoveTest<T extends MapperProvider> {
 
     private MapperProvider mapperProvider;
     private MessageMapper messageMapper;
-    private IProducer<T> producer;
 
     private SimpleMailbox benwaInboxMailbox;
     private SimpleMailbox benwaWorkMailbox;
 
     private SimpleMailboxMessage message1;
 
+    protected abstract MapperProvider createMapperProvider();
+
     @Rule
     public ExpectedException expected = ExpectedException.none();
 
-    @Contract.Inject
-    public final void setProducer(IProducer<T> producer) throws 
MailboxException {
-        this.producer = producer;
-        this.mapperProvider = producer.newInstance();
+    @Before
+    public final void setUp() throws MailboxException {
+        this.mapperProvider = createMapperProvider();
         this.mapperProvider.ensureMapperPrepared();
         
Assume.assumeTrue(mapperProvider.getSupportedCapabilities().contains(MapperProvider.Capabilities.MOVE));
         this.messageMapper = mapperProvider.createMessageMapper();
@@ -80,11 +78,11 @@ public class MessageMoveTest<T extends MapperProvider> {
     }
 
     @After
-    public void tearDown() {
-        producer.cleanUp();
+    public void tearDown() throws MailboxException {
+        mapperProvider.clearMapper();
     }
 
-    @ContractTest
+    @Test
     public void movingAMessageShouldWork() throws Exception {
         messageMapper.add(benwaInboxMailbox, message1);
         message1.setModSeq(messageMapper.getHighestModSeq(benwaInboxMailbox));
@@ -94,7 +92,7 @@ public class MessageMoveTest<T extends MapperProvider> {
         assertThat(retrieveMessageFromStorage(benwaWorkMailbox, 
message1)).isEqualTo(message1);
     }
 
-    @ContractTest
+    @Test
     public void movingAMessageShouldReturnCorrectMetadata() throws Exception {
         messageMapper.add(benwaInboxMailbox, message1);
         message1.setModSeq(messageMapper.getHighestModSeq(benwaInboxMailbox));
@@ -108,7 +106,7 @@ public class MessageMoveTest<T extends MapperProvider> {
         
assertThat(messageMetaData.getModSeq()).isEqualTo(messageMapper.getHighestModSeq(benwaWorkMailbox));
     }
 
-    @ContractTest
+    @Test
     public void movingAMessageShouldNotViolateMessageCount() throws Exception {
         messageMapper.add(benwaInboxMailbox, message1);
         message1.setModSeq(messageMapper.getHighestModSeq(benwaInboxMailbox));
@@ -119,7 +117,7 @@ public class MessageMoveTest<T extends MapperProvider> {
         
assertThat(messageMapper.countMessagesInMailbox(benwaWorkMailbox)).isEqualTo(1);
     }
 
-    @ContractTest
+    @Test
     public void movingAMessageShouldNotViolateUnseenMessageCount() throws 
Exception {
         messageMapper.add(benwaInboxMailbox, message1);
         message1.setModSeq(messageMapper.getHighestModSeq(benwaInboxMailbox));
@@ -130,7 +128,7 @@ public class MessageMoveTest<T extends MapperProvider> {
         
assertThat(messageMapper.countUnseenMessagesInMailbox(benwaWorkMailbox)).isEqualTo(1);
     }
 
-    @ContractTest
+    @Test
     public void movingASeenMessageShouldNotIncrementUnseenMessageCount() 
throws Exception {
         message1.setFlags(new Flags(Flags.Flag.SEEN));
         messageMapper.add(benwaInboxMailbox, message1);

http://git-wip-us.apache.org/repos/asf/james-project/blob/e9a73fd1/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageWithAttachmentMapperTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageWithAttachmentMapperTest.java
 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageWithAttachmentMapperTest.java
index 6844d36..724234c 100644
--- 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageWithAttachmentMapperTest.java
+++ 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageWithAttachmentMapperTest.java
@@ -46,23 +46,19 @@ import 
org.apache.james.mailbox.store.mail.model.impl.SimpleMailbox;
 import org.apache.james.mailbox.store.mail.model.impl.SimpleMailboxMessage;
 import org.junit.After;
 import org.junit.Assume;
+import org.junit.Before;
 import org.junit.Rule;
+import org.junit.Test;
 import org.junit.rules.ExpectedException;
-import org.xenei.junit.contract.Contract;
-import org.xenei.junit.contract.ContractTest;
-import org.xenei.junit.contract.IProducer;
 
 import com.google.common.collect.ImmutableList;
 
-@Contract(MapperProvider.class)
-public class MessageWithAttachmentMapperTest<T extends MapperProvider> {
+public abstract class MessageWithAttachmentMapperTest {
 
     private static final int LIMIT = 10;
     private static final int BODY_START = 16;
     public static final int UID_VALIDITY = 42;
-    public static final String USER_FLAG = "userFlag";
 
-    private IProducer<T> producer;
     private MapperProvider mapperProvider;
     private MessageMapper messageMapper;
     private AttachmentMapper attachmentMapper;
@@ -76,10 +72,11 @@ public class MessageWithAttachmentMapperTest<T extends 
MapperProvider> {
     @Rule
     public ExpectedException expected = ExpectedException.none();
 
-    @Contract.Inject
-    public final void setProducer(IProducer<T> producer) throws 
MailboxException {
-        this.producer = producer;
-        this.mapperProvider = producer.newInstance();
+    protected abstract MapperProvider createMapperProvider();
+
+    @Before
+    public final void setUp() throws MailboxException {
+        this.mapperProvider = createMapperProvider();
         this.mapperProvider.ensureMapperPrepared();
 
         
Assume.assumeTrue(mapperProvider.getSupportedCapabilities().contains(MapperProvider.Capabilities.MESSAGE));
@@ -126,10 +123,10 @@ public class MessageWithAttachmentMapperTest<T extends 
MapperProvider> {
 
     @After
     public void tearDown() throws MailboxException {
-        producer.cleanUp();
+        mapperProvider.clearMapper();
     }
 
-    @ContractTest
+    @Test
     public void 
messagesRetrievedUsingFetchTypeFullShouldHaveAttachmentsLoadedWhenOneAttachment()
 throws MailboxException, IOException{
         saveMessages();
         MessageMapper.FetchType fetchType = MessageMapper.FetchType.Full;
@@ -137,7 +134,7 @@ public class MessageWithAttachmentMapperTest<T extends 
MapperProvider> {
         
assertThat(retrievedMessageIterator.next().getAttachments()).isEqualTo(messageWith1Attachment.getAttachments());
     }
 
-    @ContractTest
+    @Test
     public void 
messagesRetrievedUsingFetchTypeFullShouldHaveAttachmentsLoadedWhenTwoAttachments()
 throws MailboxException, IOException{
         saveMessages();
         MessageMapper.FetchType fetchType = MessageMapper.FetchType.Full;
@@ -145,7 +142,7 @@ public class MessageWithAttachmentMapperTest<T extends 
MapperProvider> {
         
assertThat(retrievedMessageIterator.next().getAttachments()).isEqualTo(messageWith2Attachments.getAttachments());
     }
 
-    @ContractTest
+    @Test
     public void 
messagesRetrievedUsingFetchTypeBodyShouldHaveAttachmentsLoadedWhenOneAttachment()
 throws MailboxException, IOException{
         saveMessages();
         MessageMapper.FetchType fetchType = MessageMapper.FetchType.Body;
@@ -153,7 +150,7 @@ public class MessageWithAttachmentMapperTest<T extends 
MapperProvider> {
         
assertThat(retrievedMessageIterator.next().getAttachments()).isEqualTo(messageWith1Attachment.getAttachments());
     }
 
-    @ContractTest
+    @Test
     public void 
messagesRetrievedUsingFetchTypeHeadersShouldHaveAttachmentsEmptyWhenOneAttachment()
 throws MailboxException, IOException{
         Assume.assumeTrue(mapperProvider.supportPartialAttachmentFetch());
         saveMessages();
@@ -162,7 +159,7 @@ public class MessageWithAttachmentMapperTest<T extends 
MapperProvider> {
         assertThat(retrievedMessageIterator.next().getAttachments()).isEmpty();
     }
 
-    @ContractTest
+    @Test
     public void 
messagesRetrievedUsingFetchTypeMetadataShouldHaveAttachmentsEmptyWhenOneAttachment()
 throws MailboxException, IOException{
         Assume.assumeTrue(mapperProvider.supportPartialAttachmentFetch());
         saveMessages();
@@ -171,7 +168,7 @@ public class MessageWithAttachmentMapperTest<T extends 
MapperProvider> {
         assertThat(retrievedMessageIterator.next().getAttachments()).isEmpty();
     }
 
-    @ContractTest
+    @Test
     public void 
messagesRetrievedUsingFetchTypeFullShouldHaveAttachmentsEmptyWhenNoAttachment() 
throws MailboxException, IOException{
         saveMessages();
         MessageMapper.FetchType fetchType = MessageMapper.FetchType.Full;
@@ -179,7 +176,7 @@ public class MessageWithAttachmentMapperTest<T extends 
MapperProvider> {
         assertThat(retrievedMessageIterator.next().getAttachments()).isEmpty();
     }
     
-    @ContractTest
+    @Test
     public void messagesCanBeRetrievedInMailboxWithRangeTypeOne() throws 
MailboxException, IOException{
         saveMessages();
         MessageMapper.FetchType fetchType = MessageMapper.FetchType.Full;
@@ -187,7 +184,7 @@ public class MessageWithAttachmentMapperTest<T extends 
MapperProvider> {
             .isEqualTo(messageWith1Attachment, fetchType);
     }
 
-    @ContractTest
+    @Test
     public void messagesRetrievedUsingFetchTypeBodyShouldHaveBodyDataLoaded() 
throws MailboxException, IOException{
         saveMessages();
         MessageMapper.FetchType fetchType = MessageMapper.FetchType.Body;


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to