You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by ju...@apache.org on 2020/03/21 17:04:14 UTC
[jspwiki] 12/36: added new static methods on TestEngine to ease
creation ofinstances with custom properties
This is an automated email from the ASF dual-hosted git repository.
juanpablo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jspwiki.git
commit 0de5b151f82344d64dc5cf00af80d1e9ede0a966
Author: juanpablo <ju...@apache.org>
AuthorDate: Fri Mar 20 19:37:06 2020 +0100
added new static methods on TestEngine to ease creation ofinstances with custom properties
---
.../src/test/java/org/apache/wiki/TestEngine.java | 80 +++++++++++++++-------
1 file changed, 55 insertions(+), 25 deletions(-)
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/TestEngine.java b/jspwiki-main/src/test/java/org/apache/wiki/TestEngine.java
index 559c375..d096e06 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/TestEngine.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/TestEngine.java
@@ -28,6 +28,7 @@ import org.apache.wiki.api.core.Page;
import org.apache.wiki.api.core.Session;
import org.apache.wiki.api.exceptions.ProviderException;
import org.apache.wiki.api.exceptions.WikiException;
+import org.apache.wiki.api.providers.AttachmentProvider;
import org.apache.wiki.api.providers.PageProvider;
import org.apache.wiki.attachment.Attachment;
import org.apache.wiki.auth.AuthenticationManager;
@@ -49,15 +50,16 @@ import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.StringReader;
+import java.util.AbstractMap;
import java.util.Locale;
+import java.util.Map;
import java.util.Properties;
/**
* Simple test engine that always assumes pages are found.
*/
-public class TestEngine extends WikiEngine
-{
- static Logger log = Logger.getLogger( TestEngine.class );
+public class TestEngine extends WikiEngine {
+ private static final Logger log = Logger.getLogger( TestEngine.class );
private Session m_adminWikiSession = null;
private Session m_janneWikiSession = null;
@@ -67,34 +69,28 @@ public class TestEngine extends WikiEngine
private static Properties combinedProperties = null;
/**
- * Creates WikiSession with the privileges of the administrative user.
- * For testing purposes, obviously.
+ * Creates WikiSession with the privileges of the administrative user. For testing purposes, obviously.
+ *
* @return the wiki session
* @throws WikiSecurityException
*/
- public Session adminSession() throws WikiSecurityException
- {
- if ( m_adminWikiSession == null )
- {
+ public Session adminSession() throws WikiSecurityException {
+ if ( m_adminWikiSession == null ) {
// Set up long-running admin session
final HttpServletRequest request = newHttpRequest();
m_adminWikiSession = WikiSession.getWikiSession( this, request );
- this.getAuthenticationManager().login( m_adminWikiSession, request,
- Users.ADMIN,
- Users.ADMIN_PASS );
+ this.getAuthenticationManager().login( m_adminWikiSession, request, Users.ADMIN, Users.ADMIN_PASS );
}
return m_adminWikiSession;
}
/**
- * Creates guest WikiSession with the no privileges.
- * For testing purposes, obviously.
+ * Creates guest WikiSession with the no privileges. For testing purposes, obviously.
+ *
* @return the wiki session
*/
- public Session guestSession()
- {
- if ( m_guestWikiSession == null )
- {
+ public Session guestSession() {
+ if ( m_guestWikiSession == null ) {
// Set up guest session
final HttpServletRequest request = newHttpRequest();
m_guestWikiSession = WikiSession.getWikiSession( this, request );
@@ -103,15 +99,13 @@ public class TestEngine extends WikiEngine
}
/**
- * Creates WikiSession with the privileges of the Janne.
- * For testing purposes, obviously.
+ * Creates WikiSession with the privileges of the Janne. For testing purposes, obviously.
+ *
* @return the wiki session
* @throws WikiSecurityException
*/
- public Session janneSession() throws WikiSecurityException
- {
- if ( m_janneWikiSession == null )
- {
+ public Session janneSession() throws WikiSecurityException {
+ if ( m_janneWikiSession == null ) {
// Set up a test Janne session
final HttpServletRequest request = newHttpRequest();
m_janneWikiSession = WikiSession.getWikiSession( this, request );
@@ -120,10 +114,46 @@ public class TestEngine extends WikiEngine
return m_janneWikiSession;
}
+ /**
+ * Obtains a TestEngine using {@link #getTestProperties()}.
+ *
+ * @return TestEngine using {@link #getTestProperties()}.
+ */
public static TestEngine build() {
return build( getTestProperties() );
}
+ /**
+ * Obtains a TestEngine using {@link #getTestProperties()} and additional configuration.
+ *
+ * @param entries additional configuration entries that may overwrite default test properties.
+ * @return TestEngine using {@link #getTestProperties()} and additional configuration.
+ */
+ public static TestEngine build( final Map.Entry< String, String >... entries ) {
+ final Properties properties = getTestProperties();
+ for( final Map.Entry< String, String > entry : entries ) {
+ properties.setProperty( entry.getKey(), entry.getValue() );
+ }
+ return build( properties );
+ }
+
+ /**
+ * Helper method, intended to be imported statically, to ease passing properties to {@link #build(Map.Entry[])}.
+ *
+ * @param prop property name.
+ * @param value property value.
+ * @return populated entry ready to be used in {@link #build(Map.Entry[])}.
+ */
+ public static Map.Entry< String, String > with( final String prop, final String value ) {
+ return new AbstractMap.SimpleEntry<>( prop, value );
+ }
+
+ /**
+ * Obtains a TestEngine using the provided properties.
+ *
+ * @param props configuration entries.
+ * @return TestEngine using the provided properties.
+ */
public static TestEngine build( final Properties props ) {
try {
return new TestEngine( props );
@@ -333,7 +363,7 @@ public class TestEngine extends WikiEngine
final Properties properties = getTestProperties();
try {
- final String files = properties.getProperty( BasicAttachmentProvider.PROP_STORAGEDIR );
+ final String files = properties.getProperty( AttachmentProvider.PROP_STORAGEDIR );
final File f = new File( files, TextUtil.urlEncodeUTF8( page ) + BasicAttachmentProvider.DIR_EXTENSION );
deleteAll( f );