You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by rc...@apache.org on 2021/01/18 03:25:18 UTC

[james-project] 01/03: JAMES-3489 Add unit test in case of users repository error on ValidRcptHandler

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

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

commit ed135de20aa7f10843955eb340fd9caacf860b42
Author: Raphael Ouazana <ra...@linagora.com>
AuthorDate: Wed Jan 13 15:31:16 2021 +0100

    JAMES-3489 Add unit test in case of users repository error on ValidRcptHandler
---
 .../james/smtpserver/ValidRcptHandlerTest.java      | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
index 21608fb..378650c 100644
--- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
+++ b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
@@ -20,7 +20,9 @@ package org.apache.james.smtpserver;
 
 import static org.apache.mailet.base.MailAddressFixture.SENDER;
 import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 import java.util.HashMap;
 import java.util.Optional;
@@ -40,6 +42,7 @@ import org.apache.james.rrt.lib.MappingSource;
 import org.apache.james.rrt.memory.MemoryRecipientRewriteTable;
 import org.apache.james.smtpserver.fastfail.ValidRcptHandler;
 import org.apache.james.user.api.UsersRepository;
+import org.apache.james.user.api.UsersRepositoryException;
 import org.apache.james.user.memory.MemoryUsersRepository;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.BeforeEach;
@@ -56,6 +59,7 @@ class ValidRcptHandlerTest {
     private static final MaybeSender MAYBE_SENDER = MaybeSender.of(SENDER);
     private static final Domain DOMAIN_1 = Domain.of("domain.tld");
 
+    private MemoryDomainList memoryDomainList;
     private ValidRcptHandler handler;
     private MemoryRecipientRewriteTable memoryRecipientRewriteTable;
     private MailAddress validUserEmail;
@@ -64,7 +68,7 @@ class ValidRcptHandlerTest {
 
     @BeforeEach
     void setUp() throws Exception {
-        MemoryDomainList memoryDomainList = new MemoryDomainList(mock(DNSService.class));
+        memoryDomainList = new MemoryDomainList(mock(DNSService.class));
         memoryDomainList.configure(DomainListConfiguration.builder()
             .defaultDomain(Domain.LOCALHOST)
             .build());
@@ -218,5 +222,18 @@ class ValidRcptHandlerTest {
 
         assertThat(rCode).isEqualTo(HookReturnCode.declined());
     }
-    
+
+    @Test
+    void doRcptShouldReturnDenySoftWhenUsersRepositoryError() throws Exception {
+        SMTPSession session = setupMockedSMTPSession(!RELAYING_ALLOWED);
+
+        UsersRepository users = mock(UsersRepository.class);
+        when(users.contains(any()))
+            .thenThrow(new UsersRepositoryException("simulated error"));
+        ValidRcptHandler handler = new ValidRcptHandler(users, memoryRecipientRewriteTable, memoryDomainList);
+        HookReturnCode rCode = handler.doRcpt(session, MAYBE_SENDER, validUserEmail).getResult();
+
+        assertThat(rCode).isEqualTo(HookReturnCode.denySoft());
+    }
+
 }


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