Merge branch 'release/5.18.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / test / java / eu / etaxonomy / taxeditor / store / utility / AbstractUtilityTest.java
1 /**
2 * Copyright (C) 2013 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.taxeditor.store.utility;
10
11 import static org.junit.Assert.assertEquals;
12 import static org.junit.Assert.assertFalse;
13 import static org.junit.Assert.assertTrue;
14
15 import java.util.Arrays;
16 import java.util.Collection;
17 import java.util.Iterator;
18 import java.util.LinkedHashMap;
19
20 import org.junit.Test;
21
22 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
23 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
24 import eu.etaxonomy.cdm.model.name.RankClass;
25 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
26 import eu.etaxonomy.cdm.model.reference.OriginalSourceType;
27 import eu.etaxonomy.cdm.model.reference.ReferenceType;
28 import eu.etaxonomy.cdm.model.term.IEnumTerm;
29 import eu.etaxonomy.cdm.model.term.TermType;
30 import eu.etaxonomy.taxeditor.model.AbstractUtility;
31
32 /**
33 * @author pplitzner
34 * @date 04.11.2013
35 */
36 public class AbstractUtilityTest {
37
38 @Test
39 public void testOrderTerms(){
40 LinkedHashMap<? extends IEnumTerm<?>, String> orderedTerms;
41
42 orderedTerms = AbstractUtility.orderTerms(Arrays.asList(SpecimenOrObservationType.values()));
43 check(orderedTerms, Arrays.asList(SpecimenOrObservationType.values()));
44 orderedTerms = AbstractUtility.orderTerms(Arrays.asList(NomenclaturalCode.values()));
45 check(orderedTerms, Arrays.asList(NomenclaturalCode.values()));
46 orderedTerms = AbstractUtility.orderTerms(Arrays.asList(OriginalSourceType.values()));
47 check(orderedTerms, Arrays.asList(OriginalSourceType.values()));
48 orderedTerms = AbstractUtility.orderTerms(Arrays.asList(PreferencePredicate.values()));
49 check(orderedTerms, Arrays.asList(PreferencePredicate.values()));
50 orderedTerms = AbstractUtility.orderTerms(Arrays.asList(RankClass.values()));
51 check(orderedTerms, Arrays.asList(RankClass.values()));
52 orderedTerms = AbstractUtility.orderTerms(Arrays.asList(ReferenceType.values()));
53 check(orderedTerms, Arrays.asList(ReferenceType.values()));
54 orderedTerms = AbstractUtility.orderTerms(Arrays.asList(TermType.values()));
55 check(orderedTerms, Arrays.asList(TermType.values()));
56 }
57
58 private void check(LinkedHashMap<? extends IEnumTerm<?>, String> orderedTerms, Collection<? extends IEnumTerm<?>> expectedTerms) {
59 assertFalse("Ordered term list is empty!", orderedTerms.isEmpty());
60 assertEquals("Some terms got lost while ordering.", expectedTerms.size(), orderedTerms.size());
61 Iterator<String> itti = orderedTerms.values().iterator();
62 String first = itti.next();
63 while (itti.hasNext()) {
64 String next = itti.next();
65 if(next.startsWith(" -")){
66 assertTrue("Sorting is not alphabetically correct.", first.compareTo(next)<0);
67 }
68 }
69 }
70
71 }