- changed indention marker #3736
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / test / java / eu / etaxonomy / taxeditor / store / utility / AbstractUtilityTest.java
1 // $Id$
2 /**
3 * Copyright (C) 2013 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
9 */
10 package eu.etaxonomy.taxeditor.store.utility;
11
12 import static org.junit.Assert.assertEquals;
13 import static org.junit.Assert.assertFalse;
14 import static org.junit.Assert.assertTrue;
15
16 import java.util.Arrays;
17 import java.util.Collection;
18 import java.util.Iterator;
19 import java.util.LinkedHashMap;
20
21 import org.junit.Test;
22
23 import eu.etaxonomy.cdm.model.common.IEnumTerm;
24 import eu.etaxonomy.cdm.model.common.OriginalSourceType;
25 import eu.etaxonomy.cdm.model.common.TermType;
26 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
27 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
28 import eu.etaxonomy.cdm.model.name.RankClass;
29 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
30 import eu.etaxonomy.cdm.model.reference.ReferenceType;
31 import eu.etaxonomy.taxeditor.model.AbstractUtility;
32
33 /**
34 * @author pplitzner
35 * @date 04.11.2013
36 *
37 */
38 public class AbstractUtilityTest {
39
40 @Test
41 public void testOrderTerms(){
42 LinkedHashMap<? extends IEnumTerm<?>, String> orderedTerms;
43
44 orderedTerms = AbstractUtility.orderTerms(Arrays.asList(SpecimenOrObservationType.values()));
45 check(orderedTerms, Arrays.asList(SpecimenOrObservationType.values()));
46 orderedTerms = AbstractUtility.orderTerms(Arrays.asList(NomenclaturalCode.values()));
47 check(orderedTerms, Arrays.asList(NomenclaturalCode.values()));
48 orderedTerms = AbstractUtility.orderTerms(Arrays.asList(OriginalSourceType.values()));
49 check(orderedTerms, Arrays.asList(OriginalSourceType.values()));
50 orderedTerms = AbstractUtility.orderTerms(Arrays.asList(PreferencePredicate.values()));
51 check(orderedTerms, Arrays.asList(PreferencePredicate.values()));
52 orderedTerms = AbstractUtility.orderTerms(Arrays.asList(RankClass.values()));
53 check(orderedTerms, Arrays.asList(RankClass.values()));
54 orderedTerms = AbstractUtility.orderTerms(Arrays.asList(ReferenceType.values()));
55 check(orderedTerms, Arrays.asList(ReferenceType.values()));
56 orderedTerms = AbstractUtility.orderTerms(Arrays.asList(TermType.values()));
57 check(orderedTerms, Arrays.asList(TermType.values()));
58 }
59
60 /**
61 * @param orderedTerms
62 * @param expectedTerms
63 */
64 private void check(LinkedHashMap<? extends IEnumTerm<?>, String> orderedTerms, Collection<? extends IEnumTerm<?>> expectedTerms) {
65 assertFalse("Ordered term list is empty!", orderedTerms.isEmpty());
66 assertEquals("Some terms got lost while ordering.", expectedTerms.size(), orderedTerms.size());
67 Iterator<String> itti = orderedTerms.values().iterator();
68 String first = itti.next();
69 while (itti.hasNext()) {
70 String next = itti.next();
71 if(next.startsWith(" -")){
72 assertTrue("Sorting is not alphabetically correct.", first.compareTo(next)<0);
73 }
74 }
75 }
76
77 }