Project

General

Profile

Download (5.22 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

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

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

    
156
}
(10-10/13)