3 * Copyright (C) 2013 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.taxeditor
.store
.utility
;
12 import static org
.junit
.Assert
.assertEquals
;
13 import static org
.junit
.Assert
.assertFalse
;
14 import static org
.junit
.Assert
.assertTrue
;
16 import java
.util
.Arrays
;
17 import java
.util
.Collection
;
18 import java
.util
.Iterator
;
19 import java
.util
.LinkedHashMap
;
21 import org
.junit
.Test
;
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
;
38 public class AbstractUtilityTest
{
41 public void testOrderTerms(){
42 LinkedHashMap
<?
extends IEnumTerm
<?
>, String
> orderedTerms
;
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()));
62 * @param expectedTerms
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);