Project

General

Profile

Download (6.81 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.CdmApplicationController;
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.Country;
24
import eu.etaxonomy.cdm.model.location.NamedArea;
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.name.TaxonNameBase;
30
import eu.etaxonomy.cdm.model.taxon.Synonym;
31
import eu.etaxonomy.cdm.model.taxon.Taxon;
32

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

    
39
	private static String dbName = "cdm_test_anahit";
40

    
41
	private static final String server = "192.168.2.10";
42
	private static final String username = "edit";
43
	private static final Logger logger = Logger.getLogger(TestTaxonServices.class);
44

    
45

    
46
	public static ICdmDataSource CDM_DB(String dbname) {
47

    
48
		logger.info("Setting DB " + dbname);
49
		String password = AccountStore.readOrStorePassword(dbname, server, username, null);
50
		ICdmDataSource datasource = CdmDataSource.NewMySqlInstance(server, dbname, username, password);
51
		return datasource;
52
	}
53

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

    
56
	private static CdmApplicationController
57
    getCdmApplicationController(
58
    		ICdmDataSource db, DbSchemaValidation dbSchemaValidation, boolean omitTermLoading) {
59

    
60
		CdmApplicationController appCtr = CdmApplicationController.NewInstance(db, dbSchemaValidation, omitTermLoading);
61

    
62
		return appCtr;
63
    }
64

    
65

    
66
	private void testMakeTaxonSynonym(CdmApplicationController appCtr) {
67

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

    
89

    
90
	private void testRemoveNameRelationship(CdmApplicationController appCtr) {
91

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

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

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

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

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

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

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

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

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

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

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

    
137
//		name1FromRelations.removeAll(name1FromRelations);
138

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

    
144
		appCtr.commitTransaction(txStatus);
145
	}
146

    
147
	private void createNamedArea(CdmApplicationController appCtr) {
148

    
149
		logger.info("Start testing createNamedArea()");
150
		TransactionStatus txStatus = appCtr.startTransaction();
151

    
152
		NamedArea namedArea = NamedArea.NewInstance("MyTerm", "MyLabel", "MyLabelAbbr");
153
		UUID naid = appCtr.getTermService().save(namedArea).getUuid();
154

    
155
		Country woc = Country.NewInstance("NAR", "Narnia", "NN");
156
		UUID wocid = appCtr.getTermService().save(woc).getUuid();
157

    
158
		DefinedTermBase dtb = appCtr.getTermService().find(naid);
159
//		DefinedTermBase dtb =
160
//			appCtr.getTermService().getTermByUuid(UUID.fromString("dbcedb8b-ae38-45b0-a400-840babf68f9c"));
161
		logger.debug("NamedArea: " + dtb.toString());
162
//		dtb = TdwgArea.getAreaByTdwgAbbreviation("AGE-LP");
163
		//logger.debug("TdwgArea: " + dtb.toString());
164
		dtb = appCtr.getTermService().find(wocid);
165
//		dtb =
166
//			appCtr.getTermService().getTermByUuid(UUID.fromString("7cc278aa-b42a-4b5f-b7ad-0cbab0730da8"));
167
		logger.debug("Country: " + dtb.toString());
168

    
169
		appCtr.commitTransaction(txStatus);
170
		logger.info("End testing createNamedArea()");
171
	}
172

    
173
    public static void main(String[] args) {
174

    
175
		TestTaxonServices testClass = new TestTaxonServices();
176
        CdmApplicationController cdmApp =
177
        	getCdmApplicationController(db, DbSchemaValidation.VALIDATE, false);
178

    
179
        testClass.createNamedArea(cdmApp);
180
        //testClass.testMakeTaxonSynonym(cdmApp);
181
		//testClass.testRemoveNameRelationship(cdmApp);
182
        cdmApp.close();
183

    
184
	}
185
}
(2-2/2)