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 rd...@apache.org on 2009/04/09 19:52:50 UTC

svn commit: r763750 - in /james/jsieve/trunk/util/src: main/java/org/apache/jsieve/util/ToSieveHandlerFactory.java test/java/org/apache/jsieve/util/SieveGenerationTest.java test/java/org/apache/jsieve/util/ToSieveHandlerFactoryTest.java

Author: rdonkin
Date: Thu Apr  9 17:52:50 2009
New Revision: 763750

URL: http://svn.apache.org/viewvc?rev=763750&view=rev
Log:
Integration tests. Short of good test scripts :-/ JSIEVE-43 https://issues.apache.org/jira/browse/JSIEVE-43

Modified:
    james/jsieve/trunk/util/src/main/java/org/apache/jsieve/util/ToSieveHandlerFactory.java
    james/jsieve/trunk/util/src/test/java/org/apache/jsieve/util/SieveGenerationTest.java
    james/jsieve/trunk/util/src/test/java/org/apache/jsieve/util/ToSieveHandlerFactoryTest.java

Modified: james/jsieve/trunk/util/src/main/java/org/apache/jsieve/util/ToSieveHandlerFactory.java
URL: http://svn.apache.org/viewvc/james/jsieve/trunk/util/src/main/java/org/apache/jsieve/util/ToSieveHandlerFactory.java?rev=763750&r1=763749&r2=763750&view=diff
==============================================================================
--- james/jsieve/trunk/util/src/main/java/org/apache/jsieve/util/ToSieveHandlerFactory.java (original)
+++ james/jsieve/trunk/util/src/main/java/org/apache/jsieve/util/ToSieveHandlerFactory.java Thu Apr  9 17:52:50 2009
@@ -57,12 +57,14 @@
         private boolean commaRequiredBeforeNextTest;
         private boolean firstTestInList;
         private boolean commandUsedBlock;
+        private boolean commandAfterEndCommand;
      
         public ToSieveHandler(final Writer writer) {
             this.writer = writer;
             commaRequiredBeforeNextTest = false;
             firstTestInList = false;
             commandUsedBlock = false;
+            commandAfterEndCommand = false;
         }
         
         /** @see SieveHandler#endBlock() */
@@ -82,6 +84,11 @@
         /** @see SieveHandler#startCommand() */
         //@Override
         public SieveHandler startCommand(String commandName) throws HaltTraversalException {
+            commaRequiredBeforeNextTest = false;
+            if (commandAfterEndCommand) {
+                space();
+                commandAfterEndCommand = false;
+            }
             return append(commandName);
         }
         
@@ -91,6 +98,7 @@
             if (!commandUsedBlock) {
                 append(';');
             }
+            commandAfterEndCommand = true;
             commandUsedBlock = false;
             return this;
         }
@@ -157,6 +165,7 @@
         /** @see SieveHandler#endTestList() */
         //@Override
         public SieveHandler endTestList() throws HaltTraversalException {
+            commaRequiredBeforeNextTest = false;
             return append(')');
         }
 

Modified: james/jsieve/trunk/util/src/test/java/org/apache/jsieve/util/SieveGenerationTest.java
URL: http://svn.apache.org/viewvc/james/jsieve/trunk/util/src/test/java/org/apache/jsieve/util/SieveGenerationTest.java?rev=763750&r1=763749&r2=763750&view=diff
==============================================================================
--- james/jsieve/trunk/util/src/test/java/org/apache/jsieve/util/SieveGenerationTest.java (original)
+++ james/jsieve/trunk/util/src/test/java/org/apache/jsieve/util/SieveGenerationTest.java Thu Apr  9 17:52:50 2009
@@ -27,7 +27,7 @@
 import junit.framework.TestCase;
 
 public class SieveGenerationTest extends TestCase {
-
+    
     protected void setUp() throws Exception {
         super.setUp();
     }
@@ -36,9 +36,28 @@
         super.tearDown();
     }
 
+    public void testShouldGenerateSoloToEmailScriptFromNode() throws Exception {
+        assertShouldRoundtripScript(
+                "if address :is :all [\"to\"] [\"coyote@desert.example.org\"] {"
+                + "fileinto [\"coyote\"];} "
+                + "if address :is :all [\"to\"] [\"bugs@example.org\"] {"
+                + "fileinto [\"bugs\"];} "
+                + "if address :is :all [\"to\"] [\"roadrunneracme.@example.org\"] {"
+                + "fileinto [\"rr\"];} "
+                + "if address :is :all [\"to\"] [\"elmer@hunters.example.org\"] {"
+                + "fileinto [\"elmer\"];}");
+    }
+    
     public void testShouldGenerateSimpleScriptFromNode() throws Exception {
+        assertShouldRoundtripScript("if address :all :is [\"from\"] [\"user@domain\"] {stop;}");
+    }
+    
+    public void testShouldGenerateFileintoFromNode() throws Exception {
+        assertShouldRoundtripScript("fileinto [\"INBOX.test1\"]; fileinto [\"INBOX.test1\"];");
+    }
+    
+    private void assertShouldRoundtripScript(final String script) throws Exception {
         // Set up
-        final String script = "if address :all :is [\"from\"] [\"user@domain\"] {stop;}";
         final Node node = new ConfigurationManager().build().parse(new ByteArrayInputStream(script.getBytes()));
         final StringWriter monitor = new StringWriter();
         
@@ -48,4 +67,5 @@
         // Verify
         assertEquals(script, monitor.toString());
     }
+
 }

Modified: james/jsieve/trunk/util/src/test/java/org/apache/jsieve/util/ToSieveHandlerFactoryTest.java
URL: http://svn.apache.org/viewvc/james/jsieve/trunk/util/src/test/java/org/apache/jsieve/util/ToSieveHandlerFactoryTest.java?rev=763750&r1=763749&r2=763750&view=diff
==============================================================================
--- james/jsieve/trunk/util/src/test/java/org/apache/jsieve/util/ToSieveHandlerFactoryTest.java (original)
+++ james/jsieve/trunk/util/src/test/java/org/apache/jsieve/util/ToSieveHandlerFactoryTest.java Thu Apr  9 17:52:50 2009
@@ -353,4 +353,18 @@
         // Verify
         assertEquals("}", monitor.toString());
     }
+    
+    public void testAfterEndCommandNextShouldPrintSpace() throws Exception {
+        // Setup
+        SieveHandler handler = factory.build(monitor);
+        String firstCommandName = "FirstCommand";
+        String secondCommandName = "SecondCommand";
+        
+        // Exercise
+        handler.endCommand(firstCommandName);
+        handler.startCommand(secondCommandName);
+        
+        // Verify
+        assertEquals("; " + secondCommandName, monitor.toString());
+    }
 }



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