Project

General

Profile

« Previous | Next » 

Revision a1439def

Added by Andreas Müller over 8 years ago

Cleanup description generics (related to #5357)

View differences:

cdmlib-io/src/test/java/eu/etaxonomy/cdm/io/excel/stream/ExcelStreamImportTest.java
1
// $Id$

2
/**

3
* Copyright (C) 2007 EDIT

4
* European Distributed Institute of Taxonomy

5
* http://www.e-taxonomy.eu

6
*

7
* The contents of this file are subject to the Mozilla Public License Version 1.1

8
* See LICENSE.TXT at the top of this package for the full license terms.

9
*/

10

  
11
package eu.etaxonomy.cdm.io.excel.stream;

12

  
13
import static org.junit.Assert.assertEquals;

14
import static org.junit.Assert.assertNotNull;

15
import static org.junit.Assert.assertTrue;

16

  
17
import java.io.FileNotFoundException;

18
import java.net.URISyntaxException;

19
import java.net.URL;

20
import java.util.List;

21
import java.util.Set;

22

  
23
import org.apache.log4j.Logger;

24
import org.junit.Before;

25
import org.junit.Test;

26
import org.unitils.dbunit.annotation.DataSet;

27
import org.unitils.spring.annotation.SpringBeanByName;

28
import org.unitils.spring.annotation.SpringBeanByType;

29

  
30
import eu.etaxonomy.cdm.api.service.IClassificationService;

31
import eu.etaxonomy.cdm.api.service.IDescriptionService;

32
import eu.etaxonomy.cdm.api.service.INameService;

33
import eu.etaxonomy.cdm.api.service.ITaxonService;

34
import eu.etaxonomy.cdm.api.service.ITermService;

35
import eu.etaxonomy.cdm.io.common.CdmApplicationAwareDefaultImport;

36
import eu.etaxonomy.cdm.io.common.IImportConfigurator;

37
import eu.etaxonomy.cdm.io.common.events.LoggingIoObserver;

38
import eu.etaxonomy.cdm.model.common.Annotation;

39
import eu.etaxonomy.cdm.model.common.CdmBase;

40
import eu.etaxonomy.cdm.model.common.IdentifiableSource;

41
import eu.etaxonomy.cdm.model.common.LanguageString;

42
import eu.etaxonomy.cdm.model.description.CommonTaxonName;

43
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;

44
import eu.etaxonomy.cdm.model.description.Distribution;

45
import eu.etaxonomy.cdm.model.description.TaxonDescription;

46
import eu.etaxonomy.cdm.model.description.TextData;

47
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;

48
import eu.etaxonomy.cdm.model.taxon.Classification;

49
import eu.etaxonomy.cdm.model.taxon.TaxonNode;

50
import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;

51

  
52
/**

53
 * @author a.mueller

54
 * @created 24.05.2013

55
 */

56
public class ExcelStreamImportTest extends CdmTransactionalIntegrationTest{

57
	@SuppressWarnings("unused")

58
	private static final Logger logger = Logger.getLogger(ExcelStreamImportTest.class);

59

  
60
	@SpringBeanByName

61
	CdmApplicationAwareDefaultImport defaultImport;

62

  
63
	@SpringBeanByType

64
	INameService nameService;

65

  
66
	@SpringBeanByType

67
	ITaxonService taxonService;

68

  
69
	@SpringBeanByType

70
	ITermService termService;

71

  
72
	@SpringBeanByType

73
	IClassificationService classificationService;

74

  
75
	@SpringBeanByType

76
	IDescriptionService descriptionService;

77

  
78
	private IImportConfigurator configurator;

79
	private IImportConfigurator uuidConfigurator;

80

  
81
	@Before

82
	public void setUp() throws URISyntaxException {

83
		//TODO create own test file

84
		String inputFile = "/eu/etaxonomy/cdm/io/excel/stream/ExcelStreamImport-TestInput.xls";

85
		URL url = this.getClass().getResource(inputFile);

86
	 	assertNotNull("URL for the test file '" + inputFile + "' does not exist", url);

87
		configurator = ExcelStreamImportConfigurator.NewInstance(url.toURI(), null, NomenclaturalCode.ICNAFP, null);

88
		assertNotNull("Configurator could not be created", configurator);

89
		configurator.addObserver(new LoggingIoObserver());

90

  
91
		inputFile = "/eu/etaxonomy/cdm/io/excel/taxa/NormalExplicitImportTest.testUuid-input.xls";

92
		url = this.getClass().getResource(inputFile);

93
	 	assertNotNull("URL for the test file '" + inputFile + "' does not exist", url);

94
		uuidConfigurator = ExcelStreamImportConfigurator.NewInstance(url.toURI(), null, NomenclaturalCode.ICNAFP, null);

95
		assertNotNull("Configurator could not be created", configurator);

96

  
97
	}

98

  
99
	@Test

100
	public void testInit() {

101
		assertNotNull("normalExplicitImport should not be null", defaultImport);

102
		assertNotNull("nameService should not be null", nameService);

103
	}

104

  
105
	@Test

106
	@DataSet

107
	public void testDoInvoke() {

108
//		printDataSet(System.out, new String[]{"ANNOTATION"});

109
		boolean result = defaultImport.invoke(configurator).isSuccess();

110
		assertTrue("Return value for import.invoke should be true", result);

111
		commitAndStartNewTransaction(new String[]{"TAXONNAMEBASE", "ANNOTATION"});

112
		assertEquals("Number of TaxonNames should be 10", 10 /*TODO */, nameService.count(null));

113
		List<Classification> treeList = classificationService.list(null, null,null,null,null);

114
		assertEquals("Number of classifications should be 1", 1, treeList.size());

115
		Classification tree = treeList.get(0);

116
		List<TaxonNode> rootNodes = tree.getChildNodes();

117
		assertEquals("Number of root nodes should be 1", 1, rootNodes.size());

118
		TaxonNode rootNode = rootNodes.iterator().next();

119

  
120
//		printDataSet(System.out, new String[]{"ANNOTATION"});

121
		Set<Annotation> annotationSet = rootNode.getTaxon().getAnnotations();

122
		assertTrue("Annotation is set for first Taxon", !annotationSet.isEmpty());

123

  
124
		assertEquals("Root taxon name should be Metazoa", "Metazoa", rootNode.getTaxon().getName().getTitleCache());

125
		TaxonNode secondTaxon = rootNode.getChildNodes().iterator().next();

126

  
127
		Set<Annotation> secondAnnotation = secondTaxon.getTaxon().getAnnotations();

128
		assertTrue("Annotation is empty for second Taxon", secondAnnotation.isEmpty());

129

  
130
		Set<TaxonDescription> taxonSet = secondTaxon.getTaxon().getDescriptions();

131
		assertTrue("Description is not Empty", !taxonSet.isEmpty());

132
		assertEquals("Number of Distributions should be 7", 7, descriptionService.listDescriptionElements(null, null, Distribution.class, null, null, null).size());

133
//		assertEquals("Number of Vernecular Names should be 7", 6, descriptionService.listDescriptionElements(null, null, CommonTaxonName.class, null, null, null).size());

134
		List<DescriptionElementBase> list = descriptionService.listDescriptionElements(null, null, CommonTaxonName.class, null, null, null);

135
		for(DescriptionElementBase db : list){

136
			System.out.println(db.toString());

137
		}

138
		//TODO: write test for Refences Sources

139
		Set<IdentifiableSource> sourcesSet = secondTaxon.getTaxon().getSources();

140
		assertTrue("Sources are set for second Taxon", !sourcesSet.isEmpty());

141
		for(IdentifiableSource s : sourcesSet){

142
			System.out.println("ID: "+ s.getId());

143
			System.out.println("External ID: " +s.getIdInSource());

144
			System.out.println("Namespace: " + s.getIdNamespace());

145
			System.out.println("Reference: " + s.getCitation().toString());

146
		}

147

  
148
		//		assertEquals("Arthropoda node taxon name should be Arthropoda", "Arthropoda", arthropodaNode.getTaxon().getName().getTitleCache());

149
//		TaxonNode insectaNode = arthropodaNode.getChildNodes().iterator().next();

150
//		TaxonNode lepidopteraNode = insectaNode.getChildNodes().iterator().next();

151
//		TaxonNode noctuidaeNode = lepidopteraNode.getChildNodes().iterator().next();

152
//		TaxonNode noctuaNode = noctuidaeNode.getChildNodes().iterator().next();

153
//		assertEquals("Number of child nodes of noctuca should be 2", 2, noctuaNode.getChildNodes().size());

154
//

155
//		Iterator<TaxonNode> it = noctuaNode.getChildNodes().iterator();

156
//		TaxonNode childNode1 = it.next();

157
//		TaxonNode childNode2 = it.next();

158
//

159
//		TaxonNode noctuaPronubaNode;

160
//		if (childNode1.getTaxon().getName().getTitleCache().startsWith("Noctua pronuba")){

161
//			noctuaPronubaNode = childNode1;

162
//		}else{

163
//			noctuaPronubaNode = childNode2;

164
//		}

165
//

166
//		assertEquals("Noctua pronuba taxon name should be ", "Noctua pronuba", noctuaPronubaNode.getTaxon().getName().getTitleCache());

167
//		Taxon noctuaPronubaTaxon = noctuaPronubaNode.getTaxon();

168
//		Set<Synonym> synonyms = noctuaPronubaTaxon.getSynonyms();

169
//		assertEquals("Number of synonyms should be 1", 3 /*TODO*/, synonyms.size());

170
//		Synonym synonym = synonyms.iterator().next();

171
//		assertEquals("Synonym name should be ", "Noctua atlantica", (CdmBase.deproxy(synonym.getName(), NonViralName.class )).getNameCache());

172
//		Set<TaxonDescription> descriptions = noctuaPronubaTaxon.getDescriptions();

173
//		Assert.assertEquals("Number of descriptions should be 1", 1, descriptions.size());

174
//		TaxonDescription taxonDescription = descriptions.iterator().next();

175
//		Set<DescriptionElementBase> elements = taxonDescription.getElements();

176
//		List<CommonTaxonName> commonNames = new ArrayList<CommonTaxonName>();

177
//		for (DescriptionElementBase element : elements){

178
//			if (element.isInstanceOf(CommonTaxonName.class)){

179
//				commonNames.add((CommonTaxonName)element);

180
//			}

181
//		}

182
//		Assert.assertEquals("Number of common names should be 2", 2, commonNames.size());

183
//		Set<String> commonNameStrings = new HashSet<String>();

184
//		commonNameStrings.add(commonNames.get(0).getName());

185
//		commonNameStrings.add(commonNames.get(1).getName());

186
//		Assert.assertTrue("Common names must include Yellow Underwing", commonNameStrings.contains("Large Sunshine Underwing"));

187
//		Assert.assertTrue("Common names must include Yellow Underwing", commonNameStrings.contains("Yellow Underwing"));

188
	}

189

  
190
//	@Test

191
//	@DataSet(value="NormalExplicitImportTest.testUuid.xml")

192
//	public void testUUID() throws URISyntaxException{

193
//		UUID taxonUuid = UUID.fromString("aafce7fe-0c5f-42ed-814b-4c7c2c715660");

194
//		UUID synonymUuid = UUID.fromString("fc4a995b-37a9-4984-afe6-e352c6c04d92");

195
//

196
//

197
//		//test data set

198
//		assertEquals("Number of taxon bases should be 2", 2, taxonService.count(null));

199
//		Taxon taxon = (Taxon)taxonService.find(taxonUuid);

200
//		assertNotNull("Taxon with given uuid should exist", taxon);

201
//		assertEquals("Taxon should have no description", 0, taxon.getDescriptions().size());

202
//		Synonym synonym = (Synonym)taxonService.find(synonymUuid);

203
//		assertNotNull("Synonym with given uuid should exist", synonym);

204
//		assertEquals("Synonym should have 1 accepted taxon", 1, synonym.getAcceptedTaxa().size());

205
//

206
//		//import

207
//		boolean result = defaultImport.invoke(uuidConfigurator);

208
//		//test result

209
//		assertTrue("Return value for import.invoke should be true", result);

210
//		assertEquals("Number of taxon names should be 2", 2, nameService.count(null));

211
//		assertEquals("Number of taxa should be 2", 2, taxonService.count(null));

212
//		taxon = (Taxon)taxonService.find(taxonUuid);

213
//		assertEquals("Taxon should have 1 description", 1, taxon.getDescriptions().size());

214
//		TaxonDescription description = taxon.getDescriptions().iterator().next();

215
//		assertEquals("Number of description elements should be 2", 2, description.getElements().size());

216
//

217
//		String expectedText = "Description for the first taxon";

218
//		TextData textData = getTextElement(description, expectedText);

219
//		assertNotNull("The element should exists", textData);

220
//		Feature feature = textData.getFeature();

221
//		assertEquals("Unexpected feature", Feature.DESCRIPTION(), feature);

222
//		assertEquals("There should be exactly 1 language", 1,textData.getMultilanguageText().size());

223
//		Language language = textData.getMultilanguageText().keySet().iterator().next();

224
//		assertEquals("Language should be German", Language.GERMAN(), language);

225
//		String text = textData.getText(language);

226
//		assertEquals("Unexpected description text", expectedText, text);

227
//		assertEquals("Number of source elements should be 1", 1, textData.getSources().size());

228
//		DescriptionElementSource source = textData.getSources().iterator().next();

229
//		Reference ref = source.getCitation();

230
//		assertNotNull("Citation should not be null", ref);

231
//		assertNotNull("Authorship should not be null", ref.getAuthorship());

232
//		assertEquals("Source author should be 'Meyer et. al.'", "Meyer et. al.",ref.getAuthorship().getTitleCache());

233
//		assertEquals("Publication title should be 'My first book'", "My first book", ref.getTitle());

234
//		assertEquals("Publication year should be '1987'", "1987", ref.getYear());

235
//		TaxonNameBase nameUsedInSource = source.getNameUsedInSource();

236
//		assertNotNull("Name used in source should not be null", nameUsedInSource);

237
//		assertEquals("Name used in source title should be ", "Abies", nameUsedInSource.getTitleCache());

238
//

239
//

240
//		//synonym

241
//		expectedText = "A synonym description";

242
//		textData = getTextElement(description, expectedText);

243
//		assertNotNull("The element should exists", textData);

244
//		feature = textData.getFeature();

245
//		assertEquals("Unexpected feature", Feature.DESCRIPTION(), feature);

246
//		assertEquals("There should be exactly 1 language", 1,textData.getMultilanguageText().size());

247
//		language = textData.getMultilanguageText().keySet().iterator().next();

248
//		assertEquals("Language should be Spanish", Language.SPANISH_CASTILIAN(), language);

249
//		text = textData.getText(language);

250
//		assertEquals("Unexpected description text", expectedText, text);

251
//		assertEquals("Number of source elements should be 1", 1, textData.getSources().size());

252
//		source = textData.getSources().iterator().next();

253
//		ref = source.getCitation();

254
//		assertNotNull("Citation should not be null", ref);

255
//		assertNotNull("Authorship should not be null", ref.getAuthorship());

256
//		assertEquals("Source author should be 'Theys, A.'", "Theys, A.",ref.getAuthorship().getTitleCache());

257
//		assertEquals("Publication title should be 'The ultimate book'", "The ultimate book", ref.getTitle());

258
//		assertEquals("Publication year should be '2011'", "2011", ref.getYear());

259
//		nameUsedInSource = source.getNameUsedInSource();

260
//		assertNotNull("Name used in source should not be null", nameUsedInSource);

261
//		assertEquals("Name used in source title should be Pinus", "Pinus", nameUsedInSource.getTitleCache());

262
//

263
//	}

264

  
265
	/**

266
	 * Returns description element for record id 1

267
	 * @param description

268
	 * @return

269
	 */

270
	private TextData getTextElement(TaxonDescription description, String descriptionText) {

271
		for (DescriptionElementBase element : description.getElements()){

272
			if (element.isInstanceOf(TextData.class)){

273
				TextData textData = CdmBase.deproxy(element, TextData.class);

274
				for (LanguageString ls :textData.getMultilanguageText().values()){

275
					if (ls.getText().equals(descriptionText)){

276
						return textData;

277
					}

278
				}

279
			}

280
		}

281
		return null;

282
	}

283

  
284
    /* (non-Javadoc)

285
     * @see eu.etaxonomy.cdm.test.integration.CdmIntegrationTest#createTestData()

286
     */

287
    @Override

288
    public void createTestDataSet() throws FileNotFoundException {

289
        // TODO Auto-generated method stub

290

  
291
    }

292

  
1
// $Id$
2
/**
3
* Copyright (C) 2007 EDIT
4
* European Distributed Institute of Taxonomy
5
* http://www.e-taxonomy.eu
6
*
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10

  
11
package eu.etaxonomy.cdm.io.excel.stream;
12

  
13
import static org.junit.Assert.assertEquals;
14
import static org.junit.Assert.assertNotNull;
15
import static org.junit.Assert.assertTrue;
16

  
17
import java.io.FileNotFoundException;
18
import java.net.URISyntaxException;
19
import java.net.URL;
20
import java.util.List;
21
import java.util.Set;
22

  
23
import org.apache.log4j.Logger;
24
import org.junit.Before;
25
import org.junit.Test;
26
import org.unitils.dbunit.annotation.DataSet;
27
import org.unitils.spring.annotation.SpringBeanByName;
28
import org.unitils.spring.annotation.SpringBeanByType;
29

  
30
import eu.etaxonomy.cdm.api.service.IClassificationService;
31
import eu.etaxonomy.cdm.api.service.IDescriptionService;
32
import eu.etaxonomy.cdm.api.service.INameService;
33
import eu.etaxonomy.cdm.api.service.ITaxonService;
34
import eu.etaxonomy.cdm.api.service.ITermService;
35
import eu.etaxonomy.cdm.io.common.CdmApplicationAwareDefaultImport;
36
import eu.etaxonomy.cdm.io.common.IImportConfigurator;
37
import eu.etaxonomy.cdm.io.common.events.LoggingIoObserver;
38
import eu.etaxonomy.cdm.model.common.Annotation;
39
import eu.etaxonomy.cdm.model.common.CdmBase;
40
import eu.etaxonomy.cdm.model.common.IdentifiableSource;
41
import eu.etaxonomy.cdm.model.common.LanguageString;
42
import eu.etaxonomy.cdm.model.description.CommonTaxonName;
43
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
44
import eu.etaxonomy.cdm.model.description.Distribution;
45
import eu.etaxonomy.cdm.model.description.TaxonDescription;
46
import eu.etaxonomy.cdm.model.description.TextData;
47
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
48
import eu.etaxonomy.cdm.model.taxon.Classification;
49
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
50
import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;
51

  
52
/**
53
 * @author a.mueller
54
 * @created 24.05.2013
55
 */
56
public class ExcelStreamImportTest extends CdmTransactionalIntegrationTest{
57
	@SuppressWarnings("unused")
58
	private static final Logger logger = Logger.getLogger(ExcelStreamImportTest.class);
59

  
60
	@SpringBeanByName
61
	CdmApplicationAwareDefaultImport defaultImport;
62

  
63
	@SpringBeanByType
64
	INameService nameService;
65

  
66
	@SpringBeanByType
67
	ITaxonService taxonService;
68

  
69
	@SpringBeanByType
70
	ITermService termService;
71

  
72
	@SpringBeanByType
73
	IClassificationService classificationService;
74

  
75
	@SpringBeanByType
76
	IDescriptionService descriptionService;
77

  
78
	private IImportConfigurator configurator;
79
	private IImportConfigurator uuidConfigurator;
80

  
81
	@Before
82
	public void setUp() throws URISyntaxException {
83
		//TODO create own test file
84
		String inputFile = "/eu/etaxonomy/cdm/io/excel/stream/ExcelStreamImport-TestInput.xls";
85
		URL url = this.getClass().getResource(inputFile);
86
	 	assertNotNull("URL for the test file '" + inputFile + "' does not exist", url);
87
		configurator = ExcelStreamImportConfigurator.NewInstance(url.toURI(), null, NomenclaturalCode.ICNAFP, null);
88
		assertNotNull("Configurator could not be created", configurator);
89
		configurator.addObserver(new LoggingIoObserver());
90

  
91
		inputFile = "/eu/etaxonomy/cdm/io/excel/taxa/NormalExplicitImportTest.testUuid-input.xls";
92
		url = this.getClass().getResource(inputFile);
93
	 	assertNotNull("URL for the test file '" + inputFile + "' does not exist", url);
94
		uuidConfigurator = ExcelStreamImportConfigurator.NewInstance(url.toURI(), null, NomenclaturalCode.ICNAFP, null);
95
		assertNotNull("Configurator could not be created", configurator);
96

  
97
	}
98

  
99
	@Test
100
	public void testInit() {
101
		assertNotNull("normalExplicitImport should not be null", defaultImport);
102
		assertNotNull("nameService should not be null", nameService);
103
	}
104

  
105
	@Test
106
	@DataSet
107
	public void testDoInvoke() {
108
//		printDataSet(System.out, new String[]{"ANNOTATION"});
109
		boolean result = defaultImport.invoke(configurator).isSuccess();
110
		assertTrue("Return value for import.invoke should be true", result);
111
		commitAndStartNewTransaction(new String[]{"TAXONNAMEBASE", "ANNOTATION"});
112
		assertEquals("Number of TaxonNames should be 10", 10 /*TODO */, nameService.count(null));
113
		List<Classification> treeList = classificationService.list(null, null,null,null,null);
114
		assertEquals("Number of classifications should be 1", 1, treeList.size());
115
		Classification tree = treeList.get(0);
116
		List<TaxonNode> rootNodes = tree.getChildNodes();
117
		assertEquals("Number of root nodes should be 1", 1, rootNodes.size());
118
		TaxonNode rootNode = rootNodes.iterator().next();
119

  
120
//		printDataSet(System.out, new String[]{"ANNOTATION"});
121
		Set<Annotation> annotationSet = rootNode.getTaxon().getAnnotations();
122
		assertTrue("Annotation is set for first Taxon", !annotationSet.isEmpty());
123

  
124
		assertEquals("Root taxon name should be Metazoa", "Metazoa", rootNode.getTaxon().getName().getTitleCache());
125
		TaxonNode secondTaxon = rootNode.getChildNodes().iterator().next();
126

  
127
		Set<Annotation> secondAnnotation = secondTaxon.getTaxon().getAnnotations();
128
		assertTrue("Annotation is empty for second Taxon", secondAnnotation.isEmpty());
129

  
130
		Set<TaxonDescription> taxonSet = secondTaxon.getTaxon().getDescriptions();
131
		assertTrue("Description is not Empty", !taxonSet.isEmpty());
132
		assertEquals("Number of Distributions should be 7", 7, descriptionService.listDescriptionElements(null, null, Distribution.class, null, null, null).size());
133
//		assertEquals("Number of Vernecular Names should be 7", 6, descriptionService.listDescriptionElements(null, null, CommonTaxonName.class, null, null, null).size());
134
		List<CommonTaxonName> list = descriptionService.listDescriptionElements(null, null, CommonTaxonName.class, null, null, null);
135
		for(DescriptionElementBase db : list){
136
			System.out.println(db.toString());
137
		}
138
		//TODO: write test for Refences Sources
139
		Set<IdentifiableSource> sourcesSet = secondTaxon.getTaxon().getSources();
140
		assertTrue("Sources are set for second Taxon", !sourcesSet.isEmpty());
141
		for(IdentifiableSource s : sourcesSet){
142
			System.out.println("ID: "+ s.getId());
143
			System.out.println("External ID: " +s.getIdInSource());
144
			System.out.println("Namespace: " + s.getIdNamespace());
145
			System.out.println("Reference: " + s.getCitation().toString());
146
		}
147

  
148
		//		assertEquals("Arthropoda node taxon name should be Arthropoda", "Arthropoda", arthropodaNode.getTaxon().getName().getTitleCache());
149
//		TaxonNode insectaNode = arthropodaNode.getChildNodes().iterator().next();
150
//		TaxonNode lepidopteraNode = insectaNode.getChildNodes().iterator().next();
151
//		TaxonNode noctuidaeNode = lepidopteraNode.getChildNodes().iterator().next();
152
//		TaxonNode noctuaNode = noctuidaeNode.getChildNodes().iterator().next();
153
//		assertEquals("Number of child nodes of noctuca should be 2", 2, noctuaNode.getChildNodes().size());
154
//
155
//		Iterator<TaxonNode> it = noctuaNode.getChildNodes().iterator();
156
//		TaxonNode childNode1 = it.next();
157
//		TaxonNode childNode2 = it.next();
158
//
159
//		TaxonNode noctuaPronubaNode;
160
//		if (childNode1.getTaxon().getName().getTitleCache().startsWith("Noctua pronuba")){
161
//			noctuaPronubaNode = childNode1;
162
//		}else{
163
//			noctuaPronubaNode = childNode2;
164
//		}
165
//
166
//		assertEquals("Noctua pronuba taxon name should be ", "Noctua pronuba", noctuaPronubaNode.getTaxon().getName().getTitleCache());
167
//		Taxon noctuaPronubaTaxon = noctuaPronubaNode.getTaxon();
168
//		Set<Synonym> synonyms = noctuaPronubaTaxon.getSynonyms();
169
//		assertEquals("Number of synonyms should be 1", 3 /*TODO*/, synonyms.size());
170
//		Synonym synonym = synonyms.iterator().next();
171
//		assertEquals("Synonym name should be ", "Noctua atlantica", (CdmBase.deproxy(synonym.getName(), NonViralName.class )).getNameCache());
172
//		Set<TaxonDescription> descriptions = noctuaPronubaTaxon.getDescriptions();
173
//		Assert.assertEquals("Number of descriptions should be 1", 1, descriptions.size());
174
//		TaxonDescription taxonDescription = descriptions.iterator().next();
175
//		Set<DescriptionElementBase> elements = taxonDescription.getElements();
176
//		List<CommonTaxonName> commonNames = new ArrayList<CommonTaxonName>();
177
//		for (DescriptionElementBase element : elements){
178
//			if (element.isInstanceOf(CommonTaxonName.class)){
179
//				commonNames.add((CommonTaxonName)element);
180
//			}
181
//		}
182
//		Assert.assertEquals("Number of common names should be 2", 2, commonNames.size());
183
//		Set<String> commonNameStrings = new HashSet<String>();
184
//		commonNameStrings.add(commonNames.get(0).getName());
185
//		commonNameStrings.add(commonNames.get(1).getName());
186
//		Assert.assertTrue("Common names must include Yellow Underwing", commonNameStrings.contains("Large Sunshine Underwing"));
187
//		Assert.assertTrue("Common names must include Yellow Underwing", commonNameStrings.contains("Yellow Underwing"));
188
	}
189

  
190
//	@Test
191
//	@DataSet(value="NormalExplicitImportTest.testUuid.xml")
192
//	public void testUUID() throws URISyntaxException{
193
//		UUID taxonUuid = UUID.fromString("aafce7fe-0c5f-42ed-814b-4c7c2c715660");
194
//		UUID synonymUuid = UUID.fromString("fc4a995b-37a9-4984-afe6-e352c6c04d92");
195
//
196
//
197
//		//test data set
198
//		assertEquals("Number of taxon bases should be 2", 2, taxonService.count(null));
199
//		Taxon taxon = (Taxon)taxonService.find(taxonUuid);
200
//		assertNotNull("Taxon with given uuid should exist", taxon);
201
//		assertEquals("Taxon should have no description", 0, taxon.getDescriptions().size());
202
//		Synonym synonym = (Synonym)taxonService.find(synonymUuid);
203
//		assertNotNull("Synonym with given uuid should exist", synonym);
204
//		assertEquals("Synonym should have 1 accepted taxon", 1, synonym.getAcceptedTaxa().size());
205
//
206
//		//import
207
//		boolean result = defaultImport.invoke(uuidConfigurator);
208
//		//test result
209
//		assertTrue("Return value for import.invoke should be true", result);
210
//		assertEquals("Number of taxon names should be 2", 2, nameService.count(null));
211
//		assertEquals("Number of taxa should be 2", 2, taxonService.count(null));
212
//		taxon = (Taxon)taxonService.find(taxonUuid);
213
//		assertEquals("Taxon should have 1 description", 1, taxon.getDescriptions().size());
214
//		TaxonDescription description = taxon.getDescriptions().iterator().next();
215
//		assertEquals("Number of description elements should be 2", 2, description.getElements().size());
216
//
217
//		String expectedText = "Description for the first taxon";
218
//		TextData textData = getTextElement(description, expectedText);
219
//		assertNotNull("The element should exists", textData);
220
//		Feature feature = textData.getFeature();
221
//		assertEquals("Unexpected feature", Feature.DESCRIPTION(), feature);
222
//		assertEquals("There should be exactly 1 language", 1,textData.getMultilanguageText().size());
223
//		Language language = textData.getMultilanguageText().keySet().iterator().next();
224
//		assertEquals("Language should be German", Language.GERMAN(), language);
225
//		String text = textData.getText(language);
226
//		assertEquals("Unexpected description text", expectedText, text);
227
//		assertEquals("Number of source elements should be 1", 1, textData.getSources().size());
228
//		DescriptionElementSource source = textData.getSources().iterator().next();
229
//		Reference ref = source.getCitation();
230
//		assertNotNull("Citation should not be null", ref);
231
//		assertNotNull("Authorship should not be null", ref.getAuthorship());
232
//		assertEquals("Source author should be 'Meyer et. al.'", "Meyer et. al.",ref.getAuthorship().getTitleCache());
233
//		assertEquals("Publication title should be 'My first book'", "My first book", ref.getTitle());
234
//		assertEquals("Publication year should be '1987'", "1987", ref.getYear());
235
//		TaxonNameBase nameUsedInSource = source.getNameUsedInSource();
236
//		assertNotNull("Name used in source should not be null", nameUsedInSource);
237
//		assertEquals("Name used in source title should be ", "Abies", nameUsedInSource.getTitleCache());
238
//
239
//
240
//		//synonym
241
//		expectedText = "A synonym description";
242
//		textData = getTextElement(description, expectedText);
243
//		assertNotNull("The element should exists", textData);
244
//		feature = textData.getFeature();
245
//		assertEquals("Unexpected feature", Feature.DESCRIPTION(), feature);
246
//		assertEquals("There should be exactly 1 language", 1,textData.getMultilanguageText().size());
247
//		language = textData.getMultilanguageText().keySet().iterator().next();
248
//		assertEquals("Language should be Spanish", Language.SPANISH_CASTILIAN(), language);
249
//		text = textData.getText(language);
250
//		assertEquals("Unexpected description text", expectedText, text);
251
//		assertEquals("Number of source elements should be 1", 1, textData.getSources().size());
252
//		source = textData.getSources().iterator().next();
253
//		ref = source.getCitation();
254
//		assertNotNull("Citation should not be null", ref);
255
//		assertNotNull("Authorship should not be null", ref.getAuthorship());
256
//		assertEquals("Source author should be 'Theys, A.'", "Theys, A.",ref.getAuthorship().getTitleCache());
257
//		assertEquals("Publication title should be 'The ultimate book'", "The ultimate book", ref.getTitle());
258
//		assertEquals("Publication year should be '2011'", "2011", ref.getYear());
259
//		nameUsedInSource = source.getNameUsedInSource();
260
//		assertNotNull("Name used in source should not be null", nameUsedInSource);
261
//		assertEquals("Name used in source title should be Pinus", "Pinus", nameUsedInSource.getTitleCache());
262
//
263
//	}
264

  
265
	/**
266
	 * Returns description element for record id 1
267
	 * @param description
268
	 * @return
269
	 */
270
	private TextData getTextElement(TaxonDescription description, String descriptionText) {
271
		for (DescriptionElementBase element : description.getElements()){
272
			if (element.isInstanceOf(TextData.class)){
273
				TextData textData = CdmBase.deproxy(element, TextData.class);
274
				for (LanguageString ls :textData.getMultilanguageText().values()){
275
					if (ls.getText().equals(descriptionText)){
276
						return textData;
277
					}
278
				}
279
			}
280
		}
281
		return null;
282
	}
283

  
284
    /* (non-Javadoc)
285
     * @see eu.etaxonomy.cdm.test.integration.CdmIntegrationTest#createTestData()
286
     */
287
    @Override
288
    public void createTestDataSet() throws FileNotFoundException {
289
        // TODO Auto-generated method stub
290

  
291
    }
292

  
293 293
}

Also available in: Unified diff