Source code: org/acs/damsel/srvr/db/TestTable.java
1 package org.acs.damsel.srvr.db;
2
3 import junit.framework.*;
4 import java.util.Vector;
5
6 public class TestTable extends TestCase {
7 private Table table = null;
8
9 protected void setUp() throws Exception {
10 super.setUp();
11 table = new Table();
12 }
13
14 protected void tearDown() throws Exception {
15 table = null;
16 super.tearDown();
17 }
18
19 public void testTable() {
20 table = new Table();
21 }
22
23 public void testGetRow(){
24 Vector results = new Vector();
25 Vector row1 = new Vector();
26 row1.add("michelle");
27 Vector row2 = new Vector();
28 row2.add("christy");
29 results.add(row1);
30 results.add(row2);
31 table.setResults(results);
32 this.assertEquals(table.getRow(0), row1);
33 this.assertEquals(table.getRow(1), row2);
34 this.assertNull(table.getRow(2));
35 }
36
37 public void testGetCol(){
38 Vector results = new Vector();
39 Vector row1 = new Vector();
40 row1.add("michelle");
41 Vector row2 = new Vector();
42 row2.add("christy");
43 results.add(row1);
44 results.add(row2);
45 Vector metaData = new Vector();
46 metaData.add("names");
47 table.setMetaData(metaData);
48 table.setResults(results);
49 Vector sample = new Vector();
50 sample.addElement("michelle");
51 sample.addElement("christy");
52 this.assertEquals(table.getCol(0), sample);
53 this.assertNull(table.getCol(1));
54 this.assertEquals(table.getCol("names"),sample);
55 this.assertNull(table.getCol("blah"));
56 }
57
58 public void testIsInResults() {
59 Vector results = new Vector();
60 Vector row1 = new Vector();
61 row1.add("michelle");
62 Vector row2 = new Vector();
63 row2.add("christy");
64 results.add(row1);
65 results.add(row2);
66 Vector metaData = new Vector();
67 metaData.add("names");
68 table.setMetaData(metaData);
69 table.setResults(results);
70 this.assertTrue(table.isInResults("names","christy"));
71 }
72
73 /*Test orderBy */
74 public void testOrderBy() {
75 table = new Table();
76 /*Populate the metadata tags */
77 Vector metadata = new Vector();
78 metadata.add("one");
79 metadata.add("two");
80 metadata.add("three");
81 /*Populate the results vector */
82 Vector results = new Vector();
83 Vector temp = new Vector();
84
85 temp.add("i");
86 temp.add("j");
87 temp.add("p");
88 results.add(temp);
89 temp = new Vector();
90 temp.add("e");
91 temp.add("b");
92 temp.add("d");
93 results.add(temp);
94 temp = new Vector();
95 temp.add("a");
96 temp.add("t");
97 temp.add("k");
98 results.add(temp);
99 temp = new Vector();
100 temp.add("f");
101 temp.add("g");
102 temp.add("h");
103 results.add(temp);
104 table.setMetaData(metadata);
105 table.setResults(results);
106
107 try {
108 /*Order by "one" */
109 table.orderBy("one");
110
111 /*Assert that the metadata tags have not been reordered */
112 this.assertTrue(table.getMetaData().elementAt(0).equals("one"));
113 this.assertTrue(table.getMetaData().elementAt(1).equals("two"));
114 this.assertTrue(table.getMetaData().elementAt(2).equals("three"));
115 /*Assert that the table has been ordered */
116 this.assertTrue(table.getResultsElement(0, 0).equals("a"));
117 this.assertTrue(table.getResultsElement(1, 0).equals("e"));
118 this.assertTrue(table.getResultsElement(2, 0).equals("f"));
119 this.assertTrue(table.getResultsElement(3, 0).equals("i"));
120 /*Assert that the columns pertaining to the other metadata tags have been shifted
121 accordingly */
122 this.assertTrue(table.getResultsElement(0, 1).equals("t"));
123 this.assertTrue(table.getResultsElement(1, 1).equals("b"));
124 this.assertTrue(table.getResultsElement(2, 1).equals("g"));
125 this.assertTrue(table.getResultsElement(3, 1).equals("j"));
126
127 this.assertTrue(table.getResultsElement(0, 2).equals("k"));
128 this.assertTrue(table.getResultsElement(1, 2).equals("d"));
129 this.assertTrue(table.getResultsElement(2, 2).equals("h"));
130 this.assertTrue(table.getResultsElement(3, 2).equals("p"));
131
132 /*Order by "two" */
133 table.orderBy("two");
134 /*Assert that the metadata tags have not been reordered */
135 this.assertTrue(table.getMetaData().elementAt(0).equals("one"));
136 this.assertTrue(table.getMetaData().elementAt(1).equals("two"));
137 this.assertTrue(table.getMetaData().elementAt(2).equals("three"));
138 /*Assert that the table has been ordered */
139 this.assertTrue(table.getResultsElement(0, 1).equals("b"));
140 this.assertTrue(table.getResultsElement(1, 1).equals("g"));
141 this.assertTrue(table.getResultsElement(2, 1).equals("j"));
142 this.assertTrue(table.getResultsElement(3, 1).equals("t"));
143 /*Assert that the columns pertaining to the other metadata tags have been shifted
144 accordingly */
145 this.assertTrue(table.getResultsElement(0, 0).equals("e"));
146 this.assertTrue(table.getResultsElement(1, 0).equals("f"));
147 this.assertTrue(table.getResultsElement(2, 0).equals("i"));
148 this.assertTrue(table.getResultsElement(3, 0).equals("a"));
149
150 this.assertTrue(table.getResultsElement(0, 2).equals("d"));
151 this.assertTrue(table.getResultsElement(1, 2).equals("h"));
152 this.assertTrue(table.getResultsElement(2, 2).equals("p"));
153 this.assertTrue(table.getResultsElement(3, 2).equals("k"));
154
155 /*Order by "three" */
156 table.orderBy("three");
157 /*Assert that the metadata tags have not been reordered */
158 this.assertTrue(table.getMetaData().elementAt(0).equals("one"));
159 this.assertTrue(table.getMetaData().elementAt(1).equals("two"));
160 this.assertTrue(table.getMetaData().elementAt(2).equals("three"));
161 /*Assert that the table has been ordered */
162 this.assertTrue(table.getResultsElement(0, 2).equals("d"));
163 this.assertTrue(table.getResultsElement(1, 2).equals("h"));
164 this.assertTrue(table.getResultsElement(2, 2).equals("k"));
165 this.assertTrue(table.getResultsElement(3, 2).equals("p"));
166 /*Assert that the columns pertaining to the other metadata tags have been shifted
167 accordingly */
168 this.assertTrue(table.getResultsElement(0, 0).equals("e"));
169 this.assertTrue(table.getResultsElement(1, 0).equals("f"));
170 this.assertTrue(table.getResultsElement(2, 0).equals("a"));
171 this.assertTrue(table.getResultsElement(3, 0).equals("i"));
172
173 this.assertTrue(table.getResultsElement(0, 1).equals("b"));
174 this.assertTrue(table.getResultsElement(1, 1).equals("g"));
175 this.assertTrue(table.getResultsElement(2, 1).equals("t"));
176 this.assertTrue(table.getResultsElement(3, 1).equals("j"));
177
178 }
179 catch (TagNameNotFoundException ex) {
180 this.fail("Exception should not have been thrown");
181 }
182
183 /*Try ordering by a non-existant metadata tag */
184 try {
185 table.orderBy("blah");
186 this.fail("Exception should have been thrown");
187 }
188 catch (TagNameNotFoundException ex1) {
189 }
190
191 } // end of testOrderBy
192
193 } // end of testTable Class