Re: SpringWicketTester code (tested with Wicket 1.4 and spring-wicket)

2009-12-13 Thread Peter Gardfjell

Great post!

I had difficulties getting the wicket tester up and running with my
Spring-enabled app but your class worked like a charm.

Wouldn't it be a good idea to contribute that code to the wicket-spring
subproject?

best regards, Peter
-- 
View this message in context: 
http://old.nabble.com/SpringWicketTester-code-%28tested-with-Wicket-1.4-and-spring-wicket%29-tp26326536p26765130.html
Sent from the Wicket - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: SpringWicketTester code (tested with Wicket 1.4 and spring-wicket)

2009-12-13 Thread benjamintilford

Does this handle transactions (e.g. rolls transactions back at the end of a
test method) like the test runners provided by Spring?


Loritsch, Berin C. wrote:
 
 import javax.servlet.ServletContext;
 
 import org.apache.wicket.protocol.http.MockServletContext;
 import org.apache.wicket.protocol.http.WebApplication;
 import org.apache.wicket.util.tester.WicketTester;
 import org.springframework.web.context.WebApplicationContext;
 import org.springframework.web.context.support.XmlWebApplicationContext;
 
 /**
  * Spring enabled WicketTester allows a user to test applications that
 have
  * been wired using the SpringComponentInjector.  This subclass of the
  * WicketTester sets up the spring web context, which is normally set up
 by
  * the org.springframework.web.context.ContextLoaderListener class.
  */
 public class SpringWicketTester extends WicketTester {
   /**
* The Spring web application context
*/
   private XmlWebApplicationContext spring;
   
   /**
* Instantiate the WicketTester with your application and a set
 of URLs
* to find the Spring XML configuration files.  Ex:
* 
* pre
* new SpringWicketTester(new MyApp(),
 classpath:application.xml,
*
 classpath:application-test.xml);
* /pre
* 
* @param app   Your Wicket web application
* @param springConfigURLs  The set of URLs for the
 configuration files.
*/
   public SpringWicketTester(WebApplication app, String...
 springConfigURLs) {
   this(app, null, springConfigURLs);
   }
   
   
   /**
* Instantiate the WicketTester with your application and a set
 of URLs
* to find the Spring XML configuration files.  Ex:
* 
* pre
* new SpringWicketTester(new MyApp(), myapp,
*
 classpath:application.xml,
*
 classpath:application-test.xml);
* /pre
* 
* @param app   Your Wicket web application
* @param context   The base url for the application
* @param springConfigURLs  The set of URLs for the
 configuration files.
*/
   public SpringWicketTester(WebApplication app, String context,
 String... springConfigURLs) {
   super(app, context);
 
   reconfigure(springConfigURLs);
   }
 
   /**
* Reconfigure the tester with new spring configuration files.
 This method
* also calls the Spring coderefresh/code method to force
 the files to
* load.
* 
* @param springConfigURLs  The set of URLs for the
 configuration files.
*/
   public void reconfigure(String... springConfigURLs) {
   getSpringContext().setConfigLocations(springConfigURLs);
   getSpringContext().refresh();
   }
 
   /**
* Create the new ServletContext that will be used with this
 test session.
* This method configures the spring web context to be included
 in your
* Servlet context.  It's the magic that makes everything happy.
* 
* @param path  the root context path for URLs
* 
* @return a configured ServletContext
*/
   @Override
   public ServletContext newServletContext(final String path) {
   ServletContext context = new
 MockServletContext(getApplication(), path);
   getSpringContext().setServletContext(context);
   
 context.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_
 ATTRIBUTE, spring);
   return context;
   }
   
   /**
* Lazy loader for the creating the SpringContext.  Required to
 work around
* the initialization in the constructor.
* 
* @return the single web application context for this tester
*/
   private XmlWebApplicationContext getSpringContext() {
   if(null == spring) {
   spring = new XmlWebApplicationContext();
   }
   
   return spring;
   }
 }
 
 

-- 
View this message in context: 
http://old.nabble.com/SpringWicketTester-code-%28tested-with-Wicket-1.4-and-spring-wicket%29-tp26326536p26769106.html
Sent from the Wicket - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



SpringWicketTester code (tested with Wicket 1.4 and spring-wicket)

2009-11-12 Thread Loritsch, Berin C.
import javax.servlet.ServletContext;

import org.apache.wicket.protocol.http.MockServletContext;
import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.util.tester.WicketTester;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.XmlWebApplicationContext;

/**
 * Spring enabled WicketTester allows a user to test applications that
have
 * been wired using the SpringComponentInjector.  This subclass of the
 * WicketTester sets up the spring web context, which is normally set up
by
 * the org.springframework.web.context.ContextLoaderListener class.
 */
public class SpringWicketTester extends WicketTester {
/**
 * The Spring web application context
 */
private XmlWebApplicationContext spring;

/**
 * Instantiate the WicketTester with your application and a set
of URLs
 * to find the Spring XML configuration files.  Ex:
 * 
 * pre
 * new SpringWicketTester(new MyApp(),
classpath:application.xml,
 *
classpath:application-test.xml);
 * /pre
 * 
 * @param app   Your Wicket web application
 * @param springConfigURLs  The set of URLs for the
configuration files.
 */
public SpringWicketTester(WebApplication app, String...
springConfigURLs) {
this(app, null, springConfigURLs);
}


/**
 * Instantiate the WicketTester with your application and a set
of URLs
 * to find the Spring XML configuration files.  Ex:
 * 
 * pre
 * new SpringWicketTester(new MyApp(), myapp,
 *
classpath:application.xml,
 *
classpath:application-test.xml);
 * /pre
 * 
 * @param app   Your Wicket web application
 * @param context   The base url for the application
 * @param springConfigURLs  The set of URLs for the
configuration files.
 */
public SpringWicketTester(WebApplication app, String context,
String... springConfigURLs) {
super(app, context);

reconfigure(springConfigURLs);
}

/**
 * Reconfigure the tester with new spring configuration files.
This method
 * also calls the Spring coderefresh/code method to force
the files to
 * load.
 * 
 * @param springConfigURLs  The set of URLs for the
configuration files.
 */
public void reconfigure(String... springConfigURLs) {
getSpringContext().setConfigLocations(springConfigURLs);
getSpringContext().refresh();
}

/**
 * Create the new ServletContext that will be used with this
test session.
 * This method configures the spring web context to be included
in your
 * Servlet context.  It's the magic that makes everything happy.
 * 
 * @param path  the root context path for URLs
 * 
 * @return a configured ServletContext
 */
@Override
public ServletContext newServletContext(final String path) {
ServletContext context = new
MockServletContext(getApplication(), path);
getSpringContext().setServletContext(context);

context.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_
ATTRIBUTE, spring);
return context;
}

/**
 * Lazy loader for the creating the SpringContext.  Required to
work around
 * the initialization in the constructor.
 * 
 * @return the single web application context for this tester
 */
private XmlWebApplicationContext getSpringContext() {
if(null == spring) {
spring = new XmlWebApplicationContext();
}

return spring;
}
}