Project

General

Profile

Download (6.35 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2017 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.cdm.vaadin.util.converter;
10

    
11
import static org.junit.Assert.assertEquals;
12
import static org.junit.Assert.assertNotNull;
13

    
14
import java.util.ArrayList;
15
import java.util.Collection;
16
import java.util.Iterator;
17
import java.util.LinkedHashMap;
18
import java.util.List;
19
import java.util.Map;
20

    
21
import org.apache.log4j.Logger;
22
import org.junit.Test;
23

    
24
import eu.etaxonomy.cdm.model.name.NameTypeDesignation;
25
import eu.etaxonomy.cdm.model.name.Rank;
26
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
27
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;
28
import eu.etaxonomy.cdm.model.name.TaxonName;
29
import eu.etaxonomy.cdm.model.name.TaxonNameFactory;
30
import eu.etaxonomy.cdm.model.name.TypeDesignationBase;
31
import eu.etaxonomy.cdm.model.name.TypeDesignationStatusBase;
32
import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;
33
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
34
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
35
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
36
import eu.etaxonomy.cdm.model.reference.Reference;
37
import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
38
import eu.etaxonomy.cdm.vaadin.CdmVaadinBaseTest;
39
import eu.etaxonomy.cdm.vaadin.model.EntityReference;
40
import eu.etaxonomy.cdm.vaadin.model.TypedEntityReference;
41
import eu.etaxonomy.cdm.vaadin.util.converter.TypeDesignationConverter.TypeDesignationWorkingSet;
42
import eu.etaxonomy.cdm.vaadin.view.registration.RegistrationValidationException;
43

    
44
/**
45
 * @author a.kohlbecker
46
 * @since Mar 10, 2017
47
 *
48
 */
49
public class TypeDesignationConverterTest extends CdmVaadinBaseTest{
50

    
51

    
52
    @Test
53
    public void test1() throws RegistrationValidationException{
54

    
55
        TaxonName typifiedName = TaxonNameFactory.NewBacterialInstance(Rank.SPECIES());
56
        typifiedName.setTitleCache("Prionus coriatius L.", true);
57

    
58
        NameTypeDesignation ntd = NameTypeDesignation.NewInstance();
59
        ntd.setId(1);
60
        TaxonName typeName = TaxonNameFactory.NewBacterialInstance(Rank.SPECIES());
61
        typeName.setTitleCache("Prionus L.", true);
62
        ntd.setTypeName(typeName);
63
        Reference citation = ReferenceFactory.newGeneric();
64
        citation.setTitleCache("Species Platarum", true);
65
        ntd.setCitation(citation);
66
        typifiedName.addTypeDesignation(ntd, false);
67

    
68
        FieldUnit fu_1 = FieldUnit.NewInstance();
69
        fu_1.setId(1);
70
        fu_1.setTitleCache("Testland, near Bughausen, A.Kohlbecker 81989, 2017", true);
71

    
72
        FieldUnit fu_2 = FieldUnit.NewInstance();
73
        fu_2.setId(2);
74
        fu_2.setTitleCache("Dreamland, near Kissingen, A.Kohlbecker 66211, 2017", true);
75

    
76
        SpecimenTypeDesignation std_HT = SpecimenTypeDesignation.NewInstance();
77
        std_HT.setId(1);
78
        DerivedUnit specimen_HT = DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);
79
        specimen_HT.setTitleCache("OHA", true);
80
        DerivationEvent derivationEvent_1 = DerivationEvent.NewInstance();
81
        derivationEvent_1.addOriginal(fu_1);
82
        derivationEvent_1.addDerivative(specimen_HT);
83
        specimen_HT.getOriginals().add(fu_1);
84
        std_HT.setTypeSpecimen(specimen_HT);
85
        std_HT.setTypeStatus(SpecimenTypeDesignationStatus.HOLOTYPE());
86
        typifiedName.addTypeDesignation(std_HT, false);
87

    
88
        SpecimenTypeDesignation std_IT = SpecimenTypeDesignation.NewInstance();
89
        std_IT.setId(2);
90
        DerivedUnit specimen_IT = DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);
91
        specimen_IT.setTitleCache("BER", true);
92
        DerivationEvent derivationEvent_2 = DerivationEvent.NewInstance();
93
        derivationEvent_2.addOriginal(fu_1);
94
        derivationEvent_2.addDerivative(specimen_IT);
95
        std_IT.setTypeSpecimen(specimen_IT);
96
        std_IT.setTypeStatus(SpecimenTypeDesignationStatus.ISOTYPE());
97
        typifiedName.addTypeDesignation(std_IT, false);
98

    
99
        SpecimenTypeDesignation std_IT_2 = SpecimenTypeDesignation.NewInstance();
100
        std_IT_2.setId(3);
101
        DerivedUnit specimen_IT_2 = DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);
102
        specimen_IT_2.setTitleCache("KEW", true);
103
        DerivationEvent derivationEvent_3 = DerivationEvent.NewInstance();
104
        derivationEvent_3.addOriginal(fu_1);
105
        derivationEvent_3.addDerivative(specimen_IT_2);
106
        std_IT_2.setTypeSpecimen(specimen_IT_2);
107
        std_IT_2.setTypeStatus(SpecimenTypeDesignationStatus.ISOTYPE());
108
        typifiedName.addTypeDesignation(std_IT_2, false);
109

    
110
        SpecimenTypeDesignation std_IT_3 = SpecimenTypeDesignation.NewInstance();
111
        std_IT_3.setId(4);
112
        DerivedUnit specimen_IT_3 = DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);
113
        specimen_IT_3.setTitleCache("M", true);
114
        std_IT_3.setTypeSpecimen(specimen_IT_3);
115
        std_IT_3.setTypeStatus(SpecimenTypeDesignationStatus.ISOTYPE());
116
        typifiedName.addTypeDesignation(std_IT_3, false);
117

    
118
        List<TypeDesignationBase> tds = new ArrayList<>();
119
        tds.add(ntd);
120
        tds.add(std_IT);
121
        tds.add(std_HT);
122
        tds.add(std_IT_2);
123
        tds.add(std_IT_3);
124

    
125
        TypeDesignationConverter typeDesignationConverter = new TypeDesignationConverter(tds);
126
        String result = typeDesignationConverter.buildString().print();
127
        System.err.println(result);
128

    
129
        Logger.getLogger(this.getClass()).debug(result);
130
        assertNotNull(result);
131
        assertEquals(
132
                "Prionus coriatius L. Type: Testland, near Bughausen, A.Kohlbecker 81989, 2017 (Holotype, OHA; Isotypes: BER, KEW); NameType: Unknown type category, Prionus L. Species Platarum; Type: (Isotype, M)"
133
                , result
134
                );
135

    
136
        LinkedHashMap<TypedEntityReference, TypeDesignationWorkingSet> orderedTypeDesignations =
137
                typeDesignationConverter.getOrderdTypeDesignationWorkingSets();
138
        Map<TypeDesignationStatusBase<?>, Collection<EntityReference>> byStatusMap = orderedTypeDesignations.values().iterator().next();
139
        Iterator<TypeDesignationStatusBase<?>> keyIt = byStatusMap.keySet().iterator();
140
        assertEquals("Holotype", keyIt.next().getLabel());
141
        assertEquals("Isotype", keyIt.next().getLabel());
142
    }
143

    
144
}
    (1-1/1)