Project

General

Profile

Download (3.07 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.term.IEnumTerm;
23
import eu.etaxonomy.cdm.model.common.OriginalSourceType;
24
import eu.etaxonomy.cdm.model.term.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
}
    (1-1/1)