Project

General

Profile

Download (3.36 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.cdm.model.taxon;
2

    
3
import static org.junit.Assert.*;
4

    
5
import java.util.Set;
6

    
7
import org.junit.Before;
8
import org.junit.BeforeClass;
9
import org.junit.Test;
10

    
11
import eu.etaxonomy.cdm.model.agent.Person;
12
import eu.etaxonomy.cdm.model.name.BotanicalName;
13
import eu.etaxonomy.cdm.model.name.Rank;
14
import eu.etaxonomy.cdm.model.name.ZoologicalName;
15
import eu.etaxonomy.cdm.model.reference.Book;
16
import eu.etaxonomy.cdm.model.reference.ReferenceBase;
17
import eu.etaxonomy.cdm.test.unit.EntityTestBase;
18

    
19
public class TaxonTest extends EntityTestBase {
20
	private ReferenceBase sec;
21
	private ZoologicalName name1;
22
	private BotanicalName name2;
23
	private Taxon rootT;
24
	private Taxon child1;
25
	private Taxon child2;
26
	private Synonym syn1;
27
	private Synonym syn2;
28
	private BotanicalName name3;
29
	private BotanicalName name4;
30
	private Taxon freeT;
31

    
32
	@Before
33
	public void setUpBeforeClass() throws Exception {
34
		Person linne =new Person("Carl", "Linné", "L.");
35
		sec=new Book();
36
		sec.setAuthorTeam(linne);
37
		sec.setTitleCache("Schönes saftiges Allgäu");
38
		name1=new ZoologicalName(Rank.SPECIES(),"Panthera","onca",null,linne,null,"p.1467");
39
		name2=new BotanicalName(Rank.SPECIES(),"Abies","alba",null,linne,null,"p.317");
40
		name3=new BotanicalName(Rank.SUBSPECIES(),"Polygala","vulgaris","alpina",linne,null,"p.191");
41
		name4=new BotanicalName(Rank.SPECIES(),"Cichoria","carminata",null,linne,null,"p.14");
42
		rootT=Taxon.NewInstance(name1,sec);
43
		freeT=Taxon.NewInstance(name4,sec);
44
		// taxonomic children
45
		child1=Taxon.NewInstance(name2,sec);
46
		child2=Taxon.NewInstance(name3,sec);
47
		rootT.addTaxonomicChild(child1, sec, "p.998");
48
		rootT.addTaxonomicChild(child2, sec, "p.987");
49
		// synonymy
50
		syn1=Synonym.NewInstance(name1,sec);
51
		syn2=Synonym.NewInstance(name2,sec);
52
		child1.addSynonym(syn1, SynonymRelationshipType.HETEROTYPIC_SYNONYM_OF());
53
		child2.addSynonym(syn2, SynonymRelationshipType.HOMOTYPIC_SYNONYM_OF());
54
	}
55

    
56
	@Test
57
	public void testGenerateTitle() {
58
		assertTrue(rootT.generateTitle().startsWith("Taxon"));
59
	}
60

    
61
	@Test
62
	public void testAddTaxonomicChild() {
63
		rootT.addTaxonomicChild(freeT, null, null);
64
		assertTrue(rootT.getTaxonomicChildren().size()==3);
65
	}
66

    
67
	@Test
68
	public void testGetTaxonomicParent() {
69
		assertEquals(rootT, child2.getTaxonomicParent());
70
	}
71

    
72
	@Test
73
	public void testSetTaxonomicParent() {
74
		child2.setTaxonomicParent(child1, null, null);
75
		assertEquals(child1, child2.getTaxonomicParent());
76
	}
77

    
78
	@Test
79
	public void testGetTaxonomicChildren() {
80
		Set<Taxon> kids=rootT.getTaxonomicChildren();
81
		assertTrue(kids.size()==2 && kids.contains(child1) && kids.contains(child2));
82
	}
83

    
84
	@Test
85
	public void testHasTaxonomicChildren() {
86
		assertTrue(rootT.hasTaxonomicChildren());
87
		assertFalse(child2.hasTaxonomicChildren());
88
	}
89

    
90
	@Test
91
	public void testGetSynonyms() {
92
		assertTrue(child1.getSynonyms().contains(syn1));
93
		assertTrue(child2.getSynonyms().contains(syn2));
94
		assertTrue(rootT.getSynonyms().isEmpty());
95
	}
96

    
97
	@Test
98
	public void testGetSynonymNames() {
99
		assertTrue(child1.getSynonymNames().contains(name1));
100
		assertTrue(child2.getSynonymNames().contains(name2));
101
		assertTrue(rootT.getSynonymNames().isEmpty());
102
	}
103

    
104
	@Test
105
	public void testAddSynonym() {
106
		freeT.addSynonym(syn1, SynonymRelationshipType.HETEROTYPIC_SYNONYM_OF());
107
		assertTrue(freeT.getSynonyms().contains(syn1));
108
		assertTrue(syn1.getAcceptedTaxa().contains(freeT));
109
		assertFalse(freeT.getSynonyms().contains(syn2));
110
	}
111

    
112
}
(2-2/2)