/**
-* Copyright (C) 2009 EDIT
+* Copyright (C) 2014 EDIT
* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
*
import java.util.HashSet;
import java.util.Iterator;
+import java.util.List;
import java.util.Set;
import java.util.UUID;
-import org.hibernate.collection.internal.AbstractPersistentCollection;
-import org.hibernate.proxy.AbstractLazyInitializer;
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
import org.junit.Assert;
-import org.junit.Before;
+import org.junit.BeforeClass;
import org.junit.Test;
-import org.springframework.core.io.ClassPathResource;
-import org.springframework.core.io.Resource;
-import org.unitils.UnitilsJUnit4;
-import org.unitils.database.annotations.Transactional;
-import org.unitils.database.util.TransactionMode;
-import org.unitils.spring.annotation.SpringApplicationContext;
-import org.unitils.spring.annotation.SpringBeanByType;
+import org.junit.Ignore;
-import eu.etaxonomy.cdm.api.application.CdmApplicationController;
-import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
+import eu.etaxonomy.cdm.api.service.IClassificationService;
import eu.etaxonomy.cdm.api.service.ITaxonService;
-import eu.etaxonomy.cdm.database.CdmPersistentDataSource;
-import eu.etaxonomy.cdm.database.DataSourceNotFoundException;
-import eu.etaxonomy.cdm.database.ICdmDataSource;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.name.NonViralName;
+import eu.etaxonomy.cdm.model.name.Rank;
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.cdm.model.taxon.Classification;
import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
/**
- * This test class is a testing ground for solving the hibernate lazy loading problem using aspects
+ * Test class which tests remoting for persistent cdm entities.
*
- * FIXME:Remoting Neet to be able to launch a cdm server here a-la CdmIntegrationTests
- * To execute this test you need a local eclipse jetty cdmserver already running.
- * The data used in this test corresponds to the cyprus db, so the data should be changed to
- * suit the target datasource
- *
+ * FIXME:Remoting saving tests are ignored until the merge development is underway
* @author c.mathew
*
*/
-//@SpringApplicationContext("classpath:/eu/etaxonomy/cdm/remotingApplicationContext.xml")
-@Transactional(TransactionMode.DISABLED)
-public class RemoteLazyLoadingTest extends UnitilsJUnit4 {
+
+public class RemoteLazyLoadingTest extends RemoteApplicationConfigurationTest {
+
+ private static final Logger logger = Logger.getLogger(RemoteLazyLoadingTest.class);
+
+ private static IClassificationService classificationService;
+ private static ITaxonService taxonService;
- //@SpringBeanByType
- private ITaxonService taxonService;
+ private static List<TaxonNode> taxonNodes;
private UUID taxonUuid1 = UUID.fromString("8217ef77-2ab1-4318-bd67-ccd0cdef07c4");
private UUID taxonUuid2 = UUID.fromString("ef96fafa-7750-4141-b31b-1ad1daab3e76");
- ICdmApplicationConfiguration applicationController;
- /**
- * @throws DataSourceNotFoundException
- */
- @Before
- public void initializeContext() throws DataSourceNotFoundException {
- Resource DEFAULT_APPLICATION_CONTEXT = new ClassPathResource(
- "/eu/etaxonomy/cdm/remotingApplicationContext.xml");
- ICdmDataSource datasource = CdmPersistentDataSource.NewInstance("local-cyprus");
- ICdmApplicationConfiguration applicationController =
- CdmApplicationController.NewInstance(DEFAULT_APPLICATION_CONTEXT,
- datasource,
- null,
- false,
- null);
- AbstractLazyInitializer.setConfiguration(applicationController);
- AbstractPersistentCollection.setConfiguration(applicationController);
- taxonService = applicationController.getTaxonService();
- }
-
- @Test
- public void testCDMEntityGet() {
- Taxon taxon = (Taxon)taxonService.find(taxonUuid1);
- System.out.println("Taxon title : " + taxon.getTitleCache());
+ @BeforeClass
+ public static void initializeServices() {
+ Logger.getRootLogger().setLevel(Level.INFO);
- NonViralName nvn = CdmBase.deproxy(taxon.getName(),NonViralName.class);
- System.out.println("name : " + nvn.getTitleCache());
+ taxonService = applicationController.getTaxonService();
+ classificationService= applicationController.getClassificationService();
+ List<Classification> classifications = classificationService.listClassifications(1,0,null,null);
+ Assert.assertFalse(classifications.isEmpty());
+
+ Classification classification = classifications.get(0);
+ Assert.assertNotNull(classification);
+ taxonNodes = classificationService.getAllNodes();
+ Assert.assertFalse(taxonNodes.isEmpty());
+
}
+
+
@Test
- public void testCDMCollectionGet() {
- Taxon taxon = (Taxon)taxonService.find(taxonUuid1);
- System.out.println("Taxon title : " + taxon.getTitleCache());
+ public void testCDMEntityGet() {
+ Iterator<TaxonNode> taxonNodeItr = taxonNodes.iterator();
+ int maxcount = 30;
+ int count = 0;
+ while(taxonNodeItr.hasNext() && count <= maxcount) {
+ TaxonNode taxonNode = taxonNodeItr.next();
+ Assert.assertNotNull(taxonNode);
+
+ Taxon taxon = taxonNode.getTaxon();
+ Assert.assertNotNull(taxon);
+
+ String taxonTitle = taxon.getTitleCache();
+ logger.info("Taxon : " + taxonTitle);
+
+ TaxonNameBase name = taxon.getName();
+ Assert.assertNotNull(name);
+
+ String nameTitle = name.getTitleCache();
+ logger.info("Taxon Name : " + nameTitle);
+
+ count++;
+ }
+
- Set<SynonymRelationship> synRelations = taxon.getSynonymRelations();
- Iterator<SynonymRelationship> srItr = synRelations.iterator();
- while(srItr.hasNext()) {
- SynonymRelationship sr = srItr.next();
- System.out.println("Synonym Relationship : " + sr.getType().getTitleCache());
- }
}
+
+ @Ignore
@Test
public void testCDMEntitySaveEager() {
Taxon taxon = (Taxon)taxonService.find(taxonUuid1);
}
+ @Ignore
@Test
public void testCDMEntitySaveLazy() {
Taxon taxon = (Taxon)taxonService.find(taxonUuid1);
Assert.assertEquals("Title caches should be equal",oldTitleCache,nvnOld.getTitleCache());
}
+ @Ignore
@Test
public void testCDMEntitySaveCollection() {
Taxon taxon = (Taxon)taxonService.find(taxonUuid1);