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 ro...@apache.org on 2018/01/17 13:28:15 UTC
[9/9] james-project git commit: JAMES-2286 FileMailRepository should
be tested against all configuration possibilities
JAMES-2286 FileMailRepository should be tested against all configuration possibilities
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/ce049056
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/ce049056
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/ce049056
Branch: refs/heads/master
Commit: ce049056d474fff43df89431f67fda243fd836cf
Parents: 8d207d4
Author: benwa <bt...@linagora.com>
Authored: Wed Jan 17 10:35:19 2018 +0700
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Wed Jan 17 09:27:58 2018 +0100
----------------------------------------------------------------------
.../mailrepository/FileMailRepositoryTest.java | 95 +++++++++++++++-----
1 file changed, 74 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/ce049056/server/data/data-file/src/test/java/org/apache/james/mailrepository/FileMailRepositoryTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-file/src/test/java/org/apache/james/mailrepository/FileMailRepositoryTest.java b/server/data/data-file/src/test/java/org/apache/james/mailrepository/FileMailRepositoryTest.java
index cdcb07a..c9797d5 100644
--- a/server/data/data-file/src/test/java/org/apache/james/mailrepository/FileMailRepositoryTest.java
+++ b/server/data/data-file/src/test/java/org/apache/james/mailrepository/FileMailRepositoryTest.java
@@ -25,32 +25,85 @@ import org.apache.james.mailrepository.api.MailRepository;
import org.apache.james.mailrepository.file.FileMailRepository;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Nested;
-public class FileMailRepositoryTest implements MailRepositoryContract {
-
- private FileMailRepository mailRepository;
- private MockFileSystem filesystem;
-
- @BeforeEach
- void init() throws Exception {
- filesystem = new MockFileSystem();
- mailRepository = new FileMailRepository();
- mailRepository.setFileSystem(filesystem);
- DefaultConfigurationBuilder defaultConfiguration = new DefaultConfigurationBuilder();
- defaultConfiguration.addProperty("[@destinationURL]", "file://target/var/mailRepository");
- defaultConfiguration.addProperty("[@type]", "MAIL");
- mailRepository.configure(defaultConfiguration);
- mailRepository.init();
+public class FileMailRepositoryTest {
+
+ public abstract class GenericFileMailRepositoryTest implements MailRepositoryContract {
+ private FileMailRepository mailRepository;
+ private MockFileSystem filesystem;
+
+ @BeforeEach
+ void init() throws Exception {
+ filesystem = new MockFileSystem();
+ mailRepository = new FileMailRepository();
+ mailRepository.setFileSystem(filesystem);
+ mailRepository.configure(getConfiguration());
+ mailRepository.init();
+ }
+
+ protected DefaultConfigurationBuilder getConfiguration() {
+ DefaultConfigurationBuilder configuration = new DefaultConfigurationBuilder();
+ configuration.addProperty("[@destinationURL]", "file://target/var/mailRepository");
+ return withConfigurationOptions(configuration);
+ }
+
+ protected abstract DefaultConfigurationBuilder withConfigurationOptions(DefaultConfigurationBuilder configuration);
+
+ @AfterEach
+ void tearDown() {
+ filesystem.clear();
+ }
+
+ @Override
+ public MailRepository retrieveRepository() {
+ return mailRepository;
+ }
+ }
+
+ @Nested
+ @DisplayName("Default configuration")
+ public class DefaultFileMailRepositoryTest extends GenericFileMailRepositoryTest {
+
+ protected DefaultConfigurationBuilder withConfigurationOptions(DefaultConfigurationBuilder configuration) {
+ configuration.addProperty("[@FIFO]", "false");
+ configuration.addProperty("[@CACHEKEYS]", "true");
+ return configuration;
+ }
}
- @AfterEach
- void tearDown() {
- filesystem.clear();
+ @Nested
+ @DisplayName("No cache configuration")
+ public class NoCacheFileMailRepositoryTest extends GenericFileMailRepositoryTest {
+
+ protected DefaultConfigurationBuilder withConfigurationOptions(DefaultConfigurationBuilder configuration) {
+ configuration.addProperty("[@FIFO]", "false");
+ configuration.addProperty("[@CACHEKEYS]", "false");
+ return configuration;
+ }
}
- @Override
- public MailRepository retrieveRepository() {
- return mailRepository;
+ @Nested
+ @DisplayName("Fifo configuration")
+ public class FifoFileMailRepositoryTest extends GenericFileMailRepositoryTest {
+
+ protected DefaultConfigurationBuilder withConfigurationOptions(DefaultConfigurationBuilder configuration) {
+ configuration.addProperty("[@FIFO]", "true");
+ configuration.addProperty("[@CACHEKEYS]", "true");
+ return configuration;
+ }
+ }
+
+ @Nested
+ @DisplayName("Fifo no cache configuration")
+ public class FifoNoCacheFileMailRepositoryTest extends GenericFileMailRepositoryTest {
+
+ protected DefaultConfigurationBuilder withConfigurationOptions(DefaultConfigurationBuilder configuration) {
+ configuration.addProperty("[@FIFO]", "true");
+ configuration.addProperty("[@CACHEKEYS]", "false");
+ return configuration;
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org