Skip to content

Commit

Permalink
refs #47
Browse files Browse the repository at this point in the history
dataset exporter xml tests
  • Loading branch information
rmpestano committed Sep 11, 2016
1 parent 827041d commit b36d86c
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import org.dbunit.dataset.filter.ITableFilter;
import org.dbunit.dataset.xml.FlatXmlDataSet;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
Expand Down Expand Up @@ -112,12 +113,17 @@ public OutputStream export(Connection connection, DataSetExportConfig dataSetExp
filter = new DatabaseSequenceFilter(dbunitConnection);
}
if (queryDataSet != null) {
dataset = new FilteredDataSet(filter, queryDataSet);
dataset = queryDataSet;
} else {
dataset = new FilteredDataSet(filter, dbunitConnection.createDataSet());
}
FileOutputStream fos = null;
try {
if(outputFile.contains(System.getProperty("file.separator"))){
String pathWithoutFileName = outputFile.substring(0,outputFile.lastIndexOf(System.getProperty("file.separator"))+1);
new File(pathWithoutFileName).mkdirs();

}
fos = new FileOutputStream(outputFile);
switch (dataSetExportConfig.getDataSetFormat()) {
case XML: {
Expand Down
62 changes: 57 additions & 5 deletions core/src/test/java/com/github/dbunit/rules/ExportDataSetIt.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,33 @@ public class ExportDataSetIt {

@Test
@DataSet("datasets/yml/user.yml")
@ExportDataSet(format = DataSetFormat.XML,outputName="target/exported.xml")
@ExportDataSet(format = DataSetFormat.XML,outputName="target/exported/generated.xml")
public void shouldExportDataSetAfterTestExecution() {
}

@Test
@DataSet("datasets/yml/user.yml")
@ExportDataSet(format = DataSetFormat.XML, queryList = {"select * from USER u where u.ID = 1"}, outputName="target/exported/filtered.xml")
public void shouldExportDataSetUsingQueryToFilterRows() {

}

@Test
@DataSet("datasets/yml/user.yml")
@ExportDataSet(format = DataSetFormat.XML, includeTables = "USER", outputName="target/exported/includes.xml")
public void shouldExportDataSetUsingIncludes() {

}

@Test
@DataSet("datasets/yml/user.yml")
@ExportDataSet(format = DataSetFormat.XML, includeTables = "USER", dependentTables = true, outputName="target/exported/dependentTables.xml")
public void shouldExportDataSetUsingIncludesWithDependentTables() {

}

/**
* full dataset
* <?xml version='1.0' encoding='UTF-8'?>
<dataset>
<USER ID="1" NAME="@realpestano"/>
Expand All @@ -47,9 +68,40 @@ public void shouldExportDataSetAfterTestExecution() {
*/
@AfterClass
public static void assertGeneratedDataSets(){
File xmlDataSet = new File("target/exported.xml");
assertThat(xmlDataSet).exists();
assertThat(contentOf(xmlDataSet)).contains("<USER ID=\"1\" NAME=\"@realpestano\"/>");
assertThat(contentOf(xmlDataSet)).contains("<USER ID=\"2\" NAME=\"@dbunit\"/>");
File generatedXmlDataSet = new File("target/exported/generated.xml");
assertThat(generatedXmlDataSet).exists();
assertThat(contentOf(generatedXmlDataSet)).contains("<USER ID=\"1\" NAME=\"@realpestano\"/>");
assertThat(contentOf(generatedXmlDataSet)).contains("<TWEET/>");
assertThat(contentOf(generatedXmlDataSet)).contains("<USER ID=\"2\" NAME=\"@dbunit\"/>");
assertThat(contentOf(generatedXmlDataSet)).contains("<FOLLOWER/>");

generatedXmlDataSet.delete();

File filterdXmlDataSet = new File("target/exported/filtered.xml");
assertThat(filterdXmlDataSet).exists();
assertThat(contentOf(filterdXmlDataSet)).contains("<USER ID=\"1\" NAME=\"@realpestano\"/>");
assertThat(contentOf(filterdXmlDataSet)).doesNotContain("<USER ID=\"2\" NAME=\"@dbunit\"/>");
assertThat(contentOf(filterdXmlDataSet)).doesNotContain("<TWEET/>");
assertThat(contentOf(filterdXmlDataSet)).doesNotContain("<FOLLOWER/>");
filterdXmlDataSet.delete();

File includesXmlDataSet = new File("target/exported/includes.xml");
assertThat(includesXmlDataSet).exists();
assertThat(contentOf(includesXmlDataSet)).contains("<USER ID=\"1\" NAME=\"@realpestano\"/>");
assertThat(contentOf(includesXmlDataSet)).contains("<USER ID=\"2\" NAME=\"@dbunit\"/>");
assertThat(contentOf(includesXmlDataSet)).doesNotContain("<TWEET/>");
assertThat(contentOf(includesXmlDataSet)).doesNotContain("<FOLLOWER/>");
includesXmlDataSet.delete();

File dependentTablesXmlDataSet = new File("target/exported/dependentTables.xml");
assertThat(dependentTablesXmlDataSet).exists();
assertThat(contentOf(dependentTablesXmlDataSet)).contains("<USER ID=\"1\" NAME=\"@realpestano\"/>");
assertThat(contentOf(dependentTablesXmlDataSet)).contains("<USER ID=\"2\" NAME=\"@dbunit\"/>");
assertThat(contentOf(dependentTablesXmlDataSet)).contains("<TWEET/>");
assertThat(contentOf(dependentTablesXmlDataSet)).contains("<FOLLOWER/>");
assertThat(contentOf(dependentTablesXmlDataSet)).contains("<FOLLOWER/>");

dependentTablesXmlDataSet.delete();

}
}

0 comments on commit b36d86c

Please sign in to comment.