3 * Copyright (C) 2009 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
11 package eu
.etaxonomy
.cdm
.test
.function
;
13 import java
.util
.List
;
14 import java
.util
.SortedSet
;
15 import java
.util
.UUID
;
17 import org
.apache
.log4j
.Logger
;
18 import org
.junit
.Assert
;
19 import org
.junit
.Ignore
;
20 import org
.springframework
.transaction
.TransactionStatus
;
22 import eu
.etaxonomy
.cdm
.api
.application
.CdmApplicationController
;
23 import eu
.etaxonomy
.cdm
.api
.service
.DeleteResult
;
24 import eu
.etaxonomy
.cdm
.api
.service
.IDescriptionService
;
25 import eu
.etaxonomy
.cdm
.api
.service
.ITaxonService
;
26 import eu
.etaxonomy
.cdm
.database
.DbSchemaValidation
;
27 import eu
.etaxonomy
.cdm
.model
.agent
.Person
;
28 import eu
.etaxonomy
.cdm
.model
.common
.DefinedTermBase
;
29 import eu
.etaxonomy
.cdm
.model
.common
.Language
;
30 import eu
.etaxonomy
.cdm
.model
.common
.TermVocabulary
;
31 import eu
.etaxonomy
.cdm
.model
.description
.Feature
;
32 import eu
.etaxonomy
.cdm
.model
.name
.IBotanicalName
;
33 import eu
.etaxonomy
.cdm
.model
.name
.INonViralName
;
34 import eu
.etaxonomy
.cdm
.model
.name
.IZoologicalName
;
35 import eu
.etaxonomy
.cdm
.model
.name
.Rank
;
36 import eu
.etaxonomy
.cdm
.model
.name
.TaxonName
;
37 import eu
.etaxonomy
.cdm
.model
.name
.TaxonNameFactory
;
38 import eu
.etaxonomy
.cdm
.model
.reference
.Reference
;
39 import eu
.etaxonomy
.cdm
.model
.reference
.ReferenceFactory
;
40 import eu
.etaxonomy
.cdm
.model
.taxon
.Synonym
;
41 import eu
.etaxonomy
.cdm
.model
.taxon
.SynonymType
;
42 import eu
.etaxonomy
.cdm
.model
.taxon
.Taxon
;
48 * This is a test for sole development purposes, it is not
49 * touched by mvn test since it is not matching the "\/**\/*Test" pattern,
50 * but it should be annotate with @Ignore when running the project a s junit suite in eclipse
55 public class TestService
{
56 static Logger logger
= Logger
.getLogger(TestService
.class);
58 private static final UUID TEST_TAXON_UUID
= UUID
.fromString("b3084573-343d-4279-ba92-4ab01bb47db5");
59 private static CdmApplicationController appCtr
;
61 public void testAppController() {
62 logger
.info("Create name objects...");
63 INonViralName nvn
= TaxonNameFactory
.NewNonViralInstance(Rank
.SPECIES());
65 IBotanicalName bn
= TaxonNameFactory
.NewBotanicalInstance(Rank
.SUBSPECIES());
66 IZoologicalName zn
= TaxonNameFactory
.NewZoologicalInstance(Rank
.FAMILY());
68 logger
.info("Create reference objects...");
70 Reference sec
= ReferenceFactory
.newJournal();
71 sec
.setTitleCache("TestJournal", true);
73 logger
.info("Create taxon objects...");
74 Taxon childTaxon
= Taxon
.NewInstance(nvn
, sec
);
75 Synonym syn
= Synonym
.NewInstance(bn
, sec
);
76 childTaxon
.addSynonym(syn
, SynonymType
.SYNONYM_OF());
77 TransactionStatus txStatus
= appCtr
.startTransaction();
78 appCtr
.getTaxonService().save(childTaxon
);
79 appCtr
.commitTransaction(txStatus
);
82 Taxon parentTaxon
= Taxon
.NewInstance(zn
, sec
);
83 parentTaxon
.setUuid(TEST_TAXON_UUID
);
84 // parentTaxon.addTaxonomicChild(childTaxon, sec, null);
88 nvn
.setGenusOrUninomial("Nonvirala");
89 bn
.setGenusOrUninomial("Abies");
91 logger
.info("Create new Author agent...");
92 Person team
= Person
.NewInstance();
93 team
.setTitleCache("AuthorAgent1", true);
94 nvn
.setCombinationAuthorship(team
);
96 logger
.info("Save objects ...");
97 appCtr
.getTaxonService().save(parentTaxon
);
100 logger
.info("Load existing names from db...");
101 List
<TaxonName
> tnList
= appCtr
.getNameService().list(null,1000, 0,null,null);
102 for (TaxonName tn2
: tnList
){
103 logger
.info("Title: "+ tn2
.getTitleCache() + " UUID: " + tn2
.getUuid()+";");
107 public void testDeleteTaxa(){
108 ITaxonService taxonService
= appCtr
.getTaxonService();
109 TaxonName taxonName
= TaxonNameFactory
.NewBotanicalInstance(Rank
.SPECIES());
110 Reference ref
= ReferenceFactory
.newJournal();
111 Taxon taxon1
= Taxon
.NewInstance(taxonName
, ref
);
112 Taxon taxon2
= Taxon
.NewInstance(taxonName
, null);
113 logger
.info("Save taxon ...");
114 UUID uuidTaxon1
= taxonService
.save(taxon1
).getUuid();
115 logger
.info(" UUID: " + uuidTaxon1
);
116 UUID uuidTaxon2
= taxonService
.save(taxon2
).getUuid();
117 logger
.info(" UUID: " + uuidTaxon2
);
118 logger
.info("Remove taxon ...");
121 DeleteResult result
= taxonService
.deleteTaxon(taxon1
.getUuid(), null, null);
126 logger
.info(" UUID: " + uuid
);
130 // public void testVocabularyLists(){
131 // TermVocabulary<NomenclaturalStatusType> voc = appCtr.getNameService().getStatusTypeVocabulary();
132 // Set<NomenclaturalStatusType> set = voc.getTermsOrderedByLabels(Language.DEFAULT());
133 // for (Object obj : set.toArray()){
134 // NomenclaturalStatusType nomStatusType = (NomenclaturalStatusType)obj;
135 // System.out.println(nomStatusType.getLabel());
137 // TermVocabulary<NameRelationshipType> nameRelVoc = appCtr.getNameService().getNameRelationshipTypeVocabulary();
138 // Set<NameRelationshipType> nameRelSet = nameRelVoc.getTermsOrderedByLabels(Language.DEFAULT());
139 // for (Object obj : nameRelSet.toArray()){
140 // NameRelationshipType naemRelType = (NameRelationshipType)obj;
141 // System.out.println(naemRelType.getLabel());
143 // System.out.println("=========== NAME LIST =================");
144 // List<TaxonName> nameList = appCtr.getNameService().getNamesByName("Abies%");
145 // System.out.println("Size" + nameList.size());
146 // for (TaxonName name : nameList){
147 // System.out.println("ABEIS: " + name.getTitleCache());
151 public void testDeleteRelationship(){
152 ITaxonService taxonService
= appCtr
.getTaxonService();
153 TaxonName taxonName
= TaxonNameFactory
.NewBotanicalInstance(Rank
.SPECIES());
154 Reference ref
= ReferenceFactory
.newJournal();
155 Taxon parent
= Taxon
.NewInstance(taxonName
, ref
);
156 Taxon child
= Taxon
.NewInstance(taxonName
, null);
157 // parent.addTaxonomicChild(child, null, null);
159 logger
.info("Save taxon ...");
160 UUID uuidTaxon1
= taxonService
.save(parent
).getUuid();
161 logger
.info(" UUID: " + uuidTaxon1
);
162 UUID uuidTaxon2
= taxonService
.save(child
).getUuid();
163 logger
.info(" UUID: " + uuidTaxon2
);
166 // Set<TaxonRelationship> set = parent.getRelationsToThisTaxon();
167 // for (TaxonRelationship rel : set){
168 // if (rel.getType().equals(ConceptRelationshipType.TAXONOMICALLY_INCLUDED_IN())){
169 // parent.removeTaxonRelation(rel);
175 public void testTransientRank(){
176 ITaxonService taxonService
= appCtr
.getTaxonService();
177 TaxonName taxonName
= TaxonNameFactory
.NewBotanicalInstance(transientRank
);
178 Reference ref
= ReferenceFactory
.newJournal();
179 Taxon taxon
= Taxon
.NewInstance(taxonName
, ref
);
181 logger
.info("Save taxon ...");
182 UUID uuidTaxon1
= taxonService
.save(taxon
).getUuid();
183 logger
.info(" UUID: " + uuidTaxon1
);
187 public void testFeature(){
188 TransactionStatus tx
= appCtr
.startTransaction();
189 Language lang
= Language
.DEFAULT();
190 IDescriptionService descriptionService
= appCtr
.getDescriptionService();
191 TermVocabulary
<Feature
> voc
= descriptionService
.getDefaultFeatureVocabulary();
192 SortedSet
<Feature
> terms
= voc
.getTermsOrderedByLabels(lang
);
193 for (DefinedTermBase term
: terms
){
194 logger
.warn(term
.getRepresentation(lang
));
196 appCtr
.commitTransaction(tx
);
200 public void regenerateTaxonTitleCache(){
201 ITaxonService taxonService
= appCtr
.getTaxonService();
202 taxonService
.updateCaches();
206 System
.out
.println("Start ...");
207 // testAppController();
211 //testDeleteRelationship();
212 //regenerateTaxonTitleCache();
213 //testVocabularyLists();
214 //testTransientRank();
216 System
.out
.println("\nEnd ...");
219 private static Rank transientRank
= Rank
.SPECIES();
223 DbSchemaValidation dbSchemaValidation
= DbSchemaValidation
.CREATE
;
224 //appCtr = CdmApplicationController.NewInstance(CdmPersistentDataSource.NewInstance("defaultMySql") , dbSchemaValidation);
225 appCtr
= CdmApplicationController
.NewInstance(dbSchemaValidation
);
228 TaxonName name
= TaxonNameFactory
.NewNonViralInstance(null);
229 name
.setTitleCache("Abies alba", true);
231 TaxonName name2
= TaxonNameFactory
.NewNonViralInstance(null);
232 name2
.setTitleCache("Abies beta", true);
234 //appCtr.getNameService().saveTaxonName(name);
235 //appCtr.getNameService().saveTaxonName(name2);
237 //appCtr = CdmApplicationController.NewInstance(CdmPersistentDataSource.NewInstance("rel1_1"));
238 //appCtr = new CdmApplicationController(HBM2DDL.CREATE);
239 } catch (Exception e
) {
240 // TODO Auto-generated catch block
248 public static void main(String
[] args
) {
249 TestService sc
= new TestService();