Project

General

Profile

Download (5.3 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2009 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/ 
9

    
10
package eu.etaxonomy.cdm.api.service;
11

    
12
import static org.junit.Assert.assertEquals;
13
import static org.junit.Assert.assertNull;
14

    
15
import java.util.UUID;
16

    
17
import org.apache.log4j.Logger;
18
import org.junit.Assert;
19
import org.junit.Test;
20
import org.unitils.spring.annotation.SpringBeanByType;
21

    
22
import eu.etaxonomy.cdm.model.name.BotanicalName;
23
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
24
import eu.etaxonomy.cdm.model.name.Rank;
25
import eu.etaxonomy.cdm.model.taxon.Synonym;
26
import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
27
import eu.etaxonomy.cdm.model.taxon.Taxon;
28
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
29
import eu.etaxonomy.cdm.test.integration.CdmIntegrationTest;
30

    
31
/**
32
 * @author a.mueller
33
 *
34
 */
35
public class TaxonServiceImplTest extends CdmIntegrationTest {
36
	private static final Logger logger = Logger.getLogger(TaxonServiceImplTest.class);
37
	
38
	@SpringBeanByType
39
	private ITaxonService service;
40
	
41
	@SpringBeanByType
42
	private INameService nameService;
43
	
44
/****************** TESTS *****************************/
45
	
46
	/**
47
	 * Test method for {@link eu.etaxonomy.cdm.api.service.TaxonServiceImpl#getTaxonByUuid(java.util.UUID)}.
48
	 */
49
	@Test
50
	public final void testGetTaxonByUuid() {
51
		Taxon expectedTaxon = Taxon.NewInstance(null, null);
52
		UUID uuid = service.save(expectedTaxon);
53
		TaxonBase<?> actualTaxon = service.find(uuid);
54
		assertEquals(expectedTaxon, actualTaxon);
55
	}
56

    
57
	/**
58
	 * Test method for {@link eu.etaxonomy.cdm.api.service.TaxonServiceImpl#saveTaxon(eu.etaxonomy.cdm.model.taxon.TaxonBase)}.
59
	 */
60
	@Test
61
	public final void testSaveTaxon() {
62
		Taxon expectedTaxon = Taxon.NewInstance(null, null);
63
		UUID uuid = service.save(expectedTaxon);
64
		TaxonBase<?> actualTaxon = service.find(uuid);
65
		assertEquals(expectedTaxon, actualTaxon);
66
	}
67
	
68
	@Test
69
	public final void testSaveOrUpdateTaxon() {
70
		Taxon expectedTaxon = Taxon.NewInstance(null, null);
71
		UUID uuid = service.save(expectedTaxon);
72
		TaxonBase<?> actualTaxon = service.find(uuid);
73
		assertEquals(expectedTaxon, actualTaxon);
74
		
75
		actualTaxon.setName(BotanicalName.NewInstance(Rank.SPECIES()));
76
		try{
77
			service.saveOrUpdate(actualTaxon);
78
		}catch(Exception e){
79
			Assert.fail();
80
		}
81
	}
82
	/**
83
	 * Test method for {@link eu.etaxonomy.cdm.api.service.TaxonServiceImpl#removeTaxon(eu.etaxonomy.cdm.model.taxon.TaxonBase)}.
84
	 */
85
	@Test
86
	public final void testRemoveTaxon() {
87
		Taxon taxon = Taxon.NewInstance(BotanicalName.NewInstance(null), null);
88
		UUID uuid = service.save(taxon);
89
		service.delete(taxon);
90
		TaxonBase<?> actualTaxon = service.find(uuid);
91
		assertNull(actualTaxon);
92
	}
93
	
94
	/**
95
	 * Test method for
96
	 * {@link eu.etaxonomy.cdm.api.service.TaxonServiceImpl#loadTreeBranchTo(eu.etaxonomy.cdm.model.taxon.TaxonNode, eu.etaxonomy.cdm.model.name.Rank, java.util.List)}
97
	 * .
98
	 */
99
	@Test
100
	public final void loadTreeBranchTo() {
101
		logger.warn("Not yet implemented"); // TODO
102
	}
103

    
104
	/**
105
	 * Test method for
106
	 * {@link eu.etaxonomy.cdm.api.service.TaxonServiceImpl#searchTaxaByName(java.lang.String, eu.etaxonomy.cdm.model.reference.Reference)}
107
	 * .
108
	 */
109
	@Test
110
	public final void testSearchTaxaByName() {
111
		logger.warn("Not yet implemented"); // TODO
112
	}
113

    
114
	
115
	@Test
116
	public final void testPrintDataSet() {
117
		//printDataSet(System.out);
118
	}
119
	
120
	@Test
121
	public final void testMakeTaxonSynonym() {
122
		Rank rank = Rank.SPECIES();
123
		Taxon tax1 = Taxon.NewInstance(BotanicalName.NewInstance(rank, "Test1", null, null, null, null, null, null, null), null);
124
		Synonym synonym = Synonym.NewInstance(BotanicalName.NewInstance(rank, "Test2", null, null, null, null, null, null, null), null);
125
		tax1.addHomotypicSynonym(synonym, null, null);
126
		UUID uuidTaxon = service.save(tax1);
127
		UUID uuidSyn = service.save(synonym);
128
		
129
		service.swapSynonymAndAcceptedTaxon(synonym, tax1);
130
		
131
		TaxonBase<?> tax = service.find(uuidTaxon);
132
		TaxonBase<?> syn = service.find(uuidSyn);
133
		HomotypicalGroup groupTest = tax.getHomotypicGroup();
134
		HomotypicalGroup groupTest2 = syn.getHomotypicGroup();
135
		assertEquals(groupTest, groupTest2);
136
	}
137
	
138
	@Test
139
	public final void testMakeSynonymTaxon(){
140
		Rank rank = Rank.SPECIES();
141
		//HomotypicalGroup group = HomotypicalGroup.NewInstance();
142
		Taxon tax1 = Taxon.NewInstance(BotanicalName.NewInstance(rank, "Test1", null, null, null, null, null, null, null), null);
143
		Taxon tax2 = Taxon.NewInstance(BotanicalName.NewInstance(rank, "Test3", null, null, null, null, null, null, null), null);
144
		Synonym synonym = Synonym.NewInstance(BotanicalName.NewInstance(rank, "Test2", null, null, null, null, null, null, null), null);
145
		//tax2.addHeterotypicSynonymName(synonym.getName());
146
		tax2.addSynonym(synonym, SynonymRelationshipType.HETEROTYPIC_SYNONYM_OF());
147
		BotanicalName name = (BotanicalName)synonym.getName();
148
		UUID uuidTaxon = service.save(tax1);
149
		UUID uuidSyn = service.save(synonym);
150
		UUID uuidGenus = service.save(tax2);
151
		
152
		Taxon tax = service.changeSynonymToAcceptedTaxon(synonym, tax2, true, true, null, null);
153
		TaxonBase<?> syn = service.find(uuidSyn);
154
		assertNull(syn);
155
		
156
		
157
	
158
	}
159

    
160
}
(11-11/14)