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 2017/06/07 01:20:53 UTC

james-jsieve git commit: JSIEVE-108 Discard instruction should emmit a ActionDiscard

Repository: james-jsieve
Updated Branches:
  refs/heads/master ffeccf9af -> 94c2bc292


JSIEVE-108 Discard instruction should emmit a ActionDiscard


Project: http://git-wip-us.apache.org/repos/asf/james-jsieve/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-jsieve/commit/94c2bc29
Tree: http://git-wip-us.apache.org/repos/asf/james-jsieve/tree/94c2bc29
Diff: http://git-wip-us.apache.org/repos/asf/james-jsieve/diff/94c2bc29

Branch: refs/heads/master
Commit: 94c2bc2923f9b545b2b930f46abe34058273c15b
Parents: ffeccf9
Author: benwa <bt...@linagora.com>
Authored: Sat May 6 17:21:17 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu May 11 17:43:12 2017 +0700

----------------------------------------------------------------------
 .../org/apache/jsieve/commands/Discard.java     |  4 ++
 .../org/apache/jsieve/mail/ActionDiscard.java   | 28 ++++++++
 .../java/org/apache/jsieve/DiscardTest.java     | 75 +++++++-------------
 3 files changed, 58 insertions(+), 49 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-jsieve/blob/94c2bc29/core/src/main/java/org/apache/jsieve/commands/Discard.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/jsieve/commands/Discard.java b/core/src/main/java/org/apache/jsieve/commands/Discard.java
index e55cf9b..2696fb7 100644
--- a/core/src/main/java/org/apache/jsieve/commands/Discard.java
+++ b/core/src/main/java/org/apache/jsieve/commands/Discard.java
@@ -23,6 +23,7 @@ import org.apache.jsieve.Arguments;
 import org.apache.jsieve.Block;
 import org.apache.jsieve.SieveContext;
 import org.apache.jsieve.exception.SieveException;
+import org.apache.jsieve.mail.ActionDiscard;
 import org.apache.jsieve.mail.MailAdapter;
 
 /**
@@ -54,6 +55,9 @@ public class Discard extends AbstractActionCommand {
         // Just cancels the implicit keep
         // See http://tools.ietf.org/html/rfc5228#section-4.4
         context.getCommandStateManager().setImplicitKeep(false);
+
+        mail.addAction(new ActionDiscard());
+
         return null;
     }
 

http://git-wip-us.apache.org/repos/asf/james-jsieve/blob/94c2bc29/core/src/main/java/org/apache/jsieve/mail/ActionDiscard.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/jsieve/mail/ActionDiscard.java b/core/src/main/java/org/apache/jsieve/mail/ActionDiscard.java
new file mode 100644
index 0000000..1d4e191
--- /dev/null
+++ b/core/src/main/java/org/apache/jsieve/mail/ActionDiscard.java
@@ -0,0 +1,28 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.jsieve.mail;
+
+/**
+ * Class ActionDiscard encapsulates the information required to discard a mail. See
+ * RFC 3028, Section 4.4.
+ */
+public class ActionDiscard implements Action {
+
+}

http://git-wip-us.apache.org/repos/asf/james-jsieve/blob/94c2bc29/core/src/test/java/org/apache/jsieve/DiscardTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/jsieve/DiscardTest.java b/core/src/test/java/org/apache/jsieve/DiscardTest.java
index 0cf8e0c..580cd09 100644
--- a/core/src/test/java/org/apache/jsieve/DiscardTest.java
+++ b/core/src/test/java/org/apache/jsieve/DiscardTest.java
@@ -19,72 +19,49 @@
 
 package org.apache.jsieve;
 
-import org.apache.jsieve.exception.SieveException;
+import static org.assertj.core.api.Assertions.assertThat;
+
 import org.apache.jsieve.exception.SyntaxException;
+import org.apache.jsieve.mail.Action;
+import org.apache.jsieve.mail.ActionDiscard;
 import org.apache.jsieve.mail.MailAdapter;
-import org.apache.jsieve.parser.generated.ParseException;
 import org.apache.jsieve.utils.JUnitUtils;
-import org.junit.Assert;
+import org.assertj.core.api.Condition;
 import org.junit.Test;
 
-/**
- * Class DiscardTest
- */
 public class DiscardTest {
 
-    /**
-     * Test for Command 'discard' with invalid arguments
-     */
-    @org.junit.Test
-    public void testInvalidArguments() {
-        boolean isTestPassed = false;
+    private static final Condition<Action> INSTANCE_OF_ACTION_DISCARDED = new Condition<Action>() {
+        @Override
+        public boolean matches(Action action) {
+            return action instanceof ActionDiscard;
+        }
+    };
+
+    @Test(expected = SyntaxException.class)
+    public void discardShouldThrowOnInvalidArguments() throws Exception {
         String script = "discard 1 ;";
 
-        try {
-            JUnitUtils.interpret(JUnitUtils.createMail(), script);
-        } catch (SyntaxException e) {
-            isTestPassed = true;
-        } catch (ParseException e) {
-        } catch (SieveException e) {
-        }
-        Assert.assertTrue(isTestPassed);
+        JUnitUtils.interpret(JUnitUtils.createMail(), script);
     }
 
-    /**
-     * Test for Command 'discard' with an invalid block
-     */
-    @Test
-    public void testInvalidBlock() {
-        boolean isTestPassed = false;
-        String script = "discard 1 {throwTestException;}";
+    @Test(expected = SyntaxException.class)
+    public void discardShouldThrowOnInvalidFollowingBlock() throws Exception {
+        String script = "discard {throwTestException;}";
 
-        try {
-            JUnitUtils.interpret(JUnitUtils.createMail(), script);
-        } catch (SyntaxException e) {
-            isTestPassed = true;
-        } catch (ParseException e) {
-        } catch (SieveException e) {
-        }
-        Assert.assertTrue(isTestPassed);
+        JUnitUtils.interpret(JUnitUtils.createMail(), script);
     }
 
-    /*
-     * Test for Command 'discard'
-     */
     @Test
-    public void testDiscard() {
-        boolean isTestPassed = false;
+    public void discardShouldAddOnlyActionDiscard() throws Exception {
         String script = "discard;";
 
-        try {
-            MailAdapter mail = JUnitUtils.createMail();
-            JUnitUtils.interpret(mail, script);
-            Assert.assertTrue(mail.getActions().isEmpty());
-            isTestPassed = true;
-        } catch (ParseException e) {
-        } catch (SieveException e) {
-        }
-        Assert.assertTrue(isTestPassed);
+        MailAdapter mail = JUnitUtils.createMail();
+        JUnitUtils.interpret(mail, script);
+
+        assertThat(mail.getActions())
+            .hasSize(1)
+            .are(INSTANCE_OF_ACTION_DISCARDED);
     }
 
 }


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