You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ad...@apache.org on 2016/07/07 11:47:46 UTC
[3/4] james-project git commit: JAMES-1716 Saving to draft should not
send message
http://git-wip-us.apache.org/repos/asf/james-project/blob/d5988181/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java
index f28630b..7f32174 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java
@@ -23,14 +23,17 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.time.ZonedDateTime;
import java.util.Optional;
import java.util.function.Function;
+import java.util.function.Supplier;
+import java.util.stream.Stream;
-import org.apache.james.jmap.exceptions.MailboxRoleNotFoundException;
+import org.apache.james.jmap.methods.ValueWithId.MessageWithId;
import org.apache.james.jmap.model.CreationMessage;
import org.apache.james.jmap.model.CreationMessage.DraftEmailer;
import org.apache.james.jmap.model.CreationMessageId;
@@ -38,25 +41,34 @@ import org.apache.james.jmap.model.Message;
import org.apache.james.jmap.model.MessageFactory;
import org.apache.james.jmap.model.MessageId;
import org.apache.james.jmap.model.MessagePreviewGenerator;
+import org.apache.james.jmap.model.MessageProperties.MessageProperty;
+import org.apache.james.jmap.model.SetError;
import org.apache.james.jmap.model.SetMessagesRequest;
import org.apache.james.jmap.model.SetMessagesResponse;
+import org.apache.james.jmap.model.mailbox.Role;
import org.apache.james.jmap.send.MailFactory;
import org.apache.james.jmap.send.MailMetadata;
import org.apache.james.jmap.send.MailSpool;
import org.apache.james.jmap.utils.HtmlTextExtractor;
import org.apache.james.jmap.utils.MailboxBasedHtmlTextExtractor;
+import org.apache.james.jmap.utils.SystemMailboxesProvider;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.mock.MockMailboxSession;
+import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
import org.apache.james.mailbox.store.TestId;
import org.apache.james.mailbox.store.extractor.DefaultTextExtractor;
import org.apache.james.mailbox.store.mail.MessageMapper;
import org.apache.james.mailbox.store.mail.model.Mailbox;
import org.apache.james.mailbox.store.mail.model.MailboxMessage;
+import org.apache.james.mailbox.store.mail.model.impl.SimpleMailbox;
import org.apache.mailet.Mail;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
+import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
@@ -64,11 +76,22 @@ public class SetMessagesCreationProcessorTest {
private MessageFactory messageFactory;
- private static final Message FAKE_MESSAGE = Message.builder()
- .id(MessageId.of("user|outbox|1"))
+ private static final String USER = "user@example.com";
+ private static final String OUTBOX = "outbox";
+ private static final TestId OUTBOX_ID = TestId.of(12345);
+ private static final String DRAFTS = "drafts";
+ private static final TestId DRAFTS_ID = TestId.of(12);
+ private static final String OUTBOX_MESSAGE_ID = Joiner.on('|').join(USER, OUTBOX, "12345");
+ private static final String NAMESPACE = "#private";
+ private static final long UID_VALIDITY = 0l;
+ private final Mailbox outbox = new SimpleMailbox(new MailboxPath(NAMESPACE, USER, OUTBOX), UID_VALIDITY, OUTBOX_ID);
+ private final Mailbox drafts = new SimpleMailbox(new MailboxPath(NAMESPACE, USER, DRAFTS), UID_VALIDITY, DRAFTS_ID);
+
+ private static final Message FAKE_OUTBOX_MESSAGE = Message.builder()
+ .id(MessageId.of(OUTBOX_MESSAGE_ID))
.blobId("anything")
.threadId("anything")
- .mailboxIds(ImmutableList.of("mailboxId"))
+ .mailboxId(OUTBOX_ID.serialize())
.headers(ImmutableMap.of())
.subject("anything")
.size(0)
@@ -83,34 +106,60 @@ public class SetMessagesCreationProcessorTest {
messageFactory = new MessageFactory(messagePreview);
}
+ private final CreationMessage.Builder creationMessageBuilder = CreationMessage.builder()
+ .from(DraftEmailer.builder().name("alice").email("alice@example.com").build())
+ .to(ImmutableList.of(DraftEmailer.builder().name("bob").email("bob@example.com").build()))
+ .subject("Hey! ");
+
+ private final CreationMessageId creationMessageId = CreationMessageId.of("dlkja");
+
+ private final SetMessagesRequest createMessageInOutbox = SetMessagesRequest.builder()
+ .create(
+ creationMessageId,
+ creationMessageBuilder
+ .mailboxId(OUTBOX_ID.serialize())
+ .from(DraftEmailer.builder().name("user").email("user@example.com").build())
+ .build())
+ .build();
+
+ private final Optional<Mailbox> optionalOutbox = Optional.of(outbox);
+ private final Optional<Mailbox> optionalDrafts = Optional.of(drafts);
+
+ private MessageMapper mockMapper;
+ private MailboxSessionMapperFactory stubSessionMapperFactory;
+ private MailSpool mockedMailSpool;
+ private MailFactory mockedMailFactory;
+ private SystemMailboxesProvider fakeSystemMailboxesProvider;
+ private MockMailboxSession session;
+ private MIMEMessageConverter mimeMessageConverter;
+
+ @Before
+ public void setUp() throws MailboxException {
+ mockMapper = mock(MessageMapper.class);
+ stubSessionMapperFactory = mock(MailboxSessionMapperFactory.class);
+ when(stubSessionMapperFactory.createMessageMapper(any(MailboxSession.class)))
+ .thenReturn(mockMapper);
+ mockedMailSpool = mock(MailSpool.class);
+ mockedMailFactory = mock(MailFactory.class);
+
+ fakeSystemMailboxesProvider = new TestSystemMailboxesProvider(() -> optionalOutbox, () -> optionalDrafts);
+ session = new MockMailboxSession(USER);
+ mimeMessageConverter = new MIMEMessageConverter();
+ }
+
@Test
public void processShouldReturnEmptyCreatedWhenRequestHasEmptyCreate() {
- SetMessagesCreationProcessor sut = new SetMessagesCreationProcessor(null, null, null, null, null, null, messageFactory) {
- @Override
- protected Optional<Mailbox> getOutbox(MailboxSession session) throws MailboxException {
- Mailbox fakeOutbox = (Mailbox) mock(Mailbox.class);
- when(fakeOutbox.getName()).thenReturn("outbox");
- return Optional.of(fakeOutbox);
- }
- };
+ SetMessagesCreationProcessor sut = new SetMessagesCreationProcessor(
+ stubSessionMapperFactory, mimeMessageConverter, mockedMailSpool, mockedMailFactory, messageFactory, fakeSystemMailboxesProvider);
+
SetMessagesRequest requestWithEmptyCreate = SetMessagesRequest.builder().build();
- SetMessagesResponse result = sut.process(requestWithEmptyCreate, buildStubbedSession());
+ SetMessagesResponse result = sut.process(requestWithEmptyCreate, session);
assertThat(result.getCreated()).isEmpty();
assertThat(result.getNotCreated()).isEmpty();
}
- private MailboxSession buildStubbedSession() {
- MailboxSession.User stubUser = mock(MailboxSession.User.class);
- when(stubUser.getUserName()).thenReturn("alice@example.com");
- MailboxSession stubSession = mock(MailboxSession.class);
- when(stubSession.getPathDelimiter()).thenReturn('.');
- when(stubSession.getUser()).thenReturn(stubUser);
- when(stubSession.getPersonalSpace()).thenReturn("#private");
- return stubSession;
- }
-
@Test
public void processShouldReturnNonEmptyCreatedWhenRequestHasNonEmptyCreate() throws MailboxException {
// Given
@@ -119,106 +168,139 @@ public class SetMessagesCreationProcessorTest {
when(mockSessionMapperFactory.createMessageMapper(any(MailboxSession.class)))
.thenReturn(stubMapper);
- SetMessagesCreationProcessor sut = new SetMessagesCreationProcessor(null, null, mockSessionMapperFactory, null, null, null, messageFactory) {
+ SetMessagesCreationProcessor sut = new SetMessagesCreationProcessor(
+ mockSessionMapperFactory, mimeMessageConverter, mockedMailSpool, mockedMailFactory, messageFactory, fakeSystemMailboxesProvider) {
@Override
- protected MessageWithId<Message> createMessageInOutboxAndSend(MessageWithId.CreationMessageEntry createdEntry, MailboxSession session, Mailbox outbox, Function<Long, MessageId> buildMessageIdFromUid) {
- return new MessageWithId<>(createdEntry.getCreationId(), FAKE_MESSAGE);
- }
- @Override
- protected Optional<Mailbox> getOutbox(MailboxSession session) throws MailboxException {
- Mailbox fakeOutbox = mock(Mailbox.class);
- when(fakeOutbox.getName()).thenReturn("outbox");
- return Optional.of(fakeOutbox);
+ protected MessageWithId createMessageInOutboxAndSend(ValueWithId.CreationMessageEntry createdEntry, MailboxSession session, Mailbox outbox, Function<Long, MessageId> buildMessageIdFromUid) {
+ return new MessageWithId(createdEntry.getCreationId(), FAKE_OUTBOX_MESSAGE);
}
};
// When
- SetMessagesResponse result = sut.process(buildFakeCreationRequest(), buildStubbedSession());
+ SetMessagesResponse result = sut.process(createMessageInOutbox, session);
// Then
assertThat(result.getCreated()).isNotEmpty();
assertThat(result.getNotCreated()).isEmpty();
}
- @Test(expected = MailboxRoleNotFoundException.class)
- public void processShouldThrowWhenOutboxNotFound() {
+ @Ignore("JAMES-1716 : should report an error")
+ @Test
+ public void processShouldReturnErrorWhenOutboxNotFound() {
// Given
- SetMessagesCreationProcessor sut = new SetMessagesCreationProcessor(null, null, null, null, null, null, messageFactory) {
- @Override
- protected Optional<Mailbox> getOutbox(MailboxSession session) throws MailboxException {
- return Optional.empty();
- }
- };
+ TestSystemMailboxesProvider doNotProvideOutbox = new TestSystemMailboxesProvider(Optional::empty, () -> optionalDrafts);
+ SetMessagesCreationProcessor sut = new SetMessagesCreationProcessor(
+ stubSessionMapperFactory, mimeMessageConverter, mockedMailSpool, mockedMailFactory, messageFactory, doNotProvideOutbox);
// When
- sut.process(buildFakeCreationRequest(), null);
+ SetMessagesResponse actual = sut.process(createMessageInOutbox, session);
+
+ assertThat(actual.getNotCreated()).hasSize(1).containsKey(creationMessageId);
+ assertThat(actual.getNotCreated().get(creationMessageId).getType()).isEqualTo("invalidProperties");
+ assertThat(actual.getNotCreated().get(creationMessageId).getDescription()).contains("target mailbox does not exists");
}
@Test
public void processShouldCallMessageMapperWhenRequestHasNonEmptyCreate() throws MailboxException {
// Given
- Mailbox fakeOutbox = mock(Mailbox.class);
- MessageMapper mockMapper = mock(MessageMapper.class);
- MailboxSessionMapperFactory stubSessionMapperFactory = mock(MailboxSessionMapperFactory.class);
- when(stubSessionMapperFactory.createMessageMapper(any(MailboxSession.class)))
- .thenReturn(mockMapper);
- MailSpool mockedMailSpool = mock(MailSpool.class);
- MailFactory mockedMailFactory = mock(MailFactory.class);
-
- SetMessagesCreationProcessor sut = new SetMessagesCreationProcessor(null, null,
- stubSessionMapperFactory, new MIMEMessageConverter(), mockedMailSpool, mockedMailFactory, messageFactory) {
- @Override
- protected Optional<Mailbox> getOutbox(MailboxSession session) throws MailboxException {
- TestId stubMailboxId = mock(TestId.class);
- when(stubMailboxId.serialize()).thenReturn("user|outbox|12345");
- when(fakeOutbox.getMailboxId()).thenReturn(stubMailboxId);
- when(fakeOutbox.getName()).thenReturn("outbox");
- return Optional.of(fakeOutbox);
- }
- };
+ SetMessagesCreationProcessor sut = new SetMessagesCreationProcessor(
+ stubSessionMapperFactory, mimeMessageConverter, mockedMailSpool, mockedMailFactory, messageFactory, fakeSystemMailboxesProvider);
// When
- sut.process(buildFakeCreationRequest(), buildStubbedSession());
+ sut.process(createMessageInOutbox, session);
// Then
- verify(mockMapper).add(eq(fakeOutbox), any(MailboxMessage.class));
+ verify(mockMapper).add(eq(outbox), any(MailboxMessage.class));
}
@Test
public void processShouldSendMailWhenRequestHasNonEmptyCreate() throws Exception {
// Given
- Mailbox fakeOutbox = mock(Mailbox.class);
- MessageMapper mockMapper = mock(MessageMapper.class);
- MailboxSessionMapperFactory stubSessionMapperFactory = mock(MailboxSessionMapperFactory.class);
- when(stubSessionMapperFactory.createMessageMapper(any(MailboxSession.class)))
- .thenReturn(mockMapper);
- MailSpool mockedMailSpool = mock(MailSpool.class);
- MailFactory mockedMailFactory = mock(MailFactory.class);
-
- SetMessagesCreationProcessor sut = new SetMessagesCreationProcessor(null, null,
- stubSessionMapperFactory, new MIMEMessageConverter(), mockedMailSpool, mockedMailFactory, messageFactory) {
- @Override
- protected Optional<Mailbox> getOutbox(MailboxSession session) throws MailboxException {
- TestId stubMailboxId = mock(TestId.class);
- when(stubMailboxId.serialize()).thenReturn("user|outbox|12345");
- when(fakeOutbox.getMailboxId()).thenReturn(stubMailboxId);
- when(fakeOutbox.getName()).thenReturn("outbox");
- return Optional.of(fakeOutbox);
- }
- };
+ SetMessagesCreationProcessor sut = new SetMessagesCreationProcessor(
+ stubSessionMapperFactory, mimeMessageConverter, mockedMailSpool, mockedMailFactory, messageFactory, fakeSystemMailboxesProvider);
// When
- sut.process(buildFakeCreationRequest(), buildStubbedSession());
+ sut.process(createMessageInOutbox, session);
// Then
verify(mockedMailSpool).send(any(Mail.class), any(MailMetadata.class));
}
- private SetMessagesRequest buildFakeCreationRequest() {
- return SetMessagesRequest.builder()
- .create(ImmutableMap.of(CreationMessageId.of("anything-really"), CreationMessage.builder()
- .from(DraftEmailer.builder().name("alice").email("alice@example.com").build())
- .to(ImmutableList.of(DraftEmailer.builder().name("bob").email("bob@example.com").build()))
- .subject("Hey! ")
- .mailboxIds(ImmutableList.of("mailboxId"))
- .build()
- ))
+ @Test
+ public void processShouldNotSpoolMailWhenNotSavingToOutbox() throws Exception {
+ // Given
+ SetMessagesCreationProcessor sut = new SetMessagesCreationProcessor(
+ stubSessionMapperFactory, mimeMessageConverter, mockedMailSpool, mockedMailFactory, messageFactory, fakeSystemMailboxesProvider);
+ // When
+ SetMessagesRequest notInOutboxCreationRequest =
+ SetMessagesRequest.builder()
+ .create(CreationMessageId.of("anything-really"),
+ creationMessageBuilder.mailboxId("any-id-but-outbox-id")
+ .build())
+ .build();
+
+ sut.process(notInOutboxCreationRequest, session);
+
+ // Then
+ verify(mockedMailSpool, never()).send(any(Mail.class), any(MailMetadata.class));
+ }
+
+ @Test
+ public void processShouldReturnNotImplementedErrorWhenSavingToDrafts() {
+ // Given
+ SetMessagesCreationProcessor sut = new SetMessagesCreationProcessor(
+ stubSessionMapperFactory, mimeMessageConverter, mockedMailSpool, mockedMailFactory, messageFactory, fakeSystemMailboxesProvider);
+
+ CreationMessageId creationMessageId = CreationMessageId.of("anything-really");
+ SetMessagesRequest createMessageInDrafts = SetMessagesRequest.builder()
+ .create(
+ creationMessageId, creationMessageBuilder.mailboxId(DRAFTS_ID.serialize()).build())
+ .build();
+
+ // When
+ SetMessagesResponse actual = sut.process(createMessageInDrafts, session);
+
+ // Then
+ assertThat(actual.getNotCreated()).hasSize(1).containsEntry(creationMessageId, SetError.builder()
+ .type("invalidProperties")
+ .properties(MessageProperty.mailboxIds)
+ .description("Not yet implemented")
+ .build());
+ }
+
+ @Test
+ public void processShouldNotSendWhenSavingToDrafts() throws Exception {
+ // Given
+ SetMessagesCreationProcessor sut = new SetMessagesCreationProcessor(
+ stubSessionMapperFactory, mimeMessageConverter, mockedMailSpool, mockedMailFactory, messageFactory, fakeSystemMailboxesProvider);
+ // When
+ CreationMessageId creationMessageId = CreationMessageId.of("anything-really");
+ SetMessagesRequest createMessageInDrafts = SetMessagesRequest.builder()
+ .create(
+ creationMessageId, creationMessageBuilder.mailboxId(DRAFTS_ID.serialize()).build())
.build();
+ sut.process(createMessageInDrafts, session);
+
+ // Then
+ verify(mockedMailSpool, never()).send(any(Mail.class), any(MailMetadata.class));
}
-}
\ No newline at end of file
+
+
+ public static class TestSystemMailboxesProvider implements SystemMailboxesProvider {
+
+ private final Supplier<Optional<Mailbox>> outboxSupplier;
+ private final Supplier<Optional<Mailbox>> draftsSupplier;
+
+ private TestSystemMailboxesProvider(Supplier<Optional<Mailbox>> outboxSupplier,
+ Supplier<Optional<Mailbox>> draftsSupplier) {
+ this.outboxSupplier = outboxSupplier;
+ this.draftsSupplier = draftsSupplier;
+ }
+
+ public Stream<Mailbox> listMailboxes(Role aRole, MailboxSession session) {
+ if (aRole.equals(Role.OUTBOX)) {
+ return outboxSupplier.get().map(o -> Stream.of(o)).orElse(Stream.empty());
+ } else if (aRole.equals(Role.DRAFTS)) {
+ return draftsSupplier.get().map(d -> Stream.of(d)).orElse(Stream.empty());
+ }
+ return Stream.empty();
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d5988181/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/SetErrorTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/SetErrorTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/SetErrorTest.java
index db11c27..24e873f 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/SetErrorTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/SetErrorTest.java
@@ -24,6 +24,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.apache.james.jmap.model.MessageProperties.MessageProperty;
import java.util.Optional;
+import java.util.Set;
import org.junit.Test;
import com.google.common.collect.ImmutableSet;
@@ -85,7 +86,7 @@ public class SetErrorTest {
@Test
public void buildShouldDefaultToEmptyWhenPropertiesNull() {
SetError result = SetError.builder()
- .type("a type").description("a description").properties(null)
+ .type("a type").description("a description").properties((Set<MessageProperty>)null)
.build();
assertThat(result.getProperties()).isPresent();
@@ -98,10 +99,33 @@ public class SetErrorTest {
SetError result = SetError.builder()
.type("a type").description("a description")
.properties(nonNullProperty)
- .properties(null)
+ .properties((Set<MessageProperty>)null)
.build();
assertThat(result.getProperties()).isPresent();
assertThat(result.getProperties().get()).isEqualTo(nonNullProperty);
}
+
+ public void buildShouldDefaultToEmptyWhenPropertiesWithNoArgument() {
+ SetError result = SetError.builder()
+ .type("a type").description("a description").properties()
+ .build();
+
+ assertThat(result.getProperties()).isPresent();
+ assertThat(result.getProperties().get()).isEmpty();
+ }
+
+ @Test
+ public void buildShouldBeIdempotentWhenPropertiesWithNoArgument() {
+ ImmutableSet<MessageProperty> nonNullProperty = ImmutableSet.of(MessageProperty.from);
+ SetError result = SetError.builder()
+ .type("a type").description("a description")
+ .properties(nonNullProperty)
+ .properties()
+ .build();
+
+ assertThat(result.getProperties()).isPresent();
+ assertThat(result.getProperties().get()).isEqualTo(nonNullProperty);
+ }
+
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/james-project/blob/d5988181/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/SetMessagesRequestTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/SetMessagesRequestTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/SetMessagesRequestTest.java
index 7be03e1..907b76f 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/SetMessagesRequestTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/SetMessagesRequestTest.java
@@ -48,7 +48,7 @@ public class SetMessagesRequestTest {
public void builderShouldWork() {
ImmutableList<MessageId> destroy = ImmutableList.of(MessageId.of("user|destroy|1"));
- SetMessagesRequest expected = new SetMessagesRequest(Optional.empty(), Optional.empty(), ImmutableMap.of(), ImmutableMap.of(), destroy);
+ SetMessagesRequest expected = new SetMessagesRequest(Optional.empty(), Optional.empty(), ImmutableList.of(), ImmutableMap.of(), destroy);
SetMessagesRequest setMessagesRequest = SetMessagesRequest.builder()
.accountId(null)
http://git-wip-us.apache.org/repos/asf/james-project/blob/d5988181/server/protocols/jmap/src/test/java/org/apache/james/jmap/send/PostDequeueDecoratorTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/send/PostDequeueDecoratorTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/send/PostDequeueDecoratorTest.java
index 7e72b64..223e426 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/send/PostDequeueDecoratorTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/send/PostDequeueDecoratorTest.java
@@ -29,9 +29,9 @@ import java.util.Iterator;
import javax.mail.Flags;
+import org.apache.james.jmap.exceptions.MailboxRoleNotFoundException;
import org.apache.james.jmap.model.MessageId;
import org.apache.james.jmap.send.exception.MailShouldBeInOutboxException;
-import org.apache.james.jmap.send.exception.MailboxRoleNotFoundException;
import org.apache.james.jmap.send.exception.MessageIdNotFoundException;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageManager;
http://git-wip-us.apache.org/repos/asf/james-project/blob/d5988181/server/protocols/jmap/src/test/java/org/apache/james/jmap/utils/SystemMailboxesProviderImplTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/utils/SystemMailboxesProviderImplTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/utils/SystemMailboxesProviderImplTest.java
new file mode 100644
index 0000000..3ee868d
--- /dev/null
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/utils/SystemMailboxesProviderImplTest.java
@@ -0,0 +1,33 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+
+package org.apache.james.jmap.utils;
+
+import org.junit.Ignore;
+import org.junit.Test;
+
+public class SystemMailboxesProviderImplTest {
+
+ @Ignore("1716 this class needs a test suite")
+ @Test
+ public void missingTestSuite() {
+ //TODO this class needs a test suite
+ }
+
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org