Project

General

Profile

Download (3.86 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2007 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.model.term;
11

    
12
import static org.junit.Assert.assertEquals;
13
import static org.junit.Assert.assertFalse;
14
import static org.junit.Assert.assertNotNull;
15
import static org.junit.Assert.assertTrue;
16

    
17
import org.apache.log4j.Logger;
18
import org.junit.Before;
19
import org.junit.BeforeClass;
20
import org.junit.Test;
21

    
22
import eu.etaxonomy.cdm.model.name.Rank;
23
import eu.etaxonomy.cdm.model.term.DefaultTermInitializer;
24
import eu.etaxonomy.cdm.model.term.OrderedTermBase;
25
import eu.etaxonomy.cdm.model.term.OrderedTermVocabulary;
26
import eu.etaxonomy.cdm.model.term.TermType;
27
import eu.etaxonomy.cdm.model.term.TermVocabulary;
28
import eu.etaxonomy.cdm.test.unit.EntityTestBase;
29

    
30
public class OrderedTermBaseTest extends EntityTestBase {
31
	@SuppressWarnings("unused")
32
	private static final Logger logger = Logger.getLogger(OrderedTermBaseTest.class);
33

    
34
	private OrderedTermBase otb1;
35
	private OrderedTermBase otb2;
36
	private OrderedTermBase otb3;
37
	private OrderedTermBase otb4;
38

    
39
	@BeforeClass
40
	public static void setUpBeforeClass() {
41
		DefaultTermInitializer vocabularyStore = new DefaultTermInitializer();
42
		vocabularyStore.initialize();
43
	}
44

    
45
	@Before
46
	public void setUp() throws Exception {
47
		otb1 = new DerivedOrderedTermBase();
48
		otb2 = new DerivedOrderedTermBase(TermType.Unknown, "term", "label", null);
49
		otb3 = new DerivedOrderedTermBase();
50
		otb4 = new DerivedOrderedTermBase();
51

    
52
		otb1.orderIndex = 1;
53
		otb2.orderIndex = 4;
54
		otb3.orderIndex = 4;
55
		otb4.orderIndex = 5;
56
	}
57

    
58
	private class DerivedOrderedTermBase extends OrderedTermBase<DerivedOrderedTermBase>{
59
		private DerivedOrderedTermBase(){
60
			super(TermType.Unknown);
61
		}
62
		private DerivedOrderedTermBase(TermType type, String term, String label, String labelAbbrev){
63
			super(type, term, label, labelAbbrev);
64
		}
65
		@Override
66
		protected void setDefaultTerms(TermVocabulary<DerivedOrderedTermBase> termVocabulary) {}
67
		@Override
68
		public void resetTerms() {};
69
	}
70

    
71
/************ TESTS *************************************/
72

    
73
	@Test
74
	public final void testOrderedTermBase() {
75
		assertNotNull(otb1);
76
	}
77

    
78
	@Test
79
	public final void testOrderedTermBaseStringString() {
80
		assertNotNull(otb2);
81
		assertEquals("label", otb2.getLabel());
82
		//TODO assertEquals("term", otb2.getD);
83
	}
84

    
85
	@Test
86
	public final void testCompareTo() {
87
		//since an exception is thrown when comparing OrderedTermBase that do not belong
88
		//to the same vocabulary this dummy vocabulary is added
89
		OrderedTermVocabulary<OrderedTermBase<?>> voc = new OrderedTermVocabulary();
90
		otb1.vocabulary = voc;
91
		otb2.vocabulary = voc;
92
		otb3.vocabulary = voc;
93

    
94
		int comp = otb1.compareTo(otb2);
95
		assertTrue("expected:  1 > 4", comp > 0  );
96
		assertTrue("expected:  1 = 1", otb1.compareTo(otb1) == 0  );
97
		assertTrue("expected:  4 = 4", otb2.compareTo(otb3) == 0  );
98
		assertTrue("expected:  5 < 1", otb3.compareTo(otb1) < 0  );
99

    
100
		Rank genus = Rank.GENUS();
101
		Rank species = Rank.SPECIES();
102
		Rank kingdom = Rank.KINGDOM();
103
		Rank family = Rank.FAMILY();
104

    
105
		comp = genus.compareTo(species);
106
		assertTrue( comp > 0  );
107
		assertTrue(genus.compareTo(genus) == 0  );
108
		assertTrue(family.compareTo(kingdom) < 0  );
109
	}
110

    
111

    
112
	@Test
113
	public final void testDecreaseVoc() {
114
		OrderedTermVocabulary<OrderedTermBase<?>> voc = new OrderedTermVocabulary();
115
		int before = otb1.orderIndex;
116
		otb1.decreaseIndex(voc);
117
		int after = otb1.orderIndex;
118
		assertEquals(before, after);
119
	}
120

    
121
	@Test
122
	public final void testIncrementVoc() {
123
		OrderedTermVocabulary<OrderedTermBase<?>> voc = new OrderedTermVocabulary();
124
		assertFalse(voc.indexChangeAllowed(otb1));
125
		int before = otb1.orderIndex;
126
		otb1.incrementIndex(voc);
127
		int after = otb1.orderIndex;
128
		assertEquals(before, after);
129
	}
130

    
131
}
(3-3/6)