package org.nextprot.api.commons.dbunit;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import org.dbunit.database.DatabaseConnection;
import org.dbunit.database.IDatabaseConnection;
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.xml.FlatDtdWriter;
import org.junit.Ignore;
import org.junit.Test;
import org.nextprot.api.commons.spring.jdbc.DataSourceServiceLocator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ActiveProfiles;
@Ignore
@ActiveProfiles({"unit", "unit-schema-nextprot"})
public class GenerateDTD extends CommonsUnitBaseTest {
private static final String dtdFile = "nextprot.dtd";
@Autowired DataSourceServiceLocator dsLocator;
@Test
public void generateDTD() throws Exception {
IDatabaseConnection connection = new DatabaseConnection(dsLocator.getDataSource().getConnection());
// write DTD file
IDataSet dataSet = connection.createDataSet();
Writer out = new OutputStreamWriter(new FileOutputStream(dtdFile));
FlatDtdWriter datasetWriter = new FlatDtdWriter(out);
datasetWriter.setContentModel(FlatDtdWriter.CHOICE);
// You could also use the sequence model which is the default
// datasetWriter.setContentModel(FlatDtdWriter.SEQUENCE);
datasetWriter.write(dataSet);
//delete file after the test
new File(dtdFile).delete();
}
@Test
public void generateUserDTD() throws Exception {
IDatabaseConnection connection = new DatabaseConnection(dsLocator.getUserDataSource().getConnection());
// write DTD file
IDataSet dataSet = connection.createDataSet();
Writer out = new OutputStreamWriter(new FileOutputStream("user.dtd"));
FlatDtdWriter datasetWriter = new FlatDtdWriter(out);
datasetWriter.setContentModel(FlatDtdWriter.CHOICE);
// You could also use the sequence model which is the default
// datasetWriter.setContentModel(FlatDtdWriter.SEQUENCE);
datasetWriter.write(dataSet);
//delete file after the test
new File(dtdFile).delete();
}
}