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 <[email protected]> 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: [email protected] For additional commands, e-mail: [email protected]
