ref #7175 add test for DwcA Export if includeUnpublished works
authorAndreas Müller <a.mueller@bgbm.org>
Tue, 16 Jan 2018 14:37:55 +0000 (15:37 +0100)
committerAndreas Müller <a.mueller@bgbm.org>
Tue, 16 Jan 2018 14:37:55 +0000 (15:37 +0100)
cdmlib-io/src/test/java/eu/etaxonomy/cdm/io/dwca/out/DwcaExportTest.java

index 79999d280a251bd8c4ba498507deab0976beec4e..ddaca265f1138f02a74cd65d687b13c5c8412b0d 100644 (file)
@@ -52,9 +52,14 @@ import eu.etaxonomy.cdm.test.unitils.CleanSweepInsertLoadStrategy;
  *
  */
 public class DwcaExportTest  extends CdmTransactionalIntegrationTest{
+
     @SuppressWarnings("unused")
     private static final Logger logger = Logger.getLogger(DwcaExportTest.class);
 
+    private static final UUID UUID_SUBSPEC_NODE = UUID.fromString("f8c9933a-fe3a-42ce-8a92-000e27bfdfac");
+    private static final String UUID_UNPUBLISHED_TAXON = "e5cdc392-4e0b-49ad-84e9-8c4b22d1827c";
+
+
     @SpringBeanByName
     private CdmApplicationAwareDefaultExport<DwcaTaxExportConfigurator> defaultExport;
 
@@ -72,7 +77,7 @@ public class DwcaExportTest  extends CdmTransactionalIntegrationTest{
         DwcaTaxExportConfigurator config = DwcaTaxExportConfigurator.NewInstance(null, destinationFolder, null);
         config.setTarget(TARGET.EXPORT_DATA);
         ExportResult result = defaultExport.invoke(config);
-        System.out.println(result.createReport());
+//        System.out.println(result.createReport());
         ExportDataWrapper<?> exportData = result.getExportData();
         @SuppressWarnings("unchecked")
         Map<String, byte[]> data = (Map<String, byte[]>) exportData.getExportData();
@@ -113,7 +118,7 @@ public class DwcaExportTest  extends CdmTransactionalIntegrationTest{
         createFullTestDataSet();
         File destinationFolder = null;
         DwcaTaxExportConfigurator config = DwcaTaxExportConfigurator.NewInstance(null, destinationFolder, null);
-        config.setTaxonNodeFilter(TaxonNodeFilter.NewSubtreeInstance(UUID.fromString("f8c9933a-fe3a-42ce-8a92-000e27bfdfac")));
+        config.setTaxonNodeFilter(TaxonNodeFilter.NewSubtreeInstance(UUID_SUBSPEC_NODE));
         config.setTarget(TARGET.EXPORT_DATA);
         ExportResult result = defaultExport.invoke(config);
         System.out.println(result.createReport());
@@ -219,10 +224,11 @@ public class DwcaExportTest  extends CdmTransactionalIntegrationTest{
         Assert.assertNotNull("Core must not be null", core);
         String coreStr = new String(core);
         String expected =  "\"9182e136-f2e2-4f9a-9010-3f35908fb5e0\",\"f983cc5e-4c77-4c80-8cb0-73d43df31ee9\",\"9182e136-f2e2-4f9a-9010-3f35908fb5e0\",\"3f52e136-f2e1-4f9a-9010-2f35908fbd39\",\"Genus species Mill.\",\"Species\",\"accepted\"";
-//        System.out.println(coreStr);
+        System.out.println(coreStr);
         Assert.assertTrue(coreStr.contains(expected));
         String expectedClassification = "\"Family|Genus|Genus species\"";
         Assert.assertTrue(coreStr.contains(expectedClassification));
+        Assert.assertFalse(coreStr.contains(UUID_UNPUBLISHED_TAXON));
 
 
         //reference
@@ -244,6 +250,29 @@ public class DwcaExportTest  extends CdmTransactionalIntegrationTest{
 
     }
 
+    @Test
+    @DataSet(loadStrategy=CleanSweepInsertLoadStrategy.class, value="/eu/etaxonomy/cdm/database/BlankDataSet.xml")
+    public void testUnpublished(){
+        createFullTestDataSet();
+        File destinationFolder = null;
+        DwcaTaxExportConfigurator config = DwcaTaxExportConfigurator.NewInstance(null, destinationFolder, null);
+        config.setTarget(TARGET.EXPORT_DATA);
+        config.getTaxonNodeFilter().setIncludeUnpublished(true);
+        ExportResult result = defaultExport.invoke(config);
+
+        //core
+        ExportDataWrapper<?> exportData = result.getExportData();
+        @SuppressWarnings("unchecked")
+        Map<String, byte[]> data = (Map<String, byte[]>) exportData.getExportData();
+        byte[] core = data.get(DwcaTaxExportFile.TAXON.getTableName());
+        Assert.assertNotNull("Core must not be null", core);
+        String coreStr = new String(core);
+        String expected =  "\"9182e136-f2e2-4f9a-9010-3f35908fb5e0\"";
+        Assert.assertTrue(coreStr.contains(expected));
+
+        Assert.assertTrue(coreStr.contains(UUID_UNPUBLISHED_TAXON));
+    }
+
     /**
      * {@inheritDoc}
      */
@@ -257,6 +286,8 @@ public class DwcaExportTest  extends CdmTransactionalIntegrationTest{
         setUuid(classification, "4096df99-7274-421e-8843-211b603d832e");
 
         NonViralNameParserImpl parser = NonViralNameParserImpl.NewInstance();
+
+        //family
         TaxonName familyName = parser.parseReferencedName("Family L., Sp. Pl. 3: 22. 1752",
                 NomenclaturalCode.ICNAFP, Rank.FAMILY());
         setUuid(familyName,"e983cc5e-4c77-4c80-8cb0-73d43df31ef7");
@@ -267,6 +298,7 @@ public class DwcaExportTest  extends CdmTransactionalIntegrationTest{
         setUuid(node1, "0fae5ad5-ffa2-4100-bcd7-8aa9dda0aebc");
         nodesToSave.add(node1);
 
+        //genus
         TaxonName genusName = parser.parseReferencedName("Genus Humb., The book of botany 3: 22. 1804",
                 NomenclaturalCode.ICNAFP, Rank.GENUS());
         setUuid(genusName,"5e83cc5e-4c77-4d80-8cb0-73d63df35ee3");
@@ -278,7 +310,7 @@ public class DwcaExportTest  extends CdmTransactionalIntegrationTest{
         setUuid(node2, "43ca733b-fe3a-42ce-8a92-000e27badf44");
         nodesToSave.add(node2);
 
-
+        //species
         TaxonName speciesName = parser.parseReferencedName("Genus species Mill., The book of botany 3: 22. 1804",
                 NomenclaturalCode.ICNAFP, Rank.SPECIES());
         setUuid(speciesName,"f983cc5e-4c77-4c80-8cb0-73d43df31ee9");
@@ -290,6 +322,7 @@ public class DwcaExportTest  extends CdmTransactionalIntegrationTest{
         setUuid(node3, "a0c9733a-fe3a-42ce-8a92-000e27bfdfa3");
         nodesToSave.add(node3);
 
+        //subspecies
         TaxonName subspeciesName = parser.parseReferencedName("Genus species subsp. subspec Mill., The book of botany 3: 22. 1804",
                 NomenclaturalCode.ICNAFP, Rank.SUBSPECIES());
         setUuid(subspeciesName,"3483cc5e-4c77-4c80-8cb0-73d43df31ee3");
@@ -298,9 +331,22 @@ public class DwcaExportTest  extends CdmTransactionalIntegrationTest{
         Taxon subspecies = Taxon.NewInstance(subspeciesName, sec1);
         setUuid(subspecies, "b2c86698-500e-4efb-b9ae-6bb6e701d4bc");
         TaxonNode node4 = node3.addChildTaxon(subspecies, sec1, "33");
-        setUuid(node4, "f8c9933a-fe3a-42ce-8a92-000e27bfdfac");
+        node4.setUuid(UUID_SUBSPEC_NODE);
         nodesToSave.add(node4);
 
+        //unpublished
+        TaxonName unpublishedName = parser.parseReferencedName("Genus species subsp. unpublish Mill., The book of botany 3: 22. 1804",
+                NomenclaturalCode.ICNAFP, Rank.SUBSPECIES());
+        setUuid(unpublishedName,"ebcf6bb6-6da8-46fe-9c22-127aa4cb9549");
+        setUuid((Reference)unpublishedName.getNomenclaturalReference(), "51725dbd-e4a1-43ea-8363-fe8eb1152a49");
+
+        Taxon unpublishedSpecies = Taxon.NewInstance(unpublishedName, sec1);
+        unpublishedSpecies.setPublish(false);
+        setUuid(unpublishedSpecies, UUID_UNPUBLISHED_TAXON);
+        TaxonNode nodeUnpublished = node3.addChildTaxon(unpublishedSpecies, sec1, "34");
+        setUuid(nodeUnpublished, "01368584-b626-4255-9dc4-ff011d44f493");
+        nodesToSave.add(nodeUnpublished);
+
         classificationService.save(classification);
         taxonNodeService.save(nodesToSave);