cleanup
[cdmlib.git] / cdmlib-io / src / test / java / eu / etaxonomy / cdm / io / owl / out / OwlExportTest.java
1 /**
2 * Copyright (C) 2017 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 package eu.etaxonomy.cdm.io.owl.out;
10
11 import java.io.File;
12 import java.io.FileNotFoundException;
13 import java.net.URI;
14 import java.util.Collections;
15 import java.util.List;
16 import java.util.UUID;
17
18 import org.apache.log4j.Logger;
19 import org.junit.Test;
20 import org.unitils.dbunit.annotation.DataSet;
21 import org.unitils.spring.annotation.SpringBeanByName;
22 import org.unitils.spring.annotation.SpringBeanByType;
23
24 import eu.etaxonomy.cdm.api.service.IClassificationService;
25 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
26 import eu.etaxonomy.cdm.api.service.ITermTreeService;
27 import eu.etaxonomy.cdm.common.URI;
28 import eu.etaxonomy.cdm.io.common.CdmApplicationAwareDefaultExport;
29 import eu.etaxonomy.cdm.io.common.ExportDataWrapper;
30 import eu.etaxonomy.cdm.io.common.ExportResult;
31 import eu.etaxonomy.cdm.io.common.IExportConfigurator.TARGET;
32 import eu.etaxonomy.cdm.io.descriptive.owl.out.StructureTreeOwlExportConfigurator;
33 import eu.etaxonomy.cdm.model.common.CdmBase;
34 import eu.etaxonomy.cdm.model.description.Feature;
35 import eu.etaxonomy.cdm.model.term.TermNode;
36 import eu.etaxonomy.cdm.model.term.TermTree;
37 import eu.etaxonomy.cdm.model.term.TermType;
38 import eu.etaxonomy.cdm.model.term.TermVocabulary;
39 import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;
40 import eu.etaxonomy.cdm.test.unitils.CleanSweepInsertLoadStrategy;
41
42 /**
43 * @author a.mueller
44 * @since 25.06.2017
45 */
46 public class OwlExportTest extends CdmTransactionalIntegrationTest{
47 @SuppressWarnings("unused")
48 private static final Logger logger = Logger.getLogger(OwlExportTest.class);
49
50 @SpringBeanByName
51 private CdmApplicationAwareDefaultExport<StructureTreeOwlExportConfigurator> defaultExport;
52
53 @SpringBeanByType
54 private IClassificationService classificationService;
55
56 @SpringBeanByType
57 private ITermTreeService termTreeService;
58
59 @SpringBeanByType
60 private ITaxonNodeService taxonNodeService;
61
62
63 @Test
64 @DataSet(loadStrategy=CleanSweepInsertLoadStrategy.class, value="/eu/etaxonomy/cdm/database/ClearDBDataSet.xml")
65 public void testEmptyData(){
66 File destinationFolder = null;
67 StructureTreeOwlExportConfigurator config = StructureTreeOwlExportConfigurator.NewInstance();
68 config.setFeatureTreeUuids(createFeatureTree());
69 config.setVocabularyUuids(Collections.EMPTY_LIST);
70 config.setDestination(destinationFolder);
71 config.setTarget(TARGET.EXPORT_DATA);
72 ExportResult result = defaultExport.invoke(config);
73 System.out.println(result.createReport());
74 ExportDataWrapper<?> exportData = result.getExportData();
75 }
76
77 public List<UUID> createFeatureTree() {
78 TermTree<Feature> tree = TermTree.NewFeatureInstance();
79 TermVocabulary<Feature> voc = TermVocabulary.NewInstance(TermType.Feature, Feature.class,
80 "voc description", "vocabulary", "voc", URI.create("http://test.voc"));
81
82 Feature featureA = Feature.NewInstance("A", "A", "A");
83 voc.addTerm(featureA);
84 TermNode<Feature> nodeA = tree.getRoot().addChild(featureA);
85
86 Feature featureA1 = Feature.NewInstance("A1", "A1", "A1");
87 voc.addTerm(featureA1);
88 TermNode<Feature> nodeA1 = nodeA.addChild(featureA1);
89
90 Feature featureA2 = Feature.NewInstance("A2", "A2", "A2");
91 voc.addTerm(featureA2);
92 TermNode<Feature> nodeA2 = nodeA.addChild(featureA2);
93
94 Feature featureB = Feature.NewInstance("B", "B", "B");
95 voc.addTerm(featureB);
96 TermNode<Feature> nodeB = tree.getRoot().addChild(featureB);
97
98 Feature featureB1 = Feature.NewInstance("B", "B1", "B1");
99 voc.addTerm(featureB1);
100 TermNode<Feature> nodeB1 = nodeB.addChild(featureB1);
101
102 Feature featureC = Feature.NewInstance("C", "C", "C");
103 voc.addTerm(featureC);
104 TermNode<Feature> nodeC = tree.getRoot().addChild(featureC);
105
106 termTreeService.save(tree);
107 return Collections.singletonList(tree.getUuid());
108 }
109
110 @Override
111 public void createTestDataSet() throws FileNotFoundException {
112 // try {
113 // writeDbUnitDataSetFile(new String[] {
114 // "Classification",
115 // }, "testAttachDnaSampleToDerivedUnit");
116 // } catch (FileNotFoundException e) {
117 // e.printStackTrace();
118 // }
119 }
120
121
122 private void setUuid(CdmBase cdmBase, String uuidStr) {
123 cdmBase.setUuid(UUID.fromString(uuidStr));
124 }
125
126 }