Project

General

Profile

Download (3 KB) Statistics
| Branch: | Tag: | Revision:
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
}
    (1-1/1)