2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.cdm
.io
.specimen
.abcd206
.in
;
12 import static org
.junit
.Assert
.assertEquals
;
13 import static org
.junit
.Assert
.assertNotNull
;
14 import static org
.junit
.Assert
.assertTrue
;
16 import java
.net
.URISyntaxException
;
19 import org
.junit
.Assert
;
20 import org
.junit
.Before
;
21 import org
.junit
.Ignore
;
22 import org
.junit
.Test
;
23 import org
.unitils
.dbunit
.annotation
.DataSet
;
24 import org
.unitils
.spring
.annotation
.SpringBeanByName
;
25 import org
.unitils
.spring
.annotation
.SpringBeanByType
;
27 import eu
.etaxonomy
.cdm
.api
.service
.ICommonService
;
28 import eu
.etaxonomy
.cdm
.api
.service
.INameService
;
29 import eu
.etaxonomy
.cdm
.api
.service
.IOccurrenceService
;
30 import eu
.etaxonomy
.cdm
.api
.service
.IReferenceService
;
31 import eu
.etaxonomy
.cdm
.api
.service
.ITaxonNodeService
;
32 import eu
.etaxonomy
.cdm
.api
.service
.ITermService
;
33 import eu
.etaxonomy
.cdm
.io
.common
.CdmApplicationAwareDefaultImport
;
34 import eu
.etaxonomy
.cdm
.io
.common
.IImportConfigurator
;
35 import eu
.etaxonomy
.cdm
.model
.name
.TaxonNameBase
;
36 import eu
.etaxonomy
.cdm
.model
.occurrence
.DerivedUnit
;
37 import eu
.etaxonomy
.cdm
.model
.occurrence
.FieldUnit
;
38 import eu
.etaxonomy
.cdm
.model
.reference
.Reference
;
39 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonNode
;
40 import eu
.etaxonomy
.cdm
.test
.integration
.CdmTransactionalIntegrationTest
;
41 import eu
.etaxonomy
.cdm
.test
.unitils
.CleanSweepInsertLoadStrategy
;
47 public class SpecimenImportTest
extends CdmTransactionalIntegrationTest
{
50 private CdmApplicationAwareDefaultImport
<?
> defaultImport
;
53 private INameService nameService
;
56 private IOccurrenceService occurrenceService
;
59 private ITermService termService
;
62 private ICommonService commonService
;
65 private ITaxonNodeService taxonNodeService
;
68 private IReferenceService referenceService
;
70 private IImportConfigurator configurator
;
74 String inputFile
= "/eu/etaxonomy/cdm/io/specimen/abcd206/in/Campanula_ABCD_import_3_taxa_11_units.xml";
75 URL url
= this.getClass().getResource(inputFile
);
76 assertNotNull("URL for the test file '" + inputFile
+ "' does not exist", url
);
78 configurator
= Abcd206ImportConfigurator
.NewInstance(url
.toURI(), null,false);
79 } catch (URISyntaxException e
) {
83 assertNotNull("Configurator could not be created", configurator
);
87 public void testInit() {
88 assertNotNull("import instance should not be null", defaultImport
);
89 assertNotNull("nameService should not be null", nameService
);
90 assertNotNull("occurence service should not be null", occurrenceService
);
91 assertNotNull("term service should not be null", termService
);
92 assertNotNull("common service should not be null", commonService
);
96 @DataSet( value
="../../../BlankDataSet.xml", loadStrategy
=CleanSweepInsertLoadStrategy
.class)
97 @Ignore //TODO does currently not run in suite as we get ID problems when saving terms (NamedArea)
98 public void testDoInvoke() {
99 boolean result
= defaultImport
.invoke(configurator
);
100 assertTrue("Return value for import.invoke should be true", result
);
101 assertEquals("Number of TaxonNames is incorrect", 4, nameService
.count(TaxonNameBase
.class));
108 * - Campanula tridentata
109 * - Campanula lactiflora
111 assertEquals("Number of TaxonNodes is incorrect", 5, taxonNodeService
.count(TaxonNode
.class));
112 assertEquals("Number of derived units is incorrect", 11, occurrenceService
.count(DerivedUnit
.class));
113 assertEquals("Number of field units is incorrect", 11, occurrenceService
.count(FieldUnit
.class));
114 assertEquals("Number of field units is incorrect", 1, referenceService
.count(Reference
.class));