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: [email protected]
For additional commands, e-mail: [email protected]