*/
package eu.etaxonomy.taxeditor.httpinvoker;
+import java.lang.reflect.Field;
+
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.Resource;
import org.unitils.UnitilsJUnit4;
import org.unitils.database.DatabaseUnitils;
import org.unitils.database.annotations.Transactional;
import org.unitils.database.util.TransactionMode;
+import org.unitils.spring.annotation.SpringApplicationContext;
import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
*
*/
@Transactional(TransactionMode.DISABLED)
+@SpringApplicationContext("file:./target/test-classes/eu/etaxonomy/cdm/testRemotingApplicationContext.xml")
public class BaseRemotingTest extends UnitilsJUnit4 {
- private static final Logger logger = Logger.getLogger(BaseRemotingTest.class);
+ //private static final Logger logger = Logger.getLogger(BaseRemotingTest.class);
+
+ private static final Resource TEST_REMOTE_APPLICATION_CONTEXT_RESOURCE =
+ new ClassPathResource("/eu/etaxonomy/cdm/testRemotingApplicationContext.xml");
private static ICdmApplicationConfiguration remoteApplicationController;
private static ICdmRemoteSource cdmRemoteSource;
private static CdmPersistentRemoteSource remotePersistentSource;
- private static boolean stoppingServer = false;
+ public static boolean useManagedServer = false;
@BeforeClass
- public static void initializeBaseRemotingTest() {
- Logger.getRootLogger().setLevel(Level.INFO);
-
- //DatabaseUnitils.disableConstraints();
- try {
- CDMServer.getInstance().start();
- } catch (Exception e) {
- e.printStackTrace();
- Assert.fail("Server failed to start. Reason : " + e.getMessage());
- }
- cdmRemoteSource = CdmRemoteSource.NewInstance(CDMServer.getInstance().getName(),
+ public static void initializeBaseRemotingTest() {
+ //Logger.getRootLogger().setLevel(Level.INFO);
+ useManagedServer = (System.getProperty("use.managed.server") == null) ? useManagedServer : Boolean.valueOf(System.getProperty("use.managed.server"));
+ if(useManagedServer) {
+ try {
+ CDMServer.getInstance().start();
+ } catch (Exception e) {
+ e.printStackTrace();
+ Assert.fail("Server failed to start. Reason : " + e.getMessage());
+ }
+
+ initializeController(CDMServer.getInstance().getName(),
CDMServer.getInstance().getHost(),
CDMServer.getInstance().getPort(),
CDMServer.getInstance().getContextPath(),
NomenclaturalCode.ICNAFP);
+ }
+ }
+
+
+ public static void initializeController(String sourceName, String host, int port, String contextPath, NomenclaturalCode ncode) {
+
+ cdmRemoteSource = CdmRemoteSource.NewInstance(sourceName, host, port, contextPath, ncode);
remoteApplicationController =
CdmApplicationRemoteController.NewInstance(cdmRemoteSource,
false,
null);
try {
- remotePersistentSource = CdmPersistentRemoteSource.NewInstance("default");
+ remotePersistentSource = CdmPersistentRemoteSource.NewInstance(sourceName);
} catch (CdmRemoteSourceException e) {
Assert.fail("Default Remote Persistent Source failed to load. Reason : " + e.getMessage());
}
}
+
protected static ICdmApplicationConfiguration getRemoteApplicationController() {
return remoteApplicationController;
}
}
+ protected static Object getFieldValueViaReflection(Object object, String fieldName) {
+ Class<?> clazz = object.getClass();
+ try {
+ Field field = clazz.getDeclaredField(fieldName);
+ field.setAccessible(true);
+ return field.get(object);
+ } catch (NoSuchFieldException e) {
+ e.printStackTrace();
+ } catch (SecurityException e) {
+ e.printStackTrace();
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+
+
+
}