Project

General

Profile

Download (6.28 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2009 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.sdd.in;
10

    
11
import static org.junit.Assert.assertEquals;
12
import static org.junit.Assert.assertNotNull;
13

    
14
import java.io.File;
15
import java.io.FileNotFoundException;
16
import java.net.MalformedURLException;
17
import java.net.URI;
18
import java.net.URISyntaxException;
19
import java.net.URL;
20
import java.sql.SQLException;
21

    
22
import org.apache.log4j.Level;
23
import org.junit.Assert;
24
import org.junit.Before;
25
import org.junit.Ignore;
26
import org.junit.Test;
27
import org.unitils.spring.annotation.SpringBeanByType;
28

    
29
import eu.etaxonomy.cdm.api.service.IClassificationService;
30
import eu.etaxonomy.cdm.api.service.INameService;
31
import eu.etaxonomy.cdm.api.service.ITaxonService;
32
import eu.etaxonomy.cdm.common.CdmUtils;
33
import eu.etaxonomy.cdm.database.CdmDataSource;
34
import eu.etaxonomy.cdm.database.CdmPersistentDataSource;
35
import eu.etaxonomy.cdm.database.DataSourceNotFoundException;
36
import eu.etaxonomy.cdm.database.ICdmDataSource;
37
import eu.etaxonomy.cdm.io.common.IExportConfigurator;
38
import eu.etaxonomy.cdm.io.sdd.out.SDDCdmExporter;
39
import eu.etaxonomy.cdm.io.sdd.out.SDDExportConfigurator;
40
import eu.etaxonomy.cdm.io.sdd.out.SDDExportState;
41
import eu.etaxonomy.cdm.model.taxon.Classification;
42
import eu.etaxonomy.cdm.model.taxon.Taxon;
43
import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;
44

    
45
/**
46
 * @author l.morris
47
 \* @since 14 Nov 2012
48
 *
49
 */
50
public class SDDImportExportTest extends CdmTransactionalIntegrationTest {
51

    
52
    @SpringBeanByType
53
    SDDImport sddImport;
54

    
55
    private SDDImportConfigurator importConfigurator;
56

    
57
    @SpringBeanByType
58
    SDDCdmExporter sddCdmExporter;
59

    
60
    @SpringBeanByType
61
    INameService nameService;
62

    
63
    @SpringBeanByType
64
    ITaxonService taxonService;
65

    
66
    @SpringBeanByType
67
    IClassificationService classificationService;
68

    
69
    private IExportConfigurator exportConfigurator;
70

    
71
    @Before
72
    @Ignore
73
    //calling before testInit testDoInvoke. db stuff into devlopeACustomDatabase
74
    //setDefaultRollback
75
    public void setUp() throws URISyntaxException, MalformedURLException {
76
        // input data
77
        //URL url = this.getClass().getResource("/eu/etaxonomy/cdm/io/sdd/SDDImportTest-input3.xml");
78
        URL url = this.getClass().getResource("/eu/etaxonomy/cdm/io/sdd/ant.sdd.xml");
79
        URI uri = url.toURI();
80

    
81
        // export data
82
        String exporturlStr = "SDDImportExportTest.sdd.xml";
83
        File f = new File(exporturlStr);
84
        exporturlStr = f.toURI().toURL().toString();
85
        logger.debug("The exporturlStr is " + exporturlStr);
86

    
87
        // URI.create("file:///C:/localCopy/Data/xper/Cichorieae-DA2.sdd.xml");
88

    
89
        Assert.assertNotNull(url);
90

    
91
        ICdmDataSource loadedDataSource = null;
92

    
93
        /*
94
         * enable below line if you wish to use a custom data source
95
         */
96
        //loadedDataSource = customDataSource();
97

    
98
        importConfigurator = SDDImportConfigurator.NewInstance(uri, loadedDataSource);
99
        exportConfigurator = SDDExportConfigurator.NewInstance(loadedDataSource, exporturlStr);
100

    
101
    }
102

    
103

    
104
    @Test
105
    @Ignore
106
    public void testDoInvoke() {
107

    
108
        assertNotNull("sddImport should not be null", sddImport);
109
        assertNotNull("sddCdmExporter should not be null", sddCdmExporter);
110

    
111
        setDefaultRollback(false);
112

    
113
        //printDataSet(System.err, new String[]{"DEFINEDTERMBASE"});
114

    
115
        sddImport.doInvoke(new SDDImportState(importConfigurator));
116

    
117
        logger.setLevel(Level.DEBUG);
118
        commitAndStartNewTransaction(new String[]{"DEFINEDTERMBASE"});
119
        logger.setLevel(Level.DEBUG);
120

    
121
        logger.debug("Name count: " + (nameService.count(null)));
122
        logger.debug("Classification count: " + (classificationService.count(Classification.class)));
123
        logger.debug("Taxon count: " + (taxonService.count(Taxon.class)));
124

    
125
        //sddCdmExporter.doInvoke(null);
126
        sddCdmExporter.doInvoke(new SDDExportState((SDDExportConfigurator) exportConfigurator));
127
        assertEquals("Number of TaxonNames should be 1", 1, nameService.count(null));
128
    }
129

    
130
    /**
131
     * @param loadedDataSource
132
     * @return
133
     */
134
    private ICdmDataSource customDataSource() {
135

    
136
         CdmPersistentDataSource loadedDataSource = null;
137
        //ICdmDataSource dataSource = CdmDataSource.NewMySqlInstance("192.168.2.10", "cdm_test_niels2", 3306, "edit", password, code);
138
        String dataSourceName = "cdm_test2";
139
        String password = CdmUtils.readInputLine("Password: ");
140
        ICdmDataSource dataSource = CdmDataSource.NewMySqlInstance("127.0.0.1", "cdm_test2", 3306, "ljm", password);
141
        //ICdmDataSource dataSource = CdmDataSource.NewMySqlInstance("160.45.63.201", "cdm_test", 3306, "edit", password);
142
        boolean connectionAvailable;
143
        try {
144
            connectionAvailable = dataSource.testConnection();
145
            logger.debug("Is connection avaiable " + connectionAvailable);
146
            Assert.assertTrue("Testdatabase is not available", connectionAvailable);
147

    
148
        } catch (ClassNotFoundException e1) {
149
            e1.printStackTrace();
150
        } catch (SQLException e1) {
151
            e1.printStackTrace();
152
        }
153

    
154
        CdmPersistentDataSource.save(dataSourceName, dataSource);
155
        try {
156
            loadedDataSource = CdmPersistentDataSource.NewInstance(dataSourceName);
157
//			CdmApplicationController.NewInstance(loadedDataSource, DbSchemaValidation.CREATE);
158
//            NomenclaturalCode loadedCode = loadedDataSource.getNomenclaturalCode();
159
//
160
//            Assert.assertEquals(NomenclaturalCode.ICNAFP, loadedCode);
161
        } catch (DataSourceNotFoundException e) {
162
            // TODO Auto-generated catch block
163
            e.printStackTrace();
164
        }
165
        //return loadedDataSource;
166
        return dataSource;
167
    }
168

    
169

    
170
    /* (non-Javadoc)
171
     * @see eu.etaxonomy.cdm.test.integration.CdmIntegrationTest#createTestData()
172
     */
173
    @Override
174
    public void createTestDataSet() throws FileNotFoundException {
175
        // TODO Auto-generated method stub
176

    
177
    }
178
}
(4-4/5)