ref #6199 test for reading excluded, unplaced and excludedNote
authorAndreas Müller <a.mueller@bgbm.org>
Thu, 24 Nov 2016 11:00:27 +0000 (12:00 +0100)
committerAndreas Müller <a.mueller@bgbm.org>
Thu, 24 Nov 2016 11:00:27 +0000 (12:00 +0100)
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/taxon/TaxonNode.java
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/taxon/TaxonNodeDaoHibernateImplTest.java
cdmlib-persistence/src/test/resources/eu/etaxonomy/cdm/persistence/dao/hibernate/taxon/TaxonNodeDaoHibernateImplTest.xml

index 2c7f2d46ec943cf7957da96f95d16b02856c24b4..52d469051cdd30674a2111021d62f7fcc06bed98 100755 (executable)
@@ -327,7 +327,7 @@ public class TaxonNode extends AnnotatableEntity implements ITaxonTreeNode, ITre
         this.parent = parent;
     }
 
-    //Excluded Note
+    // *************** Excluded Note ***************
 
     /**
      * Returns the {@link MultilanguageText multi-language text} to add a note to the
@@ -367,7 +367,7 @@ public class TaxonNode extends AnnotatableEntity implements ITaxonTreeNode, ITre
      * @see                 #putExcludedNote(String, Language)
      */
     public void putExcludedNote(LanguageString excludedNote){
-        this.excludedNote.put(excludedNote.getLanguage(),excludedNote);
+        this.excludedNote.put(excludedNote.getLanguage(), excludedNote);
     }
     /**
      * Creates a {@link LanguageString language string} based on the given text string
index 928064f5ce31a30dd5a93832b27e9326f490707d..149ea1a858afc9367b88d1b2a00ded4e70144319 100644 (file)
@@ -15,11 +15,12 @@ import static org.junit.Assert.assertNull;
 
 import java.io.FileNotFoundException;
 import java.util.Arrays;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
 import java.util.UUID;
 
-import javassist.util.proxy.Proxy;
-
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
@@ -31,6 +32,8 @@ import org.unitils.spring.annotation.SpringBeanByType;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.cdm.model.common.DefinedTerm;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.name.BotanicalName;
 import eu.etaxonomy.cdm.model.name.Rank;
 import eu.etaxonomy.cdm.model.taxon.Classification;
@@ -44,6 +47,7 @@ import eu.etaxonomy.cdm.persistence.dao.taxon.IClassificationDao;
 import eu.etaxonomy.cdm.persistence.dao.taxon.ITaxonDao;
 import eu.etaxonomy.cdm.persistence.dao.taxon.ITaxonNodeDao;
 import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;
+import javassist.util.proxy.Proxy;
 
 public class TaxonNodeDaoHibernateImplTest extends CdmTransactionalIntegrationTest {
 
@@ -265,10 +269,31 @@ public class TaxonNodeDaoHibernateImplTest extends CdmTransactionalIntegrationTe
         Assert.assertNotSame(rel, newRel);
     }
 
+    //see comment 7 in #6199
+    @Test
+    @DataSet
+    public void testPersistExcludedInfos(){
+        //test read
+        TaxonNode excludedNode = taxonNodeDao.load(UUID.fromString("4f73adcc-a535-4fbe-a97a-c05ee8b12191"));
+        Assert.assertTrue("Node should be excluded", excludedNode.isExcluded());
+        TaxonNode unplacedNode = taxonNodeDao.load(UUID.fromString("20c8f083-5870-4cbd-bf56-c5b2b98ab6a7"));
+        Assert.assertTrue("Node should be unplaced", unplacedNode.isUnplaced());
+        TaxonNode notSpecialNode = taxonNodeDao.load(UUID.fromString("770239f6-4fa8-496b-8738-fe8f7b2ad519"));
+        Assert.assertFalse("Node should be neither excluded nor unplaced", notSpecialNode.isUnplaced() || notSpecialNode.isExcluded());
+
+        //read excluded node
+        Map<Language, LanguageString> map = excludedNode.getExcludedNote();
+        Assert.assertEquals(2, map.size());
+        Set<Integer> langIds = new HashSet<>();
+        for (Language lang : map.keySet()){
+            langIds.add(lang.getId());
+        }
+        Assert.assertTrue("Excluded note must contain text for language id = 1", langIds.contains(1));
+        Assert.assertTrue("", langIds.contains(2));
+    }
+
 
     @Override
-    public void createTestDataSet() throws FileNotFoundException {
-        // TODO Auto-generated method stub
-    }
+    public void createTestDataSet() throws FileNotFoundException {}
 
 }
index 5c67b066a6fc85a286ca3a93e5be3a1d717c9ce6..b1293e74c95e2dd5caed76a06decb0ed2727903d 100644 (file)
@@ -1,6 +1,8 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <dataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../database/schema/dataset.xsd">
   <LANGUAGESTRING ID="1" CREATED="2009-06-18 13:47:59.0" UUID="2b5846e5-b8d2-4ca9-ac51-099286ea4adc" TEXT="Name" LANGUAGE_ID="1"/>
+  <LANGUAGESTRING ID="2" CREATED="2016-06-18 13:47:59.0" UUID="4016d0e8-5c95-45eb-abc7-cc63af5f92a1" TEXT="ExcludedNote1" LANGUAGE_ID="1"/>
+  <LANGUAGESTRING ID="3" CREATED="2016-06-18 13:47:59.0" UUID="a4ff39fa-5e75-4538-a4c7-21fd39e5f24f" TEXT="ExcludedNote2" LANGUAGE_ID="2"/>
 
   <REFERENCE  ID="1" CREATED="2008-12-10 09:56:07.0" UUID="596b1325-be50-4b0a-9aa2-3ecd610215f2" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Lorem ipsum" PROTECTEDTITLECACHE="true" PROTECTEDABBREVTITLECACHE="false" ABBREVTITLECACHE="Sp. Pl." ABBREVTITLE="Sp. Pl." NOMENCLATURALLYRELEVANT="false" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1"/>
   <REFERENCE  ID="2" CREATED="2008-12-10 09:56:07.0" UUID="ad4322b7-4b05-48af-be70-f113e46c545e" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="cate-sphingidae.org" PROTECTEDTITLECACHE="true" PROTECTEDABBREVTITLECACHE="false" ABBREVTITLECACHE="Sp. Pl." ABBREVTITLE="Sp. Pl." NOMENCLATURALLYRELEVANT="false" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1"/>
 
   <TAXONNODE ID="1" CREATED="2009-06-18 13:47:59.0" UUID="0b5846e5-b8d2-4ca9-ac51-099286ea4adc" COUNTCHILDREN="0" TAXON_ID="38" PARENT_ID="3" TREEINDEX="#t1#4#3#1#" SORTINDEX="0" CLASSIFICATION_ID="1" EXCLUDED="FALSE" UNPLACED="FALSE"/>
   <TAXONNODE ID="2" CREATED="2009-06-18 13:47:59.0" UUID="770239f6-4fa8-496b-8738-fe8f7b2ad519" COUNTCHILDREN="0" TAXON_ID="37" PARENT_ID="3" TREEINDEX="#t1#4#3#2#" SORTINDEX="1" CLASSIFICATION_ID="1" EXCLUDED="FALSE" UNPLACED="FALSE"/>
-  <TAXONNODE ID="3" CREATED="2009-06-18 13:47:59.0" UUID="20c8f083-5870-4cbd-bf56-c5b2b98ab6a7" COUNTCHILDREN="2" TAXON_ID="36" PARENT_ID="4" TREEINDEX="#t1#4#3#" SORTINDEX="0" CLASSIFICATION_ID="1" EXCLUDED="FALSE" UNPLACED="FALSE"/>
+  <TAXONNODE ID="3" CREATED="2009-06-18 13:47:59.0" UUID="20c8f083-5870-4cbd-bf56-c5b2b98ab6a7" COUNTCHILDREN="2" TAXON_ID="36" PARENT_ID="4" TREEINDEX="#t1#4#3#" SORTINDEX="0" CLASSIFICATION_ID="1" EXCLUDED="FALSE" UNPLACED="TRUE"/>
   <TAXONNODE ID="4" CREATED="2009-06-18 13:47:59.0" UUID="cf0316c9-1963-4268-8c2e-8d833c460ac3" COUNTCHILDREN="1" TAXON_ID="[null]" PARENT_ID="[null]" TREEINDEX="#t1#4#" SORTINDEX="[null]" CLASSIFICATION_ID="1" EXCLUDED="FALSE" UNPLACED="FALSE"/>
-  <TAXONNODE ID="5" CREATED="2009-06-18 13:47:59.0" UUID="4f73adcc-a535-4fbe-a97a-c05ee8b12191" COUNTCHILDREN="1" TAXON_ID="42" PARENT_ID="2" TREEINDEX="#t1#4#3#2#1#" SORTINDEX="0" CLASSIFICATION_ID="1" EXCLUDED="FALSE" UNPLACED="FALSE"/>
+  <TAXONNODE ID="5" CREATED="2009-06-18 13:47:59.0" UUID="4f73adcc-a535-4fbe-a97a-c05ee8b12191" COUNTCHILDREN="1" TAXON_ID="42" PARENT_ID="2" TREEINDEX="#t1#4#3#2#1#" SORTINDEX="0" CLASSIFICATION_ID="1" EXCLUDED="TRUE" UNPLACED="FALSE"/>
+  <TAXONNODE_EXCLUDEDNOTE TAXONNODE_ID="5" EXCLUDEDNOTE_ID="2" EXCLUDEDNOTE_MAPKEY_ID="1"/>  
+  <TAXONNODE_EXCLUDEDNOTE TAXONNODE_ID="5" EXCLUDEDNOTE_ID="3" EXCLUDEDNOTE_MAPKEY_ID="2"/>  
  
   <CLASSIFICATION ID="1" CREATED="2009-06-18 13:47:59.0" UUID="aeee7448-5298-4991-b724-8d5b75a0a7a9" PROTECTEDTITLECACHE="false" TITLECACHE="TestBaum" NAME_ID="1" ROOTNODE_ID="4"/>
   <CLASSIFICATION_AUD ID="1" REV="1025" REVTYPE="0" CREATED="2009-06-18 13:47:59.0" UUID="aeee7448-5298-4991-b724-8d5b75a0a7a9" PROTECTEDTITLECACHE="false" TITLECACHE="TestBaum" NAME_ID="1" ROOTNODE_ID="4"/>