Added null checks for comparator
[cdmlib.git] / cdmlib-io / src / test / java / eu / etaxonomy / cdm / io / specimen / abcd206 / in / SpecimenImportTest.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 SpecimenImportTest extends CdmTransactionalIntegrationTest {
48
49 @SpringBeanByName
50 private CdmApplicationAwareDefaultImport<?> defaultImport;
51
52 @SpringBeanByType
53 private INameService nameService;
54
55 @SpringBeanByType
56 private IOccurrenceService occurrenceService;
57
58 @SpringBeanByType
59 private ITermService termService;
60
61 @SpringBeanByType
62 private ICommonService commonService;
63
64 @SpringBeanByType
65 private ITaxonNodeService taxonNodeService;
66
67 @SpringBeanByType
68 private IReferenceService referenceService;
69
70 private IImportConfigurator configurator;
71
72 @Before
73 public void setUp() {
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);
77 try {
78 configurator = Abcd206ImportConfigurator.NewInstance(url.toURI(), null,false);
79 } catch (URISyntaxException e) {
80 e.printStackTrace();
81 Assert.fail();
82 }
83 assertNotNull("Configurator could not be created", configurator);
84 }
85
86 @Test
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);
93 }
94
95 @Test
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));
102 /*
103 * 5 taxon nodes:
104 *
105 * Classification
106 * - Campanula
107 * - Campanula patula
108 * - Campanula tridentata
109 * - Campanula lactiflora
110 */
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));
115 }
116 }