Revision 940e93a1
Added by Andreas Kohlbecker about 6 years ago
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
fix #7354 DerivedUnitConverter handled typeDesignations correctly and abstains from persising anything