1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.dbunit.dataset;
23
24 import static org.junit.jupiter.api.Assertions.fail;
25
26 import java.io.OutputStream;
27 import java.nio.file.Files;
28 import java.nio.file.Paths;
29
30 import org.dbunit.AbstractDatabaseIT;
31 import org.dbunit.DdlExecutor;
32 import org.dbunit.database.QueryDataSet;
33 import org.dbunit.dataset.datatype.DataType;
34 import org.dbunit.dataset.xml.FlatXmlDataSet;
35 import org.dbunit.testutil.TestUtils;
36 import org.junit.jupiter.api.AfterEach;
37 import org.junit.jupiter.api.BeforeEach;
38 import org.junit.jupiter.api.Test;
39
40
41
42
43
44
45
46
47 class CompositeDataSetIterationIT extends AbstractDatabaseIT
48 {
49
50 private final String sqlFile = "hypersonic_simple_dataset.sql";
51
52 @BeforeEach
53 protected void setUpTables() throws Exception
54 {
55 DdlExecutor.dropTables(_connection.getConnection(), "A", "B", "C");
56 DdlExecutor.executeDdlFile(TestUtils.getFile("sql/" + sqlFile),
57 _connection.getConnection(), false);
58 }
59
60 @AfterEach
61 protected void tearDownTables() throws Exception
62 {
63 DdlExecutor.dropTables(_connection.getConnection(), "A", "B", "C");
64 refreshConnection();
65 }
66
67
68
69
70
71
72
73
74 private void refreshConnection() throws Exception
75 {
76 _connection.close();
77 _connection = getDatabaseTester().getConnection();
78 setUpDatabaseConfig(_connection.getConfig());
79 }
80
81 @Test
82 void testCompositeIteration_withQueryAndDefaultDataSets_writesAllTablesToFile() throws Exception
83 {
84
85
86 final QueryDataSet queryDataSet = new QueryDataSet(_connection);
87 queryDataSet.addTable("B", "select * from B");
88 queryDataSet.addTable("C", "select * from C");
89
90
91 final DefaultDataSet plainDataSet = new DefaultDataSet();
92
93 final Column id = new Column("id", DataType.DOUBLE);
94 final Column name = new Column("name", DataType.VARCHAR);
95
96 final Column[] cols = {id, name};
97
98 final DefaultTable aTable = new DefaultTable("D", cols);
99 final Object[] row1 = {Long.valueOf(1), "D1"};
100 final Object[] row2 = {Long.valueOf(2), "D2"};
101
102 aTable.addRow(row1);
103 aTable.addRow(row2);
104
105 plainDataSet.addTable(aTable);
106
107
108 final CompositeDataSet compositeDataSet =
109 new CompositeDataSet(queryDataSet, plainDataSet);
110
111
112 try (OutputStream out = Files.newOutputStream(Paths.get("target/full.xml")))
113 {
114 FlatXmlDataSet.write(compositeDataSet, out);
115 }
116 catch (final Exception e)
117 {
118 fail(e.getMessage());
119 }
120 }
121 }