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

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

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

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

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

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

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

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

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

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

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

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

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

    
145
}
    (1-1/1)