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/03/04 11:43:38 UTC

[james-project] 04/16: MAILBOX-382 refactor ActionEvents

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 d0243f19f7ace4770747822863d647c3c1c0ace2
Author: Rene Cordier <rc...@linagora.com>
AuthorDate: Fri Mar 1 11:49:23 2019 +0700

    MAILBOX-382 refactor ActionEvents
---
 .../java/org/apache/james/webadmin/dto/ActionEvents.java  | 15 ++++++++-------
 .../james/webadmin/routes/EventDeadLettersRoutes.java     |  6 ++++--
 .../org/apache/james/webadmin/dto/ActionEventsTest.java   | 14 ++++++++------
 .../james/webadmin/routes/EventDeadLettersRoutesTest.java |  6 +++---
 4 files changed, 23 insertions(+), 18 deletions(-)

diff --git a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/ActionEvents.java b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/ActionEvents.java
index f18ad7d..6861f51 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/ActionEvents.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/ActionEvents.java
@@ -19,18 +19,19 @@
 
 package org.apache.james.webadmin.dto;
 
-import java.util.Arrays;
+import java.util.Optional;
 
 import com.google.common.base.Preconditions;
 
 public enum ActionEvents {
-    reDeliver;
+    REDELIVER;
 
-    public static ActionEvents parse(String action) {
+    public static Optional<ActionEvents> find(String action) {
         Preconditions.checkArgument(action != null, "'action' url parameter is mandatory");
-        return Arrays.stream(ActionEvents.values())
-            .filter(element -> element.toString().equalsIgnoreCase(action))
-            .findAny()
-            .orElseThrow(() -> new IllegalArgumentException("'" + action + "' is not a valid action query parameter"));
+
+        if (action.equalsIgnoreCase(ActionEvents.REDELIVER.toString())) {
+            return Optional.of(ActionEvents.REDELIVER);
+        }
+        return Optional.empty();
     }
 }
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/EventDeadLettersRoutes.java b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/EventDeadLettersRoutes.java
index a838625..4fec31b 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/EventDeadLettersRoutes.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/EventDeadLettersRoutes.java
@@ -20,6 +20,7 @@
 package org.apache.james.webadmin.routes;
 
 import java.util.List;
+import java.util.Optional;
 
 import javax.inject.Inject;
 import javax.ws.rs.DELETE;
@@ -300,9 +301,10 @@ public class EventDeadLettersRoutes implements Routes {
     }
 
     private void assertValidActionParameter(Request request) {
-        ActionEvents action = ActionEvents.parse(request.queryParams("action"));
+        String action = request.queryParams("action");
+        Optional<ActionEvents> actionEvent = ActionEvents.find(action);
 
-        if (action != ActionEvents.reDeliver) {
+        if (!actionEvent.isPresent()) {
             throw new IllegalArgumentException(action + " is not a supported action");
         }
     }
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/dto/ActionEventsTest.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/dto/ActionEventsTest.java
index 9980815..f4a572a 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/dto/ActionEventsTest.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/dto/ActionEventsTest.java
@@ -22,26 +22,28 @@ package org.apache.james.webadmin.dto;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
+import java.util.Optional;
+
 import org.junit.jupiter.api.Test;
 
 class ActionEventsTest {
-    private static final String ACTION = "reDeliver";
+    private static final String ACTION = "redeliver";
 
     @Test
     void parseShouldSucceedWithCorrectActionEventsArgument() {
-        assertThat(ActionEvents.parse(ACTION)).isEqualTo(ActionEvents.reDeliver);
+        assertThat(ActionEvents.find(ACTION))
+            .isEqualTo(Optional.of(ActionEvents.REDELIVER));
     }
 
     @Test
     void parseShouldFailWithIncorrectActionEventsArgument() {
-        assertThatThrownBy(() -> ActionEvents.parse("incorrect-action"))
-            .isInstanceOf(IllegalArgumentException.class)
-            .hasMessage("'incorrect-action' is not a valid action query parameter");
+        assertThat(ActionEvents.find("incorrect-action"))
+            .isEqualTo(Optional.empty());
     }
 
     @Test
     void parseShouldFailWithMissingActionEventsArgument() {
-        assertThatThrownBy(() -> ActionEvents.parse(null))
+        assertThatThrownBy(() -> ActionEvents.find(null))
             .isInstanceOf(IllegalArgumentException.class)
             .hasMessage("'action' url parameter is mandatory");
     }
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/EventDeadLettersRoutesTest.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/EventDeadLettersRoutesTest.java
index c099607..f4c9e36 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/EventDeadLettersRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/EventDeadLettersRoutesTest.java
@@ -483,7 +483,7 @@ class EventDeadLettersRoutesTest {
                 .body("statusCode", is(400))
                 .body("type", is(ErrorResponder.ErrorType.INVALID_ARGUMENT.getType()))
                 .body("message", is("Invalid arguments supplied in the user request"))
-                .body("details", is("'invalid-action' is not a valid action query parameter"));
+                .body("details", is("invalid-action is not a supported action"));
         }
 
         @Test
@@ -622,7 +622,7 @@ class EventDeadLettersRoutesTest {
                 .body("statusCode", is(400))
                 .body("type", is(ErrorResponder.ErrorType.INVALID_ARGUMENT.getType()))
                 .body("message", is("Invalid arguments supplied in the user request"))
-                .body("details", is("'invalid-action' is not a valid action query parameter"));
+                .body("details", is("invalid-action is not a supported action"));
         }
 
         @Test
@@ -754,7 +754,7 @@ class EventDeadLettersRoutesTest {
                 .body("statusCode", is(400))
                 .body("type", is(ErrorResponder.ErrorType.INVALID_ARGUMENT.getType()))
                 .body("message", is("Invalid arguments supplied in the user request"))
-                .body("details", is("'invalid-action' is not a valid action query parameter"));
+                .body("details", is("invalid-action is not a supported action"));
         }
 
         @Test


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