cleanup
[cdmlib.git] / cdmlib-model / src / test / java / eu / etaxonomy / cdm / model / term / OrderedTermBaseTest.java
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 package eu.etaxonomy.cdm.model.term;
10
11 import static org.junit.Assert.assertEquals;
12 import static org.junit.Assert.assertFalse;
13 import static org.junit.Assert.assertNotNull;
14 import static org.junit.Assert.assertTrue;
15
16 import org.apache.logging.log4j.LogManager;
17 import org.apache.logging.log4j.Logger;
18 import org.junit.Before;
19 import org.junit.Test;
20
21 import eu.etaxonomy.cdm.model.name.Rank;
22 import eu.etaxonomy.cdm.test.unit.EntityTestBase;
23
24 public class OrderedTermBaseTest extends EntityTestBase {
25
26 @SuppressWarnings("unused")
27 private static final Logger logger = LogManager.getLogger();
28
29 private OrderedTermBase otb1;
30 private OrderedTermBase otb2;
31 private OrderedTermBase otb3;
32 private OrderedTermBase otb4;
33
34 @Before
35 public void setUp() throws Exception {
36 otb1 = new DerivedOrderedTermBase();
37 otb2 = new DerivedOrderedTermBase(TermType.Unknown, "term", "label", null);
38 otb3 = new DerivedOrderedTermBase();
39 otb4 = new DerivedOrderedTermBase();
40
41 otb1.orderIndex = 1;
42 otb2.orderIndex = 4;
43 otb3.orderIndex = 4;
44 otb4.orderIndex = 5;
45 }
46
47 private class DerivedOrderedTermBase extends OrderedTermBase<DerivedOrderedTermBase>{
48 private DerivedOrderedTermBase(){
49 super(TermType.Unknown);
50 }
51 private DerivedOrderedTermBase(TermType type, String term, String label, String labelAbbrev){
52 super(type, term, label, labelAbbrev);
53 }
54 @Override
55 protected void setDefaultTerms(TermVocabulary<DerivedOrderedTermBase> termVocabulary) {}
56 @Override
57 public void resetTerms() {};
58 }
59
60 /************ TESTS *************************************/
61
62 @Test
63 public final void testOrderedTermBase() {
64 assertNotNull(otb1);
65 }
66
67 @Test
68 public final void testOrderedTermBaseStringString() {
69 assertNotNull(otb2);
70 assertEquals("label", otb2.getLabel());
71 //TODO assertEquals("term", otb2.getD);
72 }
73
74 @Test
75 public final void testCompareTo() {
76 //since an exception is thrown when comparing OrderedTermBase that do not belong
77 //to the same vocabulary this dummy vocabulary is added
78 OrderedTermVocabulary<OrderedTermBase<?>> voc = new OrderedTermVocabulary();
79 otb1.vocabulary = voc;
80 otb2.vocabulary = voc;
81 otb3.vocabulary = voc;
82
83 int comp = otb1.compareTo(otb2);
84 assertTrue("expected: 1 > 4", comp > 0 );
85 assertTrue("expected: 1 = 1", otb1.compareTo(otb1) == 0 );
86 assertTrue("expected: 4 = 4", otb2.compareTo(otb3) == 0 );
87 assertTrue("expected: 5 < 1", otb3.compareTo(otb1) < 0 );
88
89 Rank genus = Rank.GENUS();
90 Rank species = Rank.SPECIES();
91 Rank kingdom = Rank.KINGDOM();
92 Rank family = Rank.FAMILY();
93
94 comp = genus.compareTo(species);
95 assertTrue( comp > 0 );
96 assertTrue(genus.compareTo(genus) == 0 );
97 assertTrue(family.compareTo(kingdom) < 0 );
98 }
99
100
101 @Test
102 public final void testDecreaseVoc() {
103 OrderedTermVocabulary<OrderedTermBase<?>> voc = new OrderedTermVocabulary();
104 int before = otb1.orderIndex;
105 otb1.decreaseIndex(voc);
106 int after = otb1.orderIndex;
107 assertEquals(before, after);
108 }
109
110 @Test
111 public final void testIncrementVoc() {
112 OrderedTermVocabulary<OrderedTermBase<?>> voc = new OrderedTermVocabulary();
113 assertFalse(voc.indexChangeAllowed(otb1));
114 int before = otb1.orderIndex;
115 otb1.incrementIndex(voc);
116 int after = otb1.orderIndex;
117 assertEquals(before, after);
118 }
119 }