Author: btellier
Date: Mon Jun 29 08:56:41 2015
New Revision: 1688159

URL: http://svn.apache.org/r1688159
Log:
MAILBOX-155 Adding WAIT instruction to MPT, requested by ElasticSearch 
indexation

Modified:
    
james/mpt/trunk/core/src/main/java/org/apache/james/mpt/protocol/FileProtocolSessionBuilder.java
    
james/mpt/trunk/core/src/main/java/org/apache/james/mpt/protocol/ProtocolSession.java
    
james/mpt/trunk/core/src/main/java/org/apache/james/mpt/protocol/ProtocolSessionBuilder.java

Modified: 
james/mpt/trunk/core/src/main/java/org/apache/james/mpt/protocol/FileProtocolSessionBuilder.java
URL: 
http://svn.apache.org/viewvc/james/mpt/trunk/core/src/main/java/org/apache/james/mpt/protocol/FileProtocolSessionBuilder.java?rev=1688159&r1=1688158&r2=1688159&view=diff
==============================================================================
--- 
james/mpt/trunk/core/src/main/java/org/apache/james/mpt/protocol/FileProtocolSessionBuilder.java
 (original)
+++ 
james/mpt/trunk/core/src/main/java/org/apache/james/mpt/protocol/FileProtocolSessionBuilder.java
 Mon Jun 29 08:56:41 2015
@@ -112,6 +112,13 @@ public class FileProtocolSessionBuilder
                     }
                     session.SL(sessionNumber, serverMsg, location, 
lastClientMsg);
                 }
+                else if (next.startsWith(WAIT)) {
+                    if (next.length() > 5) {
+                        session.WAIT(sessionNumber, 
Long.valueOf(next.substring(5)));
+                    } else {
+                        throw new Exception("Invalid line length on WAIT 
instruction : " + next);
+                    }
+                }
                 else if (next.startsWith(OPEN_UNORDERED_BLOCK_TAG)) {
                     List<String> unorderedLines = new ArrayList<String>(5);
                     next = reader.readLine();

Modified: 
james/mpt/trunk/core/src/main/java/org/apache/james/mpt/protocol/ProtocolSession.java
URL: 
http://svn.apache.org/viewvc/james/mpt/trunk/core/src/main/java/org/apache/james/mpt/protocol/ProtocolSession.java?rev=1688159&r1=1688158&r2=1688159&view=diff
==============================================================================
--- 
james/mpt/trunk/core/src/main/java/org/apache/james/mpt/protocol/ProtocolSession.java
 (original)
+++ 
james/mpt/trunk/core/src/main/java/org/apache/james/mpt/protocol/ProtocolSession.java
 Mon Jun 29 08:56:41 2015
@@ -179,6 +179,14 @@ public class ProtocolSession implements
     }
 
     /**
+     * adds a Wait condition
+     */
+    public void WAIT(int sessionNumber, long timeToWaitInMs) {
+        this.maxSessionNumber = Math.max(this.maxSessionNumber, sessionNumber);
+        testElements.add(new WaitElement(timeToWaitInMs));
+    }
+
+    /**
      * A client request, which write the specified message to a Writer.
      */
     private static class ClientRequest implements ProtocolElement {
@@ -474,6 +482,28 @@ public class ProtocolSession implements
         public boolean isClient() {
             return false;
         }
+    }
+
+    /**
+     * Allow you to wait a given time at a given point of the test script
+     */
+    private class WaitElement implements ProtocolElement {
+
+        private final long timeToWaitInMs;
+
+        public WaitElement(long timeToWaitInMs) {
+            this.timeToWaitInMs = timeToWaitInMs;
+        }
+
+        @Override
+        public void testProtocol(Session[] sessions, boolean 
continueAfterFailure) throws Exception {
+            Thread.sleep(timeToWaitInMs);
+        }
+
+        @Override
+        public boolean isClient() {
+            return false;
+        }
     }
 
     /**

Modified: 
james/mpt/trunk/core/src/main/java/org/apache/james/mpt/protocol/ProtocolSessionBuilder.java
URL: 
http://svn.apache.org/viewvc/james/mpt/trunk/core/src/main/java/org/apache/james/mpt/protocol/ProtocolSessionBuilder.java?rev=1688159&r1=1688158&r2=1688159&view=diff
==============================================================================
--- 
james/mpt/trunk/core/src/main/java/org/apache/james/mpt/protocol/ProtocolSessionBuilder.java
 (original)
+++ 
james/mpt/trunk/core/src/main/java/org/apache/james/mpt/protocol/ProtocolSessionBuilder.java
 Mon Jun 29 08:56:41 2015
@@ -38,7 +38,9 @@ import org.apache.james.mpt.api.Protocol
  * @version $Revision$
  */
 public class ProtocolSessionBuilder {
-    
+
+    public static final String WAIT = "WAIT";
+
     public static final String SERVER_CONTINUATION_TAG = "S: \\+";
 
     public static final String CLIENT_TAG = "C:";



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

Reply via email to