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