fix Specimen import test
[cdmlib.git] / cdmlib-io / src / test / java / eu / etaxonomy / cdm / io / specimen / abcd206 / in / SpecimenImportConfiguratorTest.java
1 /**
2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
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.
8 */
9
10 package eu.etaxonomy.cdm.io.specimen.abcd206.in;
11
12 import static org.junit.Assert.assertEquals;
13 import static org.junit.Assert.assertNotNull;
14 import static org.junit.Assert.assertTrue;
15
16 import java.net.URISyntaxException;
17 import java.net.URL;
18
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;
26
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;
42
43 /**
44 * @author a.mueller
45 * @created 29.01.2009
46 */
47 public class SpecimenImportConfiguratorTest extends CdmTransactionalIntegrationTest {
48
49 @SpringBeanByName
50 CdmApplicationAwareDefaultImport<?> defaultImport;
51
52 @SpringBeanByType
53 INameService nameService;
54
55 @SpringBeanByType
56 IOccurrenceService occurrenceService;
57
58 @SpringBeanByType
59 ITermService termService;
60
61 @SpringBeanByType
62 ICommonService commonService;
63
64 @SpringBeanByType
65 ITaxonNodeService taxonNodeService;
66
67 @SpringBeanByType
68 private IReferenceService referenceService;
69
70
71
72 private IImportConfigurator configurator;
73 private IImportConfigurator configurator2;
74
75 @Before
76 public void setUp() {
77 String inputFile = "/eu/etaxonomy/cdm/io/specimen/abcd206/in/ABCDImportTestCalvumPart1.xml";
78 URL url = this.getClass().getResource(inputFile);
79 assertNotNull("URL for the test file '" + inputFile + "' does not exist", url);
80 try {
81 configurator = Abcd206ImportConfigurator.NewInstance(url.toURI(), null,false);
82 } catch (URISyntaxException e) {
83 e.printStackTrace();
84 Assert.fail();
85 }
86 assertNotNull("Configurator2 could not be created", configurator);
87
88 //test2
89 String inputFile2 = "/eu/etaxonomy/cdm/io/specimen/abcd206/in/Campanula_ABCD_import_3_taxa_11_units.xml";
90 URL url2 = this.getClass().getResource(inputFile2);
91 assertNotNull("URL for the test file '" + inputFile2 + "' does not exist", url2);
92 try {
93 configurator2 = Abcd206ImportConfigurator.NewInstance(url2.toURI(), null,false);
94 } catch (URISyntaxException e) {
95 e.printStackTrace();
96 Assert.fail();
97 }
98 assertNotNull("Configurator could not be created", configurator2);
99 }
100
101 @Test
102 public void testInit() {
103 System.out.println("TEST INIT");
104 assertNotNull("import instance should not be null", defaultImport);
105 assertNotNull("nameService should not be null", nameService);
106 assertNotNull("occurence service should not be null", occurrenceService);
107 assertNotNull("term service should not be null", termService);
108 assertNotNull("common service should not be null", commonService);
109 }
110
111 @Test
112 @DataSet( value="../../../BlankDataSet.xml", loadStrategy=CleanSweepInsertLoadStrategy.class)
113 public void testDoInvoke() {
114 boolean result = defaultImport.invoke(configurator);
115 assertTrue("Return value for import.invoke should be true", result);
116 assertEquals("Number of TaxonNames is incorrect", 2, nameService.count(TaxonNameBase.class));
117 /*
118 * Classification
119 * - Cichorium
120 * - Cichorium calvum
121 */
122 assertEquals("Number of TaxonNodes is incorrect", 3, taxonNodeService.count(TaxonNode.class));
123 assertEquals("Number of specimen and observation is incorrect", 10, occurrenceService.count(DerivedUnit.class));
124 }
125
126
127 @Test
128 @DataSet(value="SpecimenImportConfiguratorTest.doInvoke2.xml", loadStrategy=CleanSweepInsertLoadStrategy.class)
129 public void testDoInvoke2() {
130 boolean result = defaultImport.invoke(configurator2);
131 assertTrue("Return value for import.invoke should be true", result);
132 assertEquals("Number of TaxonNames is incorrect", 4, nameService.count(TaxonNameBase.class));
133 /*
134 * 5 taxon nodes:
135 *
136 * Classification
137 * - Campanula
138 * - Campanula patula
139 * - Campanula tridentata
140 * - Campanula lactiflora
141 */
142 assertEquals("Number of TaxonNodes is incorrect", 5, taxonNodeService.count(TaxonNode.class));
143 assertEquals("Number of derived units is incorrect", 11, occurrenceService.count(DerivedUnit.class));
144 assertEquals("Number of field units is incorrect", 11, occurrenceService.count(FieldUnit.class));
145 assertEquals("Number of field units is incorrect", 1, referenceService.count(Reference.class));
146 }
147 }