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 2019/05/16 08:48:16 UTC

[james-project] 01/23: JAMES-2149 Support listing sources for domains in RRT

This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit cb8d22290e48188b87fa63cba9d764b7e340e51a
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Fri May 10 18:11:11 2019 +0700

    JAMES-2149 Support listing sources for domains in RRT
---
 .../james/rrt/api/RecipientRewriteTable.java       |  3 +-
 .../rrt/lib/AbstractRecipientRewriteTableTest.java | 37 ++++++++++++++++++++--
 2 files changed, 36 insertions(+), 4 deletions(-)

diff --git a/server/data/data-api/src/main/java/org/apache/james/rrt/api/RecipientRewriteTable.java b/server/data/data-api/src/main/java/org/apache/james/rrt/api/RecipientRewriteTable.java
index 1f067c5..9de41fe 100644
--- a/server/data/data-api/src/main/java/org/apache/james/rrt/api/RecipientRewriteTable.java
+++ b/server/data/data-api/src/main/java/org/apache/james/rrt/api/RecipientRewriteTable.java
@@ -52,7 +52,8 @@ public interface RecipientRewriteTable {
         Mapping.Type.Group,
         Mapping.Type.Forward,
         Mapping.Type.Address,
-        Mapping.Type.Alias);
+        Mapping.Type.Alias,
+        Mapping.Type.Domain);
 
     void addMapping(MappingSource source, Mapping mapping) throws RecipientRewriteTableException;
 
diff --git a/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java b/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java
index be44328..d1fd669 100644
--- a/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java
+++ b/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java
@@ -426,13 +426,44 @@ public abstract class AbstractRecipientRewriteTableTest {
     }
 
     @Test
-    public void listSourcesShouldThrowExceptionWhenHasDomainMapping() throws Exception {
+    public void listSourcesShouldHandleDomainMapping() throws Exception {
         Mapping mapping = Mapping.domain(Domain.of("domain"));
 
         virtualUserTable.addMapping(SOURCE, mapping);
 
-        assertThatThrownBy(() -> virtualUserTable.listSources(mapping))
-            .isInstanceOf(IllegalArgumentException.class);
+        assertThat(virtualUserTable.listSources(mapping))
+            .containsExactly(SOURCE);
+    }
+
+    @Test
+    public void listSourcesShouldReturnEmptyWhenNoDomainAlias() throws Exception {
+        Mapping mapping = Mapping.domain(Domain.of("domain"));
+
+        assertThat(virtualUserTable.listSources(mapping)).isEmpty();
+    }
+
+    @Test
+    public void listSourcesShouldHandleDomainSource() throws Exception {
+        Mapping mapping = Mapping.domain(Domain.of("domain"));
+
+        MappingSource source = MappingSource.fromDomain(Domain.of("source.org"));
+        virtualUserTable.addMapping(source, mapping);
+
+        assertThat(virtualUserTable.listSources(mapping))
+            .containsExactly(source);
+    }
+
+    @Test
+    public void listSourcesShouldHandleDomainSources() throws Exception {
+        Mapping mapping = Mapping.domain(Domain.of("domain"));
+
+        MappingSource source1 = MappingSource.fromDomain(Domain.of("source1.org"));
+        MappingSource source2 = MappingSource.fromDomain(Domain.of("source2.org"));
+        virtualUserTable.addMapping(source1, mapping);
+        virtualUserTable.addMapping(source2, mapping);
+
+        assertThat(virtualUserTable.listSources(mapping))
+            .containsExactlyInAnyOrder(source1, source2);
     }
 
     @Test


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