package org.argeo.slc.unit; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import junit.framework.TestCase; /** Helper for tests using a Spring application co,text. */ public abstract class SpringBasedTestCase extends TestCase { private ApplicationContext context; /** * Gets (and create if necessary) the application context to use. Default * implementation uses a class path xml application context and calls * {@link #getApplicationContextLocation()}. */ protected ApplicationContext getContext() { if (context == null) { context = new ClassPathXmlApplicationContext( getApplicationContextLocation()); } return context; } /** * Th location of the application to load. The default implementation * returns applicationContext.xml found in the same package as the * test. */ protected String getApplicationContextLocation() { return inPackage("applicationContext.xml"); } /** * Prefixes the package of the class after converting the '.' to '/' in * order to have a resource path. */ protected String inPackage(String suffix) { String prefix = getClass().getPackage().getName().replace('.', '/'); return prefix + '/' + suffix; } }