Project

General

Profile

Download (6.84 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2008 EDIT
3
* European Distributed Institute of Taxonomy 
4
* http://www.e-taxonomy.eu
5
*/
6

    
7
package eu.etaxonomy.cdm.test.integration;
8

    
9
import java.util.Set;
10
import java.util.UUID;
11

    
12
import org.apache.log4j.Logger;
13
import org.springframework.transaction.TransactionStatus;
14

    
15
import eu.etaxonomy.cdm.api.application.CdmApplicationDefaultController;
16
import eu.etaxonomy.cdm.common.AccountStore;
17
import eu.etaxonomy.cdm.database.CdmDataSource;
18
import eu.etaxonomy.cdm.database.DbSchemaValidation;
19
import eu.etaxonomy.cdm.database.ICdmDataSource;
20
import eu.etaxonomy.cdm.model.agent.AgentBase;
21
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
22
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
23
import eu.etaxonomy.cdm.model.location.NamedArea;
24
import eu.etaxonomy.cdm.model.location.Country;
25
import eu.etaxonomy.cdm.model.name.BotanicalName;
26
import eu.etaxonomy.cdm.model.name.NameRelationship;
27
import eu.etaxonomy.cdm.model.name.NameRelationshipType;
28
import eu.etaxonomy.cdm.model.name.Rank;
29
import eu.etaxonomy.cdm.model.taxon.Synonym;
30
import eu.etaxonomy.cdm.model.taxon.Taxon;
31

    
32
/**
33
 * @author a.babadshanjan
34
 * @created 26.11.2008
35
 */
36
public class TestTaxonServices {
37

    
38
	private static String dbName = "cdm_test_anahit";
39
	
40
	private static final String server = "192.168.2.10";
41
	private static final String username = "edit";
42
	private static final Logger logger = Logger.getLogger(TestTaxonServices.class);
43

    
44

    
45
	public static ICdmDataSource CDM_DB(String dbname) {
46
		
47
		logger.info("Setting DB " + dbname);
48
		String password = AccountStore.readOrStorePassword(dbname, server, username, null);
49
		ICdmDataSource datasource = CdmDataSource.NewMySqlInstance(server, dbname, username, password);
50
		return datasource;
51
	}
52

    
53
	private static final ICdmDataSource db = TestTaxonServices.CDM_DB(dbName);
54

    
55
	private static CdmApplicationDefaultController 
56
    getCdmApplicationController(
57
    		ICdmDataSource db, DbSchemaValidation dbSchemaValidation, boolean omitTermLoading) {
58
    	
59
		CdmApplicationDefaultController appCtr = CdmApplicationDefaultController.NewInstance(db, dbSchemaValidation, omitTermLoading);
60
		
61
		return appCtr;
62
    }
63

    
64
    
65
	private void testMakeTaxonSynonym(CdmApplicationDefaultController appCtr) {
66

    
67
//		logger.info("Testing makeTaxonSynonym()");
68
//		TransactionStatus txStatus = appCtr.startTransaction();
69
//
70
//		Taxon oldTaxon = (Taxon)appCtr.getTaxonService().find(UUID.fromString("83a87f0c-e2c4-4b41-b603-4e77e7e53158"));
71
//		Taxon newAcceptedTaxon = (Taxon)appCtr.getTaxonService().find(UUID.fromString("0b423190-fcca-4228-86a9-77974477f160"));
72
//		SynonymRelationshipType synonymType = SynonymRelationshipType.HOMOTYPIC_SYNONYM_OF();
73
//
74
//		Reference citation;
75
//		ReferenceFactory refFactory = ReferenceFactory.newInstance();
76
//		citation = refFactory.newBook();
77
//		AgentBase linne = appCtr.getAgentService().find(UUID.fromString("f6272e48-5b4e-40c1-b4e9-ee32334fa19f"));
78
//		citation.setAuthorTeam((TeamOrPersonBase)linne);
79
//		citation.setTitleCache("Make Taxon Synonym Test");
80
//		String microRef = "123";
81
//		appCtr.getReferenceService().save(citation);
82
//
83
//		appCtr.getTaxonService().changeAcceptedTaxonToSynonym(oldTaxon, newAcceptedTaxon, synonymType, citation, microRef);
84
//
85
//		appCtr.commitTransaction(txStatus);
86
	}
87

    
88
	
89
	private void testRemoveNameRelationship(CdmApplicationDefaultController appCtr) {
90

    
91
		logger.info("Testing testRemoveNameRelationship()");
92
		TransactionStatus txStatus = appCtr.startTransaction();
93

    
94
		BotanicalName name1, name2;
95
		AgentBase linne = appCtr.getAgentService().find(UUID.fromString("f6272e48-5b4e-40c1-b4e9-ee32334fa19f"));
96
		name1 = BotanicalName.NewInstance(Rank.SPECIES(),"Name1",null,"arvensis",null,(TeamOrPersonBase)linne,null,"p.1", null);
97
		name2 = BotanicalName.NewInstance(Rank.SPECIES(),"Name2",null,"lanzae",null,(TeamOrPersonBase)linne,null,"p.2", null);
98

    
99
		name1.addRelationshipToName(name2, NameRelationshipType.BASIONYM(), "ruleTo");
100
		name2.addRelationshipFromName(name1, NameRelationshipType.BASIONYM(), "ruleFrom");
101

    
102
		appCtr.getNameService().save(name1);
103
		appCtr.getNameService().save(name2);
104

    
105
		logger.info("Removing Name Relationships");
106

    
107
		Set<NameRelationship> name1FromRelations = name1.getRelationsFromThisName();
108
		NameRelationship nameRel = null;
109

    
110
		for (NameRelationship name1Rel: name1FromRelations) {
111
			nameRel = name1Rel;
112
		}
113

    
114
		name1.removeNameRelationship(nameRel);
115
//		name1.removeTaxonName(name2);
116
		appCtr.getNameService().save(name1);
117

    
118
		Taxon taxon = (Taxon)appCtr.getTaxonService().find(UUID.fromString("6a8be65b-94b6-4136-919a-02002e409158"));
119
		Set<Synonym> synonyms = taxon.getSynonyms();
120

    
121
//		List<TaxonBase> taxa = appCtr.getTaxonService().getAllTaxa(100, 0);
122
//		Set<Synonym> synonyms = null;
123
//		for (TaxonBase taxonBase: taxa) {
124
//		synonyms = taxonBase.getSynonyms();
125
//		}
126

    
127
		Synonym syn = null;
128
		for (Synonym synonym: synonyms) {
129
			if (synonym.getUuid().toString().equals("f7ad5713-70ce-42af-984f-865c1f126460")) {
130
				syn = synonym;
131
			}
132
		}
133
		taxon.removeSynonym(syn);
134
		appCtr.getTaxonService().save(taxon);
135

    
136
//		name1FromRelations.removeAll(name1FromRelations);
137

    
138
//		Set<NameRelationship> name2ToRelations = name2.getRelationsToThisName();
139
//		for (NameRelationship name2Rel: name2ToRelations) {
140
//		name2.removeNameRelationship(name2Rel);
141
//		}
142

    
143
		appCtr.commitTransaction(txStatus);
144
	}
145

    
146
	private void createNamedArea(CdmApplicationDefaultController appCtr) {
147
		
148
		logger.info("Start testing createNamedArea()");
149
		TransactionStatus txStatus = appCtr.startTransaction();
150
		
151
		NamedArea namedArea = NamedArea.NewInstance("MyTerm", "MyLabel", "MyLabelAbbr");
152
		UUID naid = appCtr.getTermService().save(namedArea);
153
		
154
		Country woc = Country.NewInstance("NAR", "Narnia", "NN");
155
		UUID wocid = appCtr.getTermService().save(woc);
156
		
157
		DefinedTermBase dtb = appCtr.getTermService().find(naid);
158
//		DefinedTermBase dtb = 
159
//			appCtr.getTermService().getTermByUuid(UUID.fromString("dbcedb8b-ae38-45b0-a400-840babf68f9c"));
160
		logger.debug("NamedArea: " + dtb.toString());
161
//		dtb = TdwgArea.getAreaByTdwgAbbreviation("AGE-LP");
162
		//logger.debug("TdwgArea: " + dtb.toString());
163
		dtb = appCtr.getTermService().find(wocid);
164
//		dtb = 
165
//			appCtr.getTermService().getTermByUuid(UUID.fromString("7cc278aa-b42a-4b5f-b7ad-0cbab0730da8"));
166
		logger.debug("Country: " + dtb.toString());
167

    
168
		appCtr.commitTransaction(txStatus);
169
		logger.info("End testing createNamedArea()");
170
	}
171
	
172
    public static void main(String[] args) {
173

    
174
		TestTaxonServices testClass = new TestTaxonServices();
175
        CdmApplicationDefaultController cdmApp = 
176
        	getCdmApplicationController(db, DbSchemaValidation.VALIDATE, false);
177
        
178
        testClass.createNamedArea(cdmApp);
179
        //testClass.testMakeTaxonSynonym(cdmApp);
180
		//testClass.testRemoveNameRelationship(cdmApp);
181
        cdmApp.close();
182
		
183
	}
184
}
(4-4/4)