ref #7114 implementing test to reproduce the issue
authorAndreas Kohlbecker <a.kohlbecker@bgbm.org>
Thu, 14 Dec 2017 15:26:12 +0000 (16:26 +0100)
committerAndreas Kohlbecker <a.kohlbecker@bgbm.org>
Thu, 14 Dec 2017 15:26:12 +0000 (16:26 +0100)
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/utility/DerivedUnitConverterIntegrationTest.java [new file with mode: 0644]
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/utility/DerivedUnitConverterTest.java

diff --git a/cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/utility/DerivedUnitConverterIntegrationTest.java b/cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/utility/DerivedUnitConverterIntegrationTest.java
new file mode 100644 (file)
index 0000000..e3d66e0
--- /dev/null
@@ -0,0 +1,77 @@
+/**
+* Copyright (C) 2017 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.cdm.api.utility;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.FileNotFoundException;
+
+import org.junit.Test;
+import org.unitils.spring.annotation.SpringBeanByType;
+
+import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;
+
+/**
+ *
+ * @author a.kohlbecker
+ * @since Jun 23, 2017
+ *
+ */
+public class DerivedUnitConverterIntegrationTest extends CdmTransactionalIntegrationTest {
+
+    @SpringBeanByType
+    private IOccurrenceService service;
+
+    @Test
+    public void toMediaSpecimen_issue7114() throws DerivedUnitConversionException {
+
+        assertEquals(0, service.list(null, null, null, null, null).size());
+
+        DerivedUnit du = DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);
+        du.setTitleCache("test derived unit", true);
+        du = (DerivedUnit) service.save(du); // intermediate save is essential for this test
+        DerivedUnitConverter<MediaSpecimen> duc = new DerivedUnitConverter<MediaSpecimen>(du);
+        MediaSpecimen target = duc.convertTo(MediaSpecimen.class, SpecimenOrObservationType.StillImage);
+        service.save(target);
+
+        assertEquals(1, service.list(null, null, null, null, null).size());
+        assertEquals(1, service.list(MediaSpecimen.class, null, null, null, null).size());
+    }
+
+    @Test
+    public void toDerivedUnit_issue7114() throws DerivedUnitConversionException {
+
+        assertEquals(0, service.list(null, null, null, null, null).size());
+
+        MediaSpecimen du = MediaSpecimen.NewInstance(SpecimenOrObservationType.StillImage);
+        du.setTitleCache("test media specimen", true);
+        DerivedUnitConverter<DerivedUnit> duc = new DerivedUnitConverter<DerivedUnit>(du);
+        du = (MediaSpecimen) service.save(du); // intermediate save is essential for this test
+        DerivedUnit target = duc.convertTo(DerivedUnit.class, SpecimenOrObservationType.PreservedSpecimen);
+        service.save(target);
+
+        assertEquals(1, service.list(null, null, null, null, null).size());
+        assertEquals(1, service.list(DerivedUnit.class, null, null, null, null).size());
+
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void createTestDataSet() throws FileNotFoundException {
+       // using empty database
+
+    }
+
+}
index 43b989075a87456d0663590e6856c8444ba71dfc..ef06a1f7c66b0123fe1b48566cf8fb36765fb9c9 100644 (file)
@@ -34,7 +34,9 @@ public class DerivedUnitConverterTest extends Assert {
         assertEquals("test derived unit", target.getTitleCache());
     }
 
+    @Test
     public void toDerivedUnit() throws DerivedUnitConversionException {
+
         MediaSpecimen du = MediaSpecimen.NewInstance(SpecimenOrObservationType.StillImage);
         du.setTitleCache("test media specimen", true);
         DerivedUnitConverter<DerivedUnit> duc = new DerivedUnitConverter<DerivedUnit>(du);