2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
9 package eu
.etaxonomy
.cdm
.model
.term
;
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
;
16 import org
.apache
.logging
.log4j
.LogManager
;
17 import org
.apache
.logging
.log4j
.Logger
;
18 import org
.junit
.Before
;
19 import org
.junit
.Test
;
21 import eu
.etaxonomy
.cdm
.model
.name
.Rank
;
22 import eu
.etaxonomy
.cdm
.test
.unit
.EntityTestBase
;
24 public class OrderedTermBaseTest
extends EntityTestBase
{
26 @SuppressWarnings("unused")
27 private static final Logger logger
= LogManager
.getLogger();
29 private OrderedTermBase otb1
;
30 private OrderedTermBase otb2
;
31 private OrderedTermBase otb3
;
32 private OrderedTermBase otb4
;
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();
47 private class DerivedOrderedTermBase
extends OrderedTermBase
<DerivedOrderedTermBase
>{
48 private DerivedOrderedTermBase(){
49 super(TermType
.Unknown
);
51 private DerivedOrderedTermBase(TermType type
, String term
, String label
, String labelAbbrev
){
52 super(type
, term
, label
, labelAbbrev
);
55 protected void setDefaultTerms(TermVocabulary
<DerivedOrderedTermBase
> termVocabulary
) {}
57 public void resetTerms() {};
60 /************ TESTS *************************************/
63 public final void testOrderedTermBase() {
68 public final void testOrderedTermBaseStringString() {
70 assertEquals("label", otb2
.getLabel());
71 //TODO assertEquals("term", otb2.getD);
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
;
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 );
89 Rank genus
= Rank
.GENUS();
90 Rank species
= Rank
.SPECIES();
91 Rank kingdom
= Rank
.KINGDOM();
92 Rank family
= Rank
.FAMILY();
94 comp
= genus
.compareTo(species
);
95 assertTrue( comp
> 0 );
96 assertTrue(genus
.compareTo(genus
) == 0 );
97 assertTrue(family
.compareTo(kingdom
) < 0 );
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
);
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
);