X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/blobdiff_plain/e3bcf9949a000ee3d35875dc200d51cfb60fc70c..6edbda865885ff579c6ecf02aa27277b96569a6c:/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/BaseRemotingTest.java diff --git a/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/BaseRemotingTest.java b/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/BaseRemotingTest.java index 694d80e57..18dfb3ba0 100644 --- a/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/BaseRemotingTest.java +++ b/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/BaseRemotingTest.java @@ -8,29 +8,17 @@ */ package eu.etaxonomy.taxeditor.httpinvoker; -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; import java.lang.reflect.Field; -import java.net.URL; import java.util.Map; -import java.util.Properties; import net.sf.ehcache.CacheManager; import org.apache.log4j.Logger; -import org.eclipse.core.runtime.FileLocator; -import org.eclipse.core.runtime.Platform; -import org.junit.Assert; import org.junit.BeforeClass; -import org.osgi.framework.Bundle; -import org.springframework.core.io.ClassPathResource; -import org.springframework.core.io.Resource; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.context.SecurityContextImpl; -import org.unitils.UnitilsJUnit4; import org.unitils.database.DatabaseUnitils; import org.unitils.database.annotations.Transactional; import org.unitils.database.util.TransactionMode; @@ -45,7 +33,6 @@ import eu.etaxonomy.taxeditor.remoting.cache.CdmRemoteCacheManager; import eu.etaxonomy.taxeditor.remoting.cache.CdmTransientEntityCacher; import eu.etaxonomy.taxeditor.remoting.source.CdmPersistentRemoteSource; import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSource; -import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSourceException; import eu.etaxonomy.taxeditor.remoting.source.ICdmRemoteSource; import eu.etaxonomy.taxeditor.session.CdmEntitySession; import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled; @@ -61,73 +48,24 @@ import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager; */ @Transactional(TransactionMode.DISABLED) @SpringApplicationContext("file:./target/classes/eu/etaxonomy/cdm/testRemotingApplicationContext.xml") -public abstract class BaseRemotingTest extends UnitilsJUnit4 { - private static final Logger logger = Logger.getLogger(BaseRemotingTest.class); - - - public static final Resource SERVER_PROPERTIES_FILE = - new ClassPathResource("server.properties"); +public abstract class BaseRemotingTest extends ThreadedTest { + @SuppressWarnings("unused") + private static final Logger logger = Logger.getLogger(BaseRemotingTest.class); private static ICdmRemoteSource cdmRemoteSource; private static CdmPersistentRemoteSource remotePersistentSource; - - public static boolean useManagedServer = true; - - protected static ICdmEntitySessionManager cdmEntitySessionManager; - private final static String DEFAULT_USER = "admin"; - private final static String DEFAULT_PASSWORD = "00000"; - - private static String userHomeKey = "user.home"; - - private static String user = DEFAULT_USER; - private static String password = DEFAULT_PASSWORD; - - protected static CDMServer cdmServer; - @BeforeClass public static void initializeBaseRemotingTest() { DatabaseUnitils.disableConstraints(); try { - String userHomeDirPath; - Bundle bundle = Platform.getBundle("eu.etaxonomy.taxeditor.test"); - - URL userHomeDirURL = bundle.getEntry("src/test/resources"); - File userHomeDir = new File(FileLocator.resolve(userHomeDirURL).toURI()); - userHomeDirPath = userHomeDir.getAbsolutePath(); - - URL serverPropertiesURL = bundle.getEntry("src/test/resources/server.properties"); - File serverPropertiesFile = new File(FileLocator.resolve(serverPropertiesURL).toURI()); - InputStream inputStream = new FileInputStream(serverPropertiesFile); - - Properties prop = new Properties(); - if (inputStream != null) { - prop.load(inputStream); - inputStream.close(); - } - - logger.info("Setting user.home to " + userHomeDirPath); - System.setProperty(userHomeKey, userHomeDirPath); - - - cdmServer = new CDMServer("cdmTest", serverPropertiesURL); - - - if(prop.getProperty("user") != null) { - user = prop.getProperty("user"); - } - - if(prop.getProperty("password") != null) { - password = prop.getProperty("password"); - } - - initializeController(cdmServer.getName(), - cdmServer.getHost(), - cdmServer.getPort(), - cdmServer.getContextPath(), + initializeController(sourceName, + host, + httpPort, + contextPath, NomenclaturalCode.ICNAFP, user, password); @@ -136,8 +74,7 @@ public abstract class BaseRemotingTest extends UnitilsJUnit4 { // Assert.fail("Server failed to start. Reason : " + e.getMessage()); } - logger.info("Emptying all caches (except model cache) "); - //emptyAllCachesExceptModelCache(); + } public static void emptyAllCachesExceptModelCache() { @@ -163,15 +100,17 @@ public abstract class BaseRemotingTest extends UnitilsJUnit4 { null); CdmApplicationState.setCurrentAppConfig(remoteApplicationController); CdmApplicationState.setCdmServiceCacher(new CdmServiceCacher()); - try { - remotePersistentSource = CdmPersistentRemoteSource.NewInstance(sourceName); - } catch (CdmRemoteSourceException e) { - Assert.fail("Default Remote Persistent Source failed to load. Reason : " + e.getMessage()); - } + cdmEntitySessionManager = getRemoteApplicationController().getCdmEntitySessionManager(); CdmApplicationState.setCurrentDataChangeService(new CdmDataChangeService()); + authenticate(username, password); + + } + + protected static void authenticate(String username, String password) { + //FIXME:Remoting the authentication code should be replaced by a method call which actually // does the authentication in the editor code so that the 'real' authentication can be tested SecurityContextHolder.clearContext(); @@ -183,8 +122,8 @@ public abstract class BaseRemotingTest extends UnitilsJUnit4 { SecurityContextHolder.setContext(sc); CdmApplicationState.setCurrentSecurityContext(SecurityContextHolder.getContext()); - } + } protected static CdmApplicationRemoteController getRemoteApplicationController() { @@ -211,7 +150,7 @@ public abstract class BaseRemotingTest extends UnitilsJUnit4 { } protected static CdmEntitySession getActiveSession() { - return (CdmEntitySession) getFieldValueViaReflection(cdmEntitySessionManager, "activeSession"); + return ((InheritableThreadLocal) getFieldValueViaReflection(cdmEntitySessionManager, "tlActiveSession")).get(); } protected static CdmTransientEntityCacher getCacher(ICdmEntitySessionEnabled sessionOwner) { @@ -238,6 +177,9 @@ public abstract class BaseRemotingTest extends UnitilsJUnit4 { } + protected static void authenticateDefaultUser() { + authenticate(user, password); + } }