2 * Copyright (C) 2013 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
.taxeditor
.store
.utility
;
11 import static org
.junit
.Assert
.assertEquals
;
12 import static org
.junit
.Assert
.assertFalse
;
13 import static org
.junit
.Assert
.assertTrue
;
15 import java
.util
.Arrays
;
16 import java
.util
.Collection
;
17 import java
.util
.Iterator
;
18 import java
.util
.LinkedHashMap
;
20 import org
.junit
.Test
;
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
;
36 public class AbstractUtilityTest
{
39 public void testOrderTerms(){
40 LinkedHashMap
<?
extends IEnumTerm
<?
>, String
> orderedTerms
;
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()));
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);