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 er...@apache.org on 2013/03/11 07:43:25 UTC
svn commit: r1455014 - in /james/mpt/trunk:
core/src/main/java/org/apache/james/mpt/
impl/imap-mailbox/src/test/java/org/apache/james/mpt/imapmailbox/
impl/imap-mailbox/src/test/java/org/apache/james/mpt/imapmailbox/base/
Author: eric
Date: Mon Mar 11 06:43:24 2013
New Revision: 1455014
URL: http://svn.apache.org/r1455014
Log:
Merge AbstractSimpleScriptedTestProtocol (MPT-4)
Added:
james/mpt/trunk/core/src/main/java/org/apache/james/mpt/FileProtocolSessionBuilder.java
- copied, changed from r1455012, james/mpt/trunk/impl/imap-mailbox/src/test/java/org/apache/james/mpt/imapmailbox/base/FileProtocolSessionBuilder.java
Removed:
james/mpt/trunk/impl/imap-mailbox/src/test/java/org/apache/james/mpt/imapmailbox/base/AbstractSimpleScriptedTestProtocol.java
james/mpt/trunk/impl/imap-mailbox/src/test/java/org/apache/james/mpt/imapmailbox/base/FileProtocolSessionBuilder.java
Modified:
james/mpt/trunk/core/src/main/java/org/apache/james/mpt/AbstractSimpleScriptedTestProtocol.java
james/mpt/trunk/impl/imap-mailbox/src/test/java/org/apache/james/mpt/imapmailbox/ImapProtocolFramework.java
Modified: james/mpt/trunk/core/src/main/java/org/apache/james/mpt/AbstractSimpleScriptedTestProtocol.java
URL: http://svn.apache.org/viewvc/james/mpt/trunk/core/src/main/java/org/apache/james/mpt/AbstractSimpleScriptedTestProtocol.java?rev=1455014&r1=1455013&r2=1455014&view=diff
==============================================================================
--- james/mpt/trunk/core/src/main/java/org/apache/james/mpt/AbstractSimpleScriptedTestProtocol.java (original)
+++ james/mpt/trunk/core/src/main/java/org/apache/james/mpt/AbstractSimpleScriptedTestProtocol.java Mon Mar 11 06:43:24 2013
@@ -22,44 +22,56 @@ package org.apache.james.mpt;
import java.io.InputStream;
import java.util.Locale;
+import org.apache.commons.io.IOUtils;
+import org.junit.After;
/**
* A Protocol test which reads the test protocol session from a file. The file
* read is taken as "<test-name>.test", where <test-name> is the value passed
- * into the constructor. Subclasses of this test can set up pre-
- * and post elements for extra elements not defined in the protocol
+ * into the constructor. Subclasses of this test can set up {@link #preElements}
+ * and {@link #postElements} for extra elements not defined in the protocol
* session file.
*/
-public abstract class AbstractSimpleScriptedTestProtocol extends
- AbstractProtocolTestFramework {
- private ProtocolSessionBuilder builder = new ProtocolSessionBuilder();
+public abstract class AbstractSimpleScriptedTestProtocol extends AbstractProtocolTestFramework {
+ private FileProtocolSessionBuilder builder = new FileProtocolSessionBuilder();
private static final Locale BASE_DEFAULT_LOCALE = Locale.getDefault();
-
+
+ private final String scriptDirectory;
+
/**
- * Constructs a scripted test.
- * @param hostSystem not null
- * @param userName user name
- * @param password password for user
+ * Sets up a SimpleFileProtocolTest which reads the protocol session from a
+ * file of name "<fileName>.test". This file should be available in the
+ * classloader in the same location as this test class.
+ *
+ * @param scriptDirectory
+ * name of the directory containing the scripts to be run
+ * @param fileName
+ * The name of the file to read protocol elements from.
+ * @throws Exception
*/
- public AbstractSimpleScriptedTestProtocol(HostSystem hostSystem, String userName, String password) {
+ public AbstractSimpleScriptedTestProtocol(HostSystem hostSystem, String userName, String password,
+ String scriptDirectory) throws Exception {
super(hostSystem, userName, password);
+ this.scriptDirectory = scriptDirectory;
}
-
- protected void tearDown() throws Exception {
- Locale.setDefault(BASE_DEFAULT_LOCALE);
+
+ @After
+ public void tearDown() throws Exception {
super.tearDown();
+ Locale.setDefault(BASE_DEFAULT_LOCALE);
}
/**
* Reads test elements from the protocol session file and adds them to the
- * ProtocolSession. Then calls {@link #runSessions()}.
+ * {@link #testElements} ProtocolSession. Then calls {@link #runSessions}.
*
- * @param locale test under this default locale, not null
+ * @param locale
+ * execute the test using this locale
*/
protected void scriptTest(String fileName, Locale locale) throws Exception {
Locale.setDefault(locale);
- addTestFile(fileName + ".test", runner.getTestElements());
+ addTestFile(fileName + ".test", testElements);
runSessions();
}
@@ -73,14 +85,21 @@ public abstract class AbstractSimpleScri
* @param session
* The ProtocolSession to add elements to.
*/
- protected void addTestFile(String fileName, ProtocolInteractor session)
- throws Exception {
+ protected void addTestFile(String fileName, ProtocolSession session) throws Exception {
+ fileName = scriptDirectory + fileName;
// Need to find local resource.
InputStream is = this.getClass().getResourceAsStream(fileName);
+
if (is == null) {
throw new Exception("Test Resource '" + fileName + "' not found.");
}
- builder.addProtocolLines(fileName, is, session);
+ try {
+ builder.addProtocolLinesFromStream(is, session, fileName);
+ }
+ finally {
+ IOUtils.closeQuietly(is);
+ }
}
+
}
Copied: james/mpt/trunk/core/src/main/java/org/apache/james/mpt/FileProtocolSessionBuilder.java (from r1455012, james/mpt/trunk/impl/imap-mailbox/src/test/java/org/apache/james/mpt/imapmailbox/base/FileProtocolSessionBuilder.java)
URL: http://svn.apache.org/viewvc/james/mpt/trunk/core/src/main/java/org/apache/james/mpt/FileProtocolSessionBuilder.java?p2=james/mpt/trunk/core/src/main/java/org/apache/james/mpt/FileProtocolSessionBuilder.java&p1=james/mpt/trunk/impl/imap-mailbox/src/test/java/org/apache/james/mpt/imapmailbox/base/FileProtocolSessionBuilder.java&r1=1455012&r2=1455014&rev=1455014&view=diff
==============================================================================
--- james/mpt/trunk/impl/imap-mailbox/src/test/java/org/apache/james/mpt/imapmailbox/base/FileProtocolSessionBuilder.java (original)
+++ james/mpt/trunk/core/src/main/java/org/apache/james/mpt/FileProtocolSessionBuilder.java Mon Mar 11 06:43:24 2013
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.james.mpt.imapmailbox.base;
+package org.apache.james.mpt;
import java.io.BufferedReader;
import java.io.InputStream;
@@ -26,7 +26,6 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.commons.io.IOUtils;
-import org.apache.james.mpt.ProtocolSession;
/**
* A builder which generates a ProtocolSession from a test file.
Modified: james/mpt/trunk/impl/imap-mailbox/src/test/java/org/apache/james/mpt/imapmailbox/ImapProtocolFramework.java
URL: http://svn.apache.org/viewvc/james/mpt/trunk/impl/imap-mailbox/src/test/java/org/apache/james/mpt/imapmailbox/ImapProtocolFramework.java?rev=1455014&r1=1455013&r2=1455014&view=diff
==============================================================================
--- james/mpt/trunk/impl/imap-mailbox/src/test/java/org/apache/james/mpt/imapmailbox/ImapProtocolFramework.java (original)
+++ james/mpt/trunk/impl/imap-mailbox/src/test/java/org/apache/james/mpt/imapmailbox/ImapProtocolFramework.java Mon Mar 11 06:43:24 2013
@@ -18,17 +18,16 @@
****************************************************************/
package org.apache.james.mpt.imapmailbox;
+import org.apache.james.mpt.AbstractSimpleScriptedTestProtocol;
import org.apache.james.mpt.HostSystem;
-import org.apache.james.mpt.imapmailbox.base.AbstractSimpleScriptedTestProtocol;
/**
* Specialise the protocol test framework for IMAP.
*/
-public abstract class ImapProtocolFramework extends
- AbstractSimpleScriptedTestProtocol implements ImapTestConstants {
+public abstract class ImapProtocolFramework extends AbstractSimpleScriptedTestProtocol implements ImapTestConstants {
public ImapProtocolFramework(final HostSystem hostSystem) throws Exception {
super(hostSystem, USER, PASSWORD, "/org/apache/james/imap/scripts/");
}
-}
\ No newline at end of file
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org