added more tests for both lazy loading entities and collections
[taxeditor.git] / eu.etaxonomy.taxeditor.cdmlib / src / test / java / eu / etaxonomy / taxeditor / remoting / RemoteLazyLoadingTest.java
index 288ead0574a55544d7cfd8f1b14e2ad5bc43d20f..a0451ae767735373410e3580fc8a58590ef5691f 100644 (file)
@@ -1,5 +1,5 @@
 /**
-* Copyright (C) 2009 EDIT
+* Copyright (C) 2014 EDIT
 * European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
 *
@@ -11,100 +11,99 @@ package eu.etaxonomy.taxeditor.remoting;
 
 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);
@@ -130,6 +129,7 @@ public class RemoteLazyLoadingTest extends UnitilsJUnit4 {
                        
        }
        
+       @Ignore
        @Test
        public void testCDMEntitySaveLazy() {
                Taxon taxon = (Taxon)taxonService.find(taxonUuid1);
@@ -156,6 +156,7 @@ public class RemoteLazyLoadingTest extends UnitilsJUnit4 {
                Assert.assertEquals("Title caches should be equal",oldTitleCache,nvnOld.getTitleCache());               
        }
        
+       @Ignore
        @Test
        public void testCDMEntitySaveCollection() {
                Taxon taxon = (Taxon)taxonService.find(taxonUuid1);