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 bt...@apache.org on 2018/08/21 10:17:42 UTC
[16/17] james-project git commit: JAMES-2522 Moving and renaming
classes
http://git-wip-us.apache.org/repos/asf/james-project/blob/0084a26e/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java
index 26acc87..4f492a5 100644
--- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java
+++ b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java
@@ -49,9 +49,10 @@ import org.apache.james.dnsservice.api.DNSService;
import org.apache.james.domainlist.api.DomainList;
import org.apache.james.domainlist.memory.MemoryDomainList;
import org.apache.james.filesystem.api.FileSystem;
-import org.apache.james.filesystem.api.mock.MockFileSystem;
import org.apache.james.mailrepository.api.MailRepositoryStore;
-import org.apache.james.mailrepository.mock.MockMailRepositoryStore;
+import org.apache.james.mailrepository.memory.MemoryMailRepositoryProvider;
+import org.apache.james.mailrepository.memory.MemoryMailRepositoryStore;
+import org.apache.james.mailrepository.memory.MemoryMailRepositoryUrlStore;
import org.apache.james.metrics.api.Metric;
import org.apache.james.protocols.api.utils.ProtocolServerUtils;
import org.apache.james.protocols.lib.mock.MockProtocolHandlerLoader;
@@ -61,6 +62,9 @@ import org.apache.james.queue.api.RawMailQueueItemDecoratorFactory;
import org.apache.james.queue.memory.MemoryMailQueueFactory;
import org.apache.james.rrt.api.RecipientRewriteTable;
import org.apache.james.rrt.memory.MemoryRecipientRewriteTable;
+import org.apache.james.server.core.configuration.Configuration;
+import org.apache.james.server.core.configuration.FileConfigurationProvider;
+import org.apache.james.server.core.filesystem.FileSystemImpl;
import org.apache.james.smtpserver.netty.SMTPServer;
import org.apache.james.smtpserver.netty.SmtpMetricsImpl;
import org.apache.james.user.api.UsersRepository;
@@ -75,6 +79,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Sets;
public class SMTPServerTest {
@@ -167,9 +172,9 @@ public class SMTPServerTest {
protected HashedWheelTimer hashedWheelTimer;
protected final MemoryUsersRepository usersRepository = MemoryUsersRepository.withoutVirtualHosting();
protected AlterableDNSServer dnsServer;
- protected MockMailRepositoryStore store;
- protected MockFileSystem fileSystem;
- protected DNSService dnsService;
+ protected MemoryMailRepositoryStore mailRepositoryStore;
+ protected FileSystemImpl fileSystem;
+ protected Configuration configuration;
protected MockProtocolHandlerLoader chain;
protected MemoryMailQueueFactory queueFactory;
protected MemoryMailQueueFactory.MemoryMailQueue queue;
@@ -178,6 +183,8 @@ public class SMTPServerTest {
@Before
public void setUp() throws Exception {
+ createMailRepositoryStore();
+
setUpFakeLoader();
// slf4j can't set programmatically any log level. It's just a facade
// log.setLevel(SimpleLog.LOG_LEVEL_ALL);
@@ -186,6 +193,19 @@ public class SMTPServerTest {
setUpSMTPServer();
}
+ protected void createMailRepositoryStore() throws Exception {
+ configuration = Configuration.builder()
+ .workingDirectory("../")
+ .configurationFromClasspath()
+ .build();
+ fileSystem = new FileSystemImpl(configuration.directories());
+ MemoryMailRepositoryUrlStore urlStore = new MemoryMailRepositoryUrlStore();
+ mailRepositoryStore = new MemoryMailRepositoryStore(urlStore, Sets.newHashSet(new MemoryMailRepositoryProvider()));
+ mailRepositoryStore.configure(new FileConfigurationProvider(fileSystem, configuration)
+ .getConfiguration("mailrepositorystore"));
+ mailRepositoryStore.init();
+ }
+
protected SMTPServer createSMTPServer(SmtpMetricsImpl smtpMetrics) {
return new SMTPServer(smtpMetrics);
}
@@ -221,10 +241,8 @@ public class SMTPServerTest {
dnsServer = new AlterableDNSServer();
chain.put("dnsservice", DNSService.class, dnsServer);
- store = new MockMailRepositoryStore();
- chain.put("mailStore", MailRepositoryStore.class, store);
- fileSystem = new MockFileSystem();
-
+ chain.put("mailStore", MailRepositoryStore.class, mailRepositoryStore);
+
chain.put("fileSystem", FileSystem.class, fileSystem);
MemoryRecipientRewriteTable rewriteTable = new MemoryRecipientRewriteTable();
http://git-wip-us.apache.org/repos/asf/james-project/blob/0084a26e/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPTestConfiguration.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPTestConfiguration.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPTestConfiguration.java
index 565d550..fa2831d 100644
--- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPTestConfiguration.java
+++ b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPTestConfiguration.java
@@ -150,7 +150,7 @@ public class SMTPTestConfiguration extends DefaultConfigurationBuilder {
addProperty("addressBracketsEnforcement", addressBracketsEnforcement);
addProperty("tls.[@startTLS]", startTLS);
- addProperty("tls.keystore", "file://conf/test_keystore");
+ addProperty("tls.keystore", "test_keystore");
addProperty("tls.secret", "jamestest");
if (verifyIdentity) {
addProperty("verifyIdentity", verifyIdentity);
http://git-wip-us.apache.org/repos/asf/james-project/blob/0084a26e/server/protocols/protocols-smtp/src/test/resources/mailrepositorystore.xml
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/test/resources/mailrepositorystore.xml b/server/protocols/protocols-smtp/src/test/resources/mailrepositorystore.xml
new file mode 100644
index 0000000..ed3e003
--- /dev/null
+++ b/server/protocols/protocols-smtp/src/test/resources/mailrepositorystore.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+
+<!--
+ 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.
+ -->
+
+<mailrepositorystore>
+ <mailrepositories>
+ <mailrepository class="org.apache.james.mailrepository.memory.MemoryMailRepository">
+ <protocols>
+ <protocol>memory</protocol>
+ </protocols>
+ </mailrepository>
+ </mailrepositories>
+</mailrepositorystore>
http://git-wip-us.apache.org/repos/asf/james-project/blob/0084a26e/server/protocols/webadmin/webadmin-mailrepository/pom.xml
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailrepository/pom.xml b/server/protocols/webadmin/webadmin-mailrepository/pom.xml
index 4d120ec..9c43eec 100644
--- a/server/protocols/webadmin/webadmin-mailrepository/pom.xml
+++ b/server/protocols/webadmin/webadmin-mailrepository/pom.xml
@@ -44,6 +44,11 @@
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
+ <artifactId>james-server-data-memory</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>${james.groupId}</groupId>
<artifactId>james-server-mailrepository-api</artifactId>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/0084a26e/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/routes/MailRepositoriesRoutesTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/routes/MailRepositoriesRoutesTest.java b/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/routes/MailRepositoriesRoutesTest.java
index 77b16b3..6cee9b7 100644
--- a/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/routes/MailRepositoriesRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/routes/MailRepositoriesRoutesTest.java
@@ -29,19 +29,12 @@ import static org.apache.james.webadmin.WebAdminServer.NO_CONFIGURATION;
import static org.assertj.core.api.Assertions.assertThat;
import static org.hamcrest.Matchers.contains;
import static org.hamcrest.Matchers.containsInAnyOrder;
-import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.hasSize;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.isEmptyOrNullString;
import static org.hamcrest.Matchers.notNullValue;
import static org.hamcrest.Matchers.nullValue;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.Mockito.when;
import java.nio.charset.StandardCharsets;
import java.time.ZoneId;
@@ -50,8 +43,6 @@ import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
-import java.util.Optional;
-import java.util.stream.Stream;
import javax.mail.internet.MimeMessage;
@@ -59,15 +50,21 @@ import org.apache.james.core.MailAddress;
import org.apache.james.core.builder.MimeMessageBuilder;
import org.apache.james.core.builder.MimeMessageBuilder.BodyPartBuilder;
import org.apache.james.mailrepository.api.MailKey;
+import org.apache.james.mailrepository.api.MailRepository;
import org.apache.james.mailrepository.api.MailRepositoryPath;
-import org.apache.james.mailrepository.api.MailRepositoryStore;
import org.apache.james.mailrepository.api.MailRepositoryUrl;
import org.apache.james.mailrepository.memory.MemoryMailRepository;
+import org.apache.james.mailrepository.memory.MemoryMailRepositoryProvider;
+import org.apache.james.mailrepository.memory.MemoryMailRepositoryStore;
+import org.apache.james.mailrepository.memory.MemoryMailRepositoryUrlStore;
import org.apache.james.metrics.api.NoopMetricFactory;
import org.apache.james.queue.api.MailQueueFactory;
import org.apache.james.queue.api.ManageableMailQueue;
import org.apache.james.queue.api.RawMailQueueItemDecoratorFactory;
import org.apache.james.queue.memory.MemoryMailQueueFactory;
+import org.apache.james.server.core.configuration.Configuration;
+import org.apache.james.server.core.configuration.FileConfigurationProvider;
+import org.apache.james.server.core.filesystem.FileSystemImpl;
import org.apache.james.task.MemoryTaskManager;
import org.apache.james.util.ClassLoaderUtils;
import org.apache.james.webadmin.Constants;
@@ -87,10 +84,8 @@ import org.eclipse.jetty.http.HttpStatus;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.mockito.stubbing.Answer;
-import com.github.steveash.guavate.Guavate;
-import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Sets;
import io.restassured.RestAssured;
import io.restassured.builder.RequestSpecBuilder;
@@ -99,26 +94,24 @@ import io.restassured.parsing.Parser;
public class MailRepositoriesRoutesTest {
- private static final MailRepositoryUrl URL_MY_REPO = MailRepositoryUrl.from("url://myRepo");
+ private static final MailRepositoryUrl URL_MY_REPO = MailRepositoryUrl.from("memory://myRepo");
private static final MailRepositoryPath PATH_MY_REPO = MailRepositoryPath.from("myRepo");
private static final String PATH_ESCAPED_MY_REPO = "myRepo";
private static final String MY_REPO_MAILS = "myRepo/mails";
private static final String CUSTOM_QUEUE = "customQueue";
private static final String NAME_1 = "name1";
private static final String NAME_2 = "name2";
- private static final Answer<?> RETURN_NO_MAIL_REPOSITORY = (invocation) -> Stream.empty();
private WebAdminServer webAdminServer;
- private MailRepositoryStore mailRepositoryStore;
- private MemoryMailRepository mailRepository;
- private Answer<?> returnMailRepository;
+ private MemoryMailRepositoryStore mailRepositoryStore;
private ManageableMailQueue spoolQueue;
private ManageableMailQueue customQueue;
+ private FileSystemImpl fileSystem;
+ private Configuration configuration;
+
@Before
public void setUp() throws Exception {
- mailRepositoryStore = mock(MailRepositoryStore.class);
- mailRepository = new MemoryMailRepository();
- returnMailRepository = (invocation) -> Stream.of(mailRepository);
+ createMailRepositoryStore();
MemoryTaskManager taskManager = new MemoryTaskManager();
JsonTransformer jsonTransformer = new JsonTransformer();
@@ -150,59 +143,45 @@ public class MailRepositoriesRoutesTest {
}
@Test
- public void putMailRepositoryShouldReturnOkWhenRepositoryIsCreated() throws Exception {
+ public void putMailRepositoryShouldReturnOkWhenRepositoryIsCreated() {
given()
- .params("protocol", "url")
+ .params("protocol", "memory")
.when()
.put(PATH_ESCAPED_MY_REPO)
.then()
.statusCode(HttpStatus.NO_CONTENT_204);
- verify(mailRepositoryStore).create(URL_MY_REPO);
- verifyNoMoreInteractions(mailRepositoryStore);
+ assertThat(mailRepositoryStore.get(URL_MY_REPO))
+ .isNotEmpty()
+ .containsInstanceOf(MemoryMailRepository.class);
}
@Test
public void putMailRepositoryShouldReturnOkWhenRepositoryAlreadyExists() throws Exception {
given()
- .params("protocol", "url")
+ .params("protocol", "memory")
.when()
.put(PATH_ESCAPED_MY_REPO)
.then()
.statusCode(HttpStatus.NO_CONTENT_204);
given()
- .params("protocol", "url")
+ .params("protocol", "memory")
.when()
.put(PATH_ESCAPED_MY_REPO)
.then()
.statusCode(HttpStatus.NO_CONTENT_204);
- verify(mailRepositoryStore, times(2)).create(URL_MY_REPO);
- verifyNoMoreInteractions(mailRepositoryStore);
- }
-
- @Test
- public void putMailRepositoryShouldReturnServerErrorWhenCannotCreateRepository() throws Exception {
- when(mailRepositoryStore.create(any()))
- .thenThrow(new MailRepositoryStore.MailRepositoryStoreException("Error while selecting repository url://myRepo"));
+ assertThat(mailRepositoryStore.get(URL_MY_REPO))
+ .isNotEmpty()
+ .containsInstanceOf(MemoryMailRepository.class);
- given()
- .params("protocol", "url")
- .when()
- .put(PATH_ESCAPED_MY_REPO)
- .then()
- .statusCode(HttpStatus.INTERNAL_SERVER_ERROR_500)
- .body("statusCode", is(500))
- .body("type", is(ErrorResponder.ErrorType.SERVER_ERROR.getType()))
- .body("message", is("Error while creating a mail repository with path 'myRepo' and protocol 'url'"))
- .body("details", is("Error while selecting repository url://myRepo"));
+ assertThat(mailRepositoryStore.getByPath(PATH_MY_REPO))
+ .hasSize(1);
}
@Test
public void getMailRepositoriesShouldReturnEmptyWhenEmpty() {
- when(mailRepositoryStore.getPaths()).thenAnswer(RETURN_NO_MAIL_REPOSITORY);
-
List<Object> mailRepositories =
when()
.get()
@@ -218,9 +197,8 @@ public class MailRepositoriesRoutesTest {
}
@Test
- public void getMailRepositoriesShouldReturnRepositoryWhenOne() {
- when(mailRepositoryStore.getPaths())
- .thenAnswer((invocation) -> Stream.of(PATH_MY_REPO));
+ public void getMailRepositoriesShouldReturnRepositoryWhenOne() throws Exception {
+ mailRepositoryStore.create(URL_MY_REPO);
when()
.get()
@@ -232,10 +210,9 @@ public class MailRepositoriesRoutesTest {
}
@Test
- public void getMailRepositoriesShouldReturnTwoRepositoriesWhenTwo() {
- ImmutableList<MailRepositoryPath> myRepositories = ImmutableList.of(PATH_MY_REPO, MailRepositoryPath.from("mySecondRepo"));
- when(mailRepositoryStore.getPaths())
- .thenReturn(myRepositories.stream());
+ public void getMailRepositoriesShouldReturnTwoRepositoriesWhenTwo() throws Exception {
+ mailRepositoryStore.create(URL_MY_REPO);
+ mailRepositoryStore.create(MailRepositoryUrl.from("memory://mySecondRepo"));
List<String> mailRepositories =
when()
@@ -249,15 +226,11 @@ public class MailRepositoriesRoutesTest {
.getList("repository");
assertThat(mailRepositories)
- .containsOnlyElementsOf(myRepositories.stream()
- .map(MailRepositoryPath::asString)
- .collect(Guavate.toImmutableList()));
+ .containsOnly(PATH_ESCAPED_MY_REPO, "mySecondRepo");
}
@Test
- public void listingKeysShouldReturnNotFoundWhenNoRepository() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(RETURN_NO_MAIL_REPOSITORY);
-
+ public void listingKeysShouldReturnNotFoundWhenNoRepository() {
when()
.get(MY_REPO_MAILS)
.then()
@@ -267,7 +240,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void listingKeysShouldReturnEmptyWhenNoMail() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ mailRepositoryStore.create(URL_MY_REPO);
when()
.get(MY_REPO_MAILS)
@@ -278,7 +251,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void listingKeysShouldReturnContainedKeys() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
mailRepository.store(FakeMail.builder()
.name("name1")
@@ -297,7 +270,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void listingKeysShouldApplyLimitAndOffset() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
mailRepository.store(FakeMail.builder()
.name("name1")
@@ -321,21 +294,6 @@ public class MailRepositoriesRoutesTest {
}
@Test
- public void listingKeysShouldHandleErrorGracefully() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO))
- .thenThrow(new MailRepositoryStore.MailRepositoryStoreException("message"));
-
- when()
- .get(MY_REPO_MAILS)
- .then()
- .statusCode(HttpStatus.INTERNAL_SERVER_ERROR_500)
- .body("statusCode", is(500))
- .body("type", is(ErrorResponder.ErrorType.SERVER_ERROR.getType()))
- .body("message", is("Error while listing keys"))
- .body("details", containsString("message"));
- }
-
- @Test
public void listingKeysShouldReturnErrorOnInvalidOffset() {
given()
.param("offset", "invalid")
@@ -363,7 +321,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void listingKeysShouldReturnEmptyWhenOffsetExceedsSize() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
mailRepository.store(FakeMail.builder()
.name("name1")
@@ -412,7 +370,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void listingKeysShouldIgnoreZeroedOffset() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
mailRepository.store(FakeMail.builder()
.name(NAME_1)
@@ -445,9 +403,7 @@ public class MailRepositoriesRoutesTest {
}
@Test
- public void retrievingRepositoryShouldReturnNotFoundWhenNone() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(RETURN_NO_MAIL_REPOSITORY);
-
+ public void retrievingRepositoryShouldReturnNotFoundWhenNone() {
given()
.get(PATH_ESCAPED_MY_REPO)
.then()
@@ -456,7 +412,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void retrievingRepositoryShouldReturnBasicInformation() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ mailRepositoryStore.create(URL_MY_REPO);
given()
.get(PATH_ESCAPED_MY_REPO)
@@ -469,7 +425,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void retrievingRepositorySizeShouldReturnZeroWhenEmpty() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ mailRepositoryStore.create(URL_MY_REPO);
given()
.get(PATH_ESCAPED_MY_REPO)
@@ -481,7 +437,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void retrievingRepositorySizeShouldReturnNumberOfContainedMails() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
mailRepository.store(FakeMail.builder()
.name(NAME_1)
@@ -497,7 +453,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void retrievingAMailShouldDisplayItsInformation() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
String name = NAME_1;
String sender = "sender@domain";
@@ -536,7 +492,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void retrievingAMailShouldDisplayAllAdditionalFieldsWhenRequested() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
String name = NAME_1;
BodyPartBuilder textMessage = MimeMessageBuilder.bodyPartBuilder()
@@ -639,7 +595,8 @@ public class MailRepositoriesRoutesTest {
@Test
public void retrievingAMailShouldDisplayAllValidAdditionalFieldsWhenRequested() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
+
String name = NAME_1;
String sender = "sender@domain";
String recipient1 = "recipient1@domain";
@@ -669,7 +626,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void retrievingAMailShouldDisplayCorrectlyEncodedHeadersInValidAdditionalFieldsWhenRequested() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
String name = NAME_1;
String sender = "sender@domain";
String recipient1 = "recipient1@domain";
@@ -697,7 +654,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void retrievingAMailShouldDisplayAllValidAdditionalFieldsEvenTheDuplicatedOnesWhenRequested() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
String name = NAME_1;
String sender = "sender@domain";
String recipient1 = "recipient1@domain";
@@ -727,7 +684,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void retrievingAMailShouldFailWhenAnUnknownFieldIsRequested() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
String name = NAME_1;
String sender = "sender@domain";
String recipient1 = "recipient1@domain";
@@ -752,7 +709,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void retrievingAMailShouldNotFailWhenOnlyNameProperty() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
mailRepository.store(FakeMail.builder()
.name(NAME_1)
@@ -770,8 +727,8 @@ public class MailRepositoriesRoutesTest {
}
@Test
- public void retrievingAMailShouldFailWhenUnknown() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ public void retrievingAMailShouldFailWhenUnknown() throws Exception{
+ mailRepositoryStore.create(URL_MY_REPO);
String name = "name";
when()
@@ -790,7 +747,7 @@ public class MailRepositoriesRoutesTest {
.build();
RestAssured.registerParser(Constants.RFC822_CONTENT_TYPE, Parser.TEXT);
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
String name = NAME_1;
FakeMail mail = FakeMail.builder()
@@ -818,13 +775,13 @@ public class MailRepositoriesRoutesTest {
@Test
public void downloadingAMailShouldFailWhenUnknown() throws Exception {
+ mailRepositoryStore.create(URL_MY_REPO);
+
RestAssured.requestSpecification = new RequestSpecBuilder().setPort(webAdminServer.getPort().getValue())
.setBasePath(MailRepositoriesRoutes.MAIL_REPOSITORIES)
.build();
RestAssured.registerParser(Constants.RFC822_CONTENT_TYPE, Parser.TEXT);
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
-
String name = "name";
given()
.accept(Constants.RFC822_CONTENT_TYPE)
@@ -839,7 +796,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void deletingAMailShouldRemoveIt() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
mailRepository.store(FakeMail.builder()
.name(NAME_1)
@@ -861,7 +818,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void deletingAMailShouldReturnOkWhenExist() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
mailRepository.store(FakeMail.builder()
.name(NAME_1)
@@ -875,7 +832,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void deletingAMailShouldReturnOkWhenNotExist() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ mailRepositoryStore.create(URL_MY_REPO);
when()
.delete(PATH_ESCAPED_MY_REPO + "/mails/name")
@@ -885,7 +842,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void deletingAllMailsShouldCreateATask() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ mailRepositoryStore.create(URL_MY_REPO);
when()
.delete(PATH_ESCAPED_MY_REPO + "/mails")
@@ -897,7 +854,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void clearTaskShouldHaveDetails() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
mailRepository.store(FakeMail.builder()
.name(NAME_1)
@@ -929,7 +886,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void clearTaskShouldRemoveAllTheMailsFromTheMailRepository() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
mailRepository.store(FakeMail.builder()
.name(NAME_1)
@@ -955,9 +912,7 @@ public class MailRepositoriesRoutesTest {
}
@Test
- public void patchShouldReturnNotFoundWhenNoMailRepository() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(RETURN_NO_MAIL_REPOSITORY);
-
+ public void patchShouldReturnNotFoundWhenNoMailRepository() {
when()
.delete(PATH_ESCAPED_MY_REPO + "/mails")
.then()
@@ -968,9 +923,7 @@ public class MailRepositoriesRoutesTest {
}
@Test
- public void deleteShouldReturnNotFoundWhenNoMailRepository() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(RETURN_NO_MAIL_REPOSITORY);
-
+ public void deleteShouldReturnNotFoundWhenNoMailRepository() {
when()
.delete(PATH_ESCAPED_MY_REPO + "/mails/any")
.then()
@@ -982,7 +935,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void reprocessingAllTaskShouldCreateATask() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ mailRepositoryStore.create(URL_MY_REPO);
given()
.param("action", "reprocess")
@@ -995,9 +948,7 @@ public class MailRepositoriesRoutesTest {
}
@Test
- public void reprocessingAllTaskShouldRejectInvalidActions() throws Exception {
- when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
-
+ public void reprocessingAllTaskShouldRejectInvalidActions() {
given()
.param("action", "invalid")
.when()
@@ -1010,9 +961,7 @@ public class MailRepositoriesRoutesTest {
}
@Test
- public void reprocessingAllTaskShouldRequireAction() throws Exception {
- when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
-
+ public void reprocessingAllTaskShouldRequireAction() {
when()
.patch(PATH_ESCAPED_MY_REPO + "/mails")
.then()
@@ -1024,7 +973,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void reprocessingAllTaskShouldIncludeDetailsWhenDefaultValues() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
mailRepository.store(FakeMail.builder()
.name(NAME_1)
.build());
@@ -1058,7 +1007,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void reprocessingAllTaskShouldIncludeDetails() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
String name1 = "name1";
String name2 = "name2";
mailRepository.store(FakeMail.builder()
@@ -1097,7 +1046,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void reprocessingAllTaskShouldClearMailRepository() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
String name1 = "name1";
String name2 = "name2";
mailRepository.store(FakeMail.builder()
@@ -1125,7 +1074,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void reprocessingAllTaskShouldEnqueueMailsOnDefaultQueue() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
mailRepository.store(FakeMail.builder()
.name(NAME_1)
.build());
@@ -1151,7 +1100,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void reprocessingAllTaskShouldPreserveStateWhenProcessorIsNotSpecified() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
String state1 = "state1";
String state2 = "state2";
mailRepository.store(FakeMail.builder()
@@ -1181,7 +1130,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void reprocessingAllTaskShouldOverWriteStateWhenProcessorSpecified() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
String state1 = "state1";
String state2 = "state2";
mailRepository.store(FakeMail.builder()
@@ -1213,7 +1162,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void reprocessingAllTaskShouldEnqueueMailsOnSpecifiedQueue() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
mailRepository.store(FakeMail.builder()
.name(NAME_1)
.build());
@@ -1240,8 +1189,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void reprocessingOneTaskShouldCreateATask() throws Exception {
- when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
-
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
mailRepository.store(FakeMail.builder()
.name(NAME_1)
.build());
@@ -1258,8 +1206,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void reprocessingOneTaskShouldRejectInvalidActions() throws Exception {
- when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
-
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
mailRepository.store(FakeMail.builder()
.name(NAME_1)
.build());
@@ -1277,8 +1224,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void reprocessingOneTaskShouldRequireAction() throws Exception {
- when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
-
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
mailRepository.store(FakeMail.builder()
.name(NAME_1)
.build());
@@ -1294,7 +1240,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void reprocessingOneTaskShouldIncludeDetailsWhenDefaultValues() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
String name1 = "name1";
String name2 = "name2";
mailRepository.store(FakeMail.builder()
@@ -1329,7 +1275,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void reprocessingOneTaskShouldIncludeDetails() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
String name1 = "name1";
String name2 = "name2";
mailRepository.store(FakeMail.builder()
@@ -1367,7 +1313,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void reprocessingOneTaskShouldRemoveMailFromRepository() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
String name1 = "name1";
String name2 = "name2";
mailRepository.store(FakeMail.builder()
@@ -1396,7 +1342,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void reprocessingOneTaskShouldEnqueueMailsOnDefaultQueue() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
mailRepository.store(FakeMail.builder()
.name(NAME_1)
.build());
@@ -1422,7 +1368,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void reprocessingOneTaskShouldPreserveStateWhenProcessorIsNotSpecified() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
String state1 = "state1";
String state2 = "state2";
mailRepository.store(FakeMail.builder()
@@ -1452,7 +1398,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void reprocessingOneTaskShouldOverWriteStateWhenProcessorSpecified() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
String state1 = "state1";
String state2 = "state2";
mailRepository.store(FakeMail.builder()
@@ -1484,7 +1430,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void reprocessingOneTaskShouldEnqueueMailsOnSpecifiedQueue() throws Exception {
- when(mailRepositoryStore.getByPath(PATH_MY_REPO)).thenAnswer(returnMailRepository);
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
mailRepository.store(FakeMail.builder()
.name(NAME_1)
.build());
@@ -1511,7 +1457,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void reprocessingOneTaskShouldNotEnqueueUnknownMailKey() throws Exception {
- when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
mailRepository.store(FakeMail.builder()
.name(NAME_1)
.build());
@@ -1536,7 +1482,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void reprocessingOneTaskShouldNotRemoveMailFromRepositoryWhenUnknownMailKey() throws Exception {
- when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
mailRepository.store(FakeMail.builder()
.name(NAME_1)
.build());
@@ -1561,7 +1507,7 @@ public class MailRepositoriesRoutesTest {
@Test
public void reprocessingOneTaskShouldFailWhenUnknownMailKey() throws Exception {
- when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
+ MailRepository mailRepository = mailRepositoryStore.create(URL_MY_REPO);
mailRepository.store(FakeMail.builder()
.name(NAME_1)
.build());
@@ -1584,4 +1530,16 @@ public class MailRepositoriesRoutesTest {
.body("status", is("failed"));
}
+ private void createMailRepositoryStore() throws Exception {
+ configuration = Configuration.builder()
+ .workingDirectory("../")
+ .configurationFromClasspath()
+ .build();
+ fileSystem = new FileSystemImpl(configuration.directories());
+ MemoryMailRepositoryUrlStore urlStore = new MemoryMailRepositoryUrlStore();
+ mailRepositoryStore = new MemoryMailRepositoryStore(urlStore, Sets.newHashSet(new MemoryMailRepositoryProvider()));
+ mailRepositoryStore.configure(new FileConfigurationProvider(fileSystem, configuration)
+ .getConfiguration("mailrepositorystore"));
+ mailRepositoryStore.init();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/0084a26e/server/protocols/webadmin/webadmin-mailrepository/src/test/resources/mailrepositorystore.xml
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailrepository/src/test/resources/mailrepositorystore.xml b/server/protocols/webadmin/webadmin-mailrepository/src/test/resources/mailrepositorystore.xml
new file mode 100644
index 0000000..ed3e003
--- /dev/null
+++ b/server/protocols/webadmin/webadmin-mailrepository/src/test/resources/mailrepositorystore.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+
+<!--
+ 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.
+ -->
+
+<mailrepositorystore>
+ <mailrepositories>
+ <mailrepository class="org.apache.james.mailrepository.memory.MemoryMailRepository">
+ <protocols>
+ <protocol>memory</protocol>
+ </protocols>
+ </mailrepository>
+ </mailrepositories>
+</mailrepositorystore>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org