1 package org.dbunit.dataset.xml;
2
3 import junit.framework.TestCase;
4 import org.dbunit.dataset.Column;
5 import org.dbunit.dataset.DefaultDataSet;
6 import org.dbunit.dataset.DefaultTable;
7 import org.dbunit.dataset.datatype.DataType;
8
9 import java.io.StringWriter;
10
11
12
13
14
15
16
17 public class FlatDtdWriterTest extends TestCase
18 {
19 public void testWriteSequenceModel() throws Exception
20 {
21 String expectedOutput =
22 "<!ELEMENT dataset (\n" +
23 " TABLE1*,\n" +
24 " TABLE2*)>\n" +
25 "\n" +
26 "<!ELEMENT TABLE1 EMPTY>\n" +
27 "<!ATTLIST TABLE1\n" +
28 " COL0 CDATA #IMPLIED\n" +
29 " COL1 CDATA #IMPLIED\n" +
30 " COL2 CDATA #REQUIRED\n" +
31 ">\n" +
32 "\n" +
33 "<!ELEMENT TABLE2 EMPTY>\n" +
34 "<!ATTLIST TABLE2\n" +
35 " COL0 CDATA #IMPLIED\n" +
36 " COL1 CDATA #IMPLIED\n" +
37 " COL2 CDATA #REQUIRED\n" +
38 ">\n" +
39 "\n";
40
41 Column[] columns = new Column[]{
42 new Column("COL0", DataType.UNKNOWN, Column.NULLABLE),
43 new Column("COL1", DataType.UNKNOWN, Column.NULLABLE_UNKNOWN),
44 new Column("COL2", DataType.UNKNOWN, Column.NO_NULLS),
45 };
46
47 DefaultTable table1 = new DefaultTable("TABLE1", columns);
48 DefaultTable table2 = new DefaultTable("TABLE2", columns);
49
50 StringWriter stringWriter = new StringWriter();
51 FlatDtdWriter dtdWriter = new FlatDtdWriter(stringWriter);
52 dtdWriter.write(new DefaultDataSet(table1, table2));
53
54 String actualOutput = stringWriter.toString();
55 assertEquals("output", expectedOutput, actualOutput);
56 }
57
58 public void testWriteChoiceModel() throws Exception
59 {
60 String expectedOutput =
61 "<!ELEMENT dataset (\n" +
62 " (TABLE1|\n" +
63 " TABLE2)*)>\n" +
64 "\n" +
65 "<!ELEMENT TABLE1 EMPTY>\n" +
66 "<!ATTLIST TABLE1\n" +
67 " COL0 CDATA #IMPLIED\n" +
68 " COL1 CDATA #IMPLIED\n" +
69 " COL2 CDATA #REQUIRED\n" +
70 ">\n" +
71 "\n" +
72 "<!ELEMENT TABLE2 EMPTY>\n" +
73 "<!ATTLIST TABLE2\n" +
74 " COL0 CDATA #IMPLIED\n" +
75 " COL1 CDATA #IMPLIED\n" +
76 " COL2 CDATA #REQUIRED\n" +
77 ">\n" +
78 "\n";
79
80 Column[] columns = new Column[]{
81 new Column("COL0", DataType.UNKNOWN, Column.NULLABLE),
82 new Column("COL1", DataType.UNKNOWN, Column.NULLABLE_UNKNOWN),
83 new Column("COL2", DataType.UNKNOWN, Column.NO_NULLS),
84 };
85
86 DefaultTable table1 = new DefaultTable("TABLE1", columns);
87 DefaultTable table2 = new DefaultTable("TABLE2", columns);
88
89 StringWriter stringWriter = new StringWriter();
90 FlatDtdWriter dtdWriter = new FlatDtdWriter(stringWriter);
91 dtdWriter.setContentModel(FlatDtdWriter.CHOICE);
92 dtdWriter.write(new DefaultDataSet(table1, table2));
93
94 String actualOutput = stringWriter.toString();
95 assertEquals("output", expectedOutput, actualOutput);
96 }
97
98
99 public void testWriteChoiceModel_NoInputColumns() throws Exception
100 {
101 String expectedOutput =
102 "<!ELEMENT dataset (\n" +
103 " (TABLE1|\n" +
104 " TABLE2)*)>\n" +
105 "\n" +
106 "<!ELEMENT TABLE1 EMPTY>\n" +
107 "<!ATTLIST TABLE1\n" +
108 ">\n" +
109 "\n" +
110 "<!ELEMENT TABLE2 EMPTY>\n" +
111 "<!ATTLIST TABLE2\n" +
112 ">\n" +
113 "\n";
114
115 Column[] columns = new Column[0];
116
117 DefaultTable table1 = new DefaultTable("TABLE1", columns);
118 DefaultTable table2 = new DefaultTable("TABLE2", columns);
119
120 StringWriter stringWriter = new StringWriter();
121 FlatDtdWriter dtdWriter = new FlatDtdWriter(stringWriter);
122 dtdWriter.setContentModel(FlatDtdWriter.CHOICE);
123 dtdWriter.write(new DefaultDataSet(table1, table2));
124
125 String actualOutput = stringWriter.toString();
126 assertEquals("output", expectedOutput, actualOutput);
127 }
128
129 }