ref #6190 removing svn property place holder in first line of code - java files
[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.common.IEnumTerm;
23 import eu.etaxonomy.cdm.model.common.OriginalSourceType;
24 import eu.etaxonomy.cdm.model.common.TermType;
25 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
26 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
27 import eu.etaxonomy.cdm.model.name.RankClass;
28 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
29 import eu.etaxonomy.cdm.model.reference.ReferenceType;
30 import eu.etaxonomy.taxeditor.model.AbstractUtility;
31
32 /**
33 * @author pplitzner
34 * @date 04.11.2013
35 *
36 */
37 public class AbstractUtilityTest {
38
39 @Test
40 public void testOrderTerms(){
41 LinkedHashMap<? extends IEnumTerm<?>, String> orderedTerms;
42
43 orderedTerms = AbstractUtility.orderTerms(Arrays.asList(SpecimenOrObservationType.values()));
44 check(orderedTerms, Arrays.asList(SpecimenOrObservationType.values()));
45 orderedTerms = AbstractUtility.orderTerms(Arrays.asList(NomenclaturalCode.values()));
46 check(orderedTerms, Arrays.asList(NomenclaturalCode.values()));
47 orderedTerms = AbstractUtility.orderTerms(Arrays.asList(OriginalSourceType.values()));
48 check(orderedTerms, Arrays.asList(OriginalSourceType.values()));
49 orderedTerms = AbstractUtility.orderTerms(Arrays.asList(PreferencePredicate.values()));
50 check(orderedTerms, Arrays.asList(PreferencePredicate.values()));
51 orderedTerms = AbstractUtility.orderTerms(Arrays.asList(RankClass.values()));
52 check(orderedTerms, Arrays.asList(RankClass.values()));
53 orderedTerms = AbstractUtility.orderTerms(Arrays.asList(ReferenceType.values()));
54 check(orderedTerms, Arrays.asList(ReferenceType.values()));
55 orderedTerms = AbstractUtility.orderTerms(Arrays.asList(TermType.values()));
56 check(orderedTerms, Arrays.asList(TermType.values()));
57 }
58
59 /**
60 * @param orderedTerms
61 * @param expectedTerms
62 */
63 private void check(LinkedHashMap<? extends IEnumTerm<?>, String> orderedTerms, Collection<? extends IEnumTerm<?>> expectedTerms) {
64 assertFalse("Ordered term list is empty!", orderedTerms.isEmpty());
65 assertEquals("Some terms got lost while ordering.", expectedTerms.size(), orderedTerms.size());
66 Iterator<String> itti = orderedTerms.values().iterator();
67 String first = itti.next();
68 while (itti.hasNext()) {
69 String next = itti.next();
70 if(next.startsWith(" -")){
71 assertTrue("Sorting is not alphabetically correct.", first.compareTo(next)<0);
72 }
73 }
74 }
75
76 }