Project

General

Profile

« Previous | Next » 

Revision 940e93a1

Added by Andreas Kohlbecker about 6 years ago

fix #7354 DerivedUnitConverter handled typeDesignations correctly and abstains from persising anything

View differences:

cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/utility/DerivedUnitConverterIntegrationTest.java
20 20
import org.unitils.spring.annotation.SpringBeanByType;
21 21

  
22 22
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
23
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
23 24
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
24 25
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
25 26
import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
......
54 55

  
55 56
        DerivedUnit du = DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);
56 57
        du.setTitleCache("test derived unit", true);
58
        SpecimenTypeDesignation std = SpecimenTypeDesignation.NewInstance();
59
        std.setTypeSpecimen(du);
57 60
        du = (DerivedUnit) service.save(du); // intermediate save is essential for this test
58
        DerivedUnitConverter<MediaSpecimen> duc = DerivedUnitConverterFactory.createDerivedUnitConverter(du, MediaSpecimen.class);
59
        duc.convertTo(MediaSpecimen.class, SpecimenOrObservationType.StillImage);
60

  
61
        DerivedUnitConverter<MediaSpecimen> converter = new DerivedUnitConverter<MediaSpecimen>(std);
62
        SpecimenTypeDesignation newDu = converter.convertTo(MediaSpecimen.class, SpecimenOrObservationType.StillImage);
63
        assertEquals(du, converter.oldDerivedUnit());
64
        printDataSet(System.err, new String[]{"SpecimenOrObservationBase", "TypeDesignationBase"});
65
        service.saveOrUpdate(newDu.getTypeSpecimen());
66
        service.delete(du);
67
        printDataSet(System.err, new String[]{"SpecimenOrObservationBase", "TypeDesignationBase"});
61 68
        assertEquals(1, service.list(null, null, null, null, null).size());
62 69
        assertEquals(1, service.list(MediaSpecimen.class, null, null, null, null).size());
63 70
    }
......
75 82

  
76 83
        MediaSpecimen du = MediaSpecimen.NewInstance(SpecimenOrObservationType.StillImage);
77 84
        du.setTitleCache("test media specimen", true);
78
        DerivedUnitConverter<DerivedUnit> duc = DerivedUnitConverterFactory.createDerivedUnitConverter(du, DerivedUnit.class);
85
        SpecimenTypeDesignation std = SpecimenTypeDesignation.NewInstance();
86
        std.setTypeSpecimen(du);
87
        DerivedUnitConverter<DerivedUnit> duc = new DerivedUnitConverter<DerivedUnit>(std);
79 88
        du = (MediaSpecimen) service.save(du); // intermediate save is essential for this test
80 89
        duc.convertTo(DerivedUnit.class, SpecimenOrObservationType.PreservedSpecimen);
81 90

  
......
104 113
                "derivedFrom.originals.*",
105 114
                "derivedFrom.originals.derivationEvents",
106 115
                "specimenTypeDesignations.typifiedNames.typeDesignations",
116
                "specimenTypeDesignations.annotations",
117
                "specimenTypeDesignations.markers",
118
                "specimenTypeDesignations.registrations",
107 119
                //
108 120
                "derivedFrom.originals.gatheringEvent.$",
109 121
                "derivedFrom.originals.gatheringEvent.country",
110 122
                "derivedFrom.originals.gatheringEvent.collectingAreas",
111 123
                "derivedFrom.originals.gatheringEvent.actor.teamMembers",
112 124
                "derivedFrom.originals.derivationEvents.derivatives" }));
113
        DerivedUnitConverter<DerivedUnit> duc = DerivedUnitConverterFactory.createDerivedUnitConverter(du, DerivedUnit.class);
114
        DerivedUnit target = duc.convertTo(DerivedUnit.class, SpecimenOrObservationType.HumanObservation);
125
        SpecimenTypeDesignation specimenTypeDesignation = du.getSpecimenTypeDesignations().iterator().next();
126
        DerivedUnitConverter<DerivedUnit> duc = new DerivedUnitConverter<DerivedUnit>(specimenTypeDesignation);
127
        SpecimenTypeDesignation newSpecimenTypeDesignation = duc.convertTo(DerivedUnit.class, SpecimenOrObservationType.HumanObservation);
128
        DerivedUnit target = newSpecimenTypeDesignation.getTypeSpecimen();
115 129

  
116 130
        //service.save(target); // save is performed in convertTo()
117 131

  

Also available in: Unified diff