Ignore:
Timestamp:
08/20/13 15:32:37 (11 years ago)
Author:
George.Georgovassilis@mpi.nl
Message:

#360 Refactoring of transaction handling, tests and application context

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ComponentRegistry/trunk/ComponentRegistry/src/test/java/clarin/cmdi/componentregistry/rest/ComponentRegistryRestServiceTestCase.java

    r1696 r3449  
    55import javax.ws.rs.core.HttpHeaders;
    66
    7 
    8 import clarin.cmdi.componentregistry.impl.database.UserDao;
     7import clarin.cmdi.componentregistry.impl.database.IUserDAO;
    98import clarin.cmdi.componentregistry.model.Comment;
    109import clarin.cmdi.componentregistry.model.ComponentDescription;
     
    2322import com.sun.jersey.test.framework.JerseyTest;
    2423import com.sun.jersey.test.framework.WebAppDescriptor;
     24import com.sun.jersey.test.framework.spi.container.TestContainerFactory;
    2525
     26import org.junit.runner.RunWith;
    2627import org.springframework.beans.factory.annotation.Autowired;
     28import org.springframework.test.context.ContextConfiguration;
     29import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
     30import org.springframework.test.context.transaction.TransactionConfiguration;
     31import org.springframework.transaction.annotation.Transactional;
    2732import org.springframework.web.context.ContextLoaderListener;
    2833import org.springframework.web.context.request.RequestContextListener;
    2934
     35/**
     36 * Base test that starts a servlet container with the component registry
     37 * @author george.georgovassilis@mpi.nl
     38 *
     39 */
     40@RunWith(SpringJUnit4ClassRunner.class)
     41@ContextConfiguration(locations = {
     42        "classpath:spring-config/applicationContext.xml",
     43        "classpath:spring-config/datasource-hsqldb.xml" })
     44@TransactionConfiguration(defaultRollback = true)
     45@Transactional
    3046public abstract class ComponentRegistryRestServiceTestCase extends JerseyTest {
    31     //CommandLine test e.g.:  curl -i -H "Accept:application/json" -X GET  http://localhost:8080/ComponentRegistry/rest/registry/profiles
     47    // CommandLine test e.g.: curl -i -H "Accept:application/json" -X GET
     48    // http://localhost:8080/ComponentRegistry/rest/registry/profiles
    3249
    3350    protected final static GenericType<List<ProfileDescription>> PROFILE_LIST_GENERICTYPE = new GenericType<List<ProfileDescription>>() {
     
    3855    };
    3956
     57    private static SingletonTestContainerFactory _testContainerFactory;
     58
     59    @Override
     60    public void setUp() throws Exception {
     61        if (!_testContainerFactory.isTestContainerRunning()) {
     62            _testContainerFactory.startTestContainer();
     63        }
     64    }
     65
     66    @Override
     67    public void tearDown() throws Exception {
     68    }
     69
     70    @Override
     71    protected TestContainerFactory getTestContainerFactory() {
     72        if (_testContainerFactory == null) {
     73            _testContainerFactory = new SingletonTestContainerFactory(
     74                    super.getTestContainerFactory());
     75        }
     76        ;
     77        return _testContainerFactory;
     78    }
     79
    4080    @Autowired
    41     private UserDao userDao;
     81    private IUserDAO userDao;
    4282
    43    
    44     protected abstract String getApplicationContextFile();
     83    protected String getApplicationContextFile() {
     84        // sorry for the duplication, but JerseyTest is not aware of
     85        // @ContextConfiguration
     86        return "classpath:spring-config/applicationContext.xml, classpath:spring-config/datasource-hsqldb.xml";
     87    }
    4588
    4689    @Override
    4790    protected AppDescriptor configure() {
    48         WebAppDescriptor.Builder builder = new WebAppDescriptor.Builder()
    49                 .contextParam("contextConfigLocation", getApplicationContextFile())
    50                 .servletClass(SpringServlet.class)
    51                 .initParam(WebComponent.RESOURCE_CONFIG_CLASS,ClassNamesResourceConfig.class.getName())
    52                 .initParam(ClassNamesResourceConfig.PROPERTY_CLASSNAMES,FormDataMultiPartDispatchProvider.class.getName() + ";" + ComponentRegistryRestService.class.getName())
    53                 .addFilter(DummySecurityFilter.class, "DummySecurityFilter")
    54                 .requestListenerClass(RequestContextListener.class)
    55                 .contextListenerClass(ContextLoaderListener.class)
    56                 ;
    57         return builder.build();
     91        WebAppDescriptor.Builder builder = new WebAppDescriptor.Builder()
     92                .contextParam("contextConfigLocation",
     93                        getApplicationContextFile())
     94                .servletClass(SpringServlet.class)
     95                .initParam(WebComponent.RESOURCE_CONFIG_CLASS,
     96                        ClassNamesResourceConfig.class.getName())
     97                .initParam(
     98                        ClassNamesResourceConfig.PROPERTY_CLASSNAMES,
     99                        FormDataMultiPartDispatchProvider.class.getName() + ";"
     100                                + ComponentRegistryRestService.class.getName())
     101                .addFilter(DummySecurityFilter.class, "DummySecurityFilter")
     102                .requestListenerClass(RequestContextListener.class)
     103                .contextListenerClass(ContextLoaderListener.class);
     104        return builder.build();
    58105    }
    59106
    60107    protected WebResource getResource() {
    61         return resource();
     108        return resource();
    62109    }
    63110
    64111    protected Builder getAuthenticatedResource(String path) {
    65         return getAuthenticatedResource(getResource().path(path));
     112        return getAuthenticatedResource(getResource().path(path));
    66113    }
    67114
    68115    protected Builder getAuthenticatedResource(WebResource resource) {
    69         return resource.header(HttpHeaders.AUTHORIZATION, "Basic "
    70                 + new String(Base64.encode(DummyPrincipal.DUMMY_PRINCIPAL.getName() + ":dummy")));
     116        return resource.header(
     117                HttpHeaders.AUTHORIZATION,
     118                "Basic "
     119                        + new String(Base64
     120                                .encode(DummyPrincipal.DUMMY_PRINCIPAL
     121                                        .getName() + ":dummy")));
    71122    }
    72    
     123
    73124    protected void createUserRecord() {
    74125        RegistryUser user = new RegistryUser();
     
    77128        userDao.insertUser(user);
    78129    }
    79    
    80     protected UserDao getUserDao() {
     130
     131    protected IUserDAO getUserDao() {
    81132        return userDao;
    82133    }
Note: See TracChangeset for help on using the changeset viewer.