001: //$HeadURL: https://svn.wald.intevation.org/svn/deegree/base/trunk/test/junit/org/deegree/model/table/TableTest.java $
002: /*
003: * Created on 11.02.2005
004: *
005: * TODO To change the template for this generated file go to
006: * Window - Preferences - Java - Code Style - Code Templates
007: */
008: package org.deegree.model.table;
009:
010: import org.deegree.model.spatialschema.Geometry;
011: import org.deegree.model.spatialschema.GeometryFactory;
012:
013: //import COM.rsa.jsafe.co;
014: import alltests.AllTests;
015:
016: import junit.framework.TestCase;
017:
018: /**
019: * @author sncho
020: *
021: * TODO To change the template for this generated type comment go to
022: * Window - Preferences - Java - Code Style - Code Templates
023: */
024: public class TableTest extends TestCase {
025:
026: protected String tableName;
027: protected String[] columnNames;
028: protected int[] columnTypes;
029: protected Object[][] datas;
030: protected DefaultTable table = null;
031:
032: /*
033: * @see TestCase#setUp()
034: */
035: protected void setUp() throws Exception {
036: super .setUp();
037:
038: tableName = "myTable";
039:
040: columnNames = new String[3];
041: columnNames[0] = "ID";
042: columnNames[1] = "columnA";
043: columnNames[2] = "columnB";
044:
045: columnTypes = new int[3];
046: columnTypes[0] = 1;
047: columnTypes[1] = 2;
048: columnTypes[2] = 3;
049:
050: datas = new Object[2][3];
051: Geometry point = GeometryFactory.createPoint(1, 2, null);
052: datas[0][0] = new Double(1);
053: datas[0][1] = "StringData1";
054: datas[0][2] = point;
055:
056: Geometry point2 = GeometryFactory.createPoint(3, 4, null);
057: datas[1][0] = new Double(2);
058: datas[1][1] = "StringData2";
059: datas[1][2] = point2;
060:
061: try {
062: table = new DefaultTable(tableName, columnNames,
063: columnTypes, datas);
064: } catch (Exception e) {
065: AllTests.LOG.logError("\tUnit failed failed \n"
066: + e.getMessage(), e);
067: fail(e.getMessage());
068: }
069: }
070:
071: /*
072: * @see TestCase#tearDown()
073: */
074: protected void tearDown() throws Exception {
075: super .tearDown();
076: }
077:
078: /**
079: * Constructor for TableTest.
080: * @param arg0
081: */
082: public TableTest(String arg0) {
083: super (arg0);
084: }
085:
086: public void testTable() {
087:
088: System.out.println("--- \t testTable \t ---");
089:
090: String name = table.getTableName();
091: System.out.println("\t defTab.getTableName: " + name);
092: System.out.println("\t Expected: " + tableName);
093: assertEquals("Names expected to be equal ", name, tableName);
094:
095: System.out.println("\t ColumnNames \n");
096: String[] cNames = table.getColumnNames();
097: System.out.println("\t cNames.length: " + cNames.length);
098: System.out.println("\t Expected: " + columnNames.length);
099: assertTrue("columnNames lengths expected to be equal ",
100: cNames.length == columnNames.length);
101:
102: for (int i = 0; i < columnNames.length; i++) {
103:
104: System.out.println("\t cNames[" + i + "]: " + cNames[i]);
105: System.out.println("\t Expected: " + columnNames[i] + "\n");
106: //FIXME is ignorecase ok? ===> check ADDColumn!!!
107: assertEquals("Names expected to be equal ", cNames[i],
108: columnNames[i].toUpperCase());
109: }
110:
111: System.out.println("\t ColumnTypes \n");
112: int[] cTypes = table.getColumnTypes();
113: System.out.println("\t cNames.length: " + cTypes.length);
114: System.out.println("\t Expected: " + columnTypes.length);
115: assertTrue("columnNames lengths expected to be equal ",
116: cTypes.length == columnTypes.length);
117:
118: for (int i = 0; i < columnTypes.length; i++) {
119:
120: System.out.println("\t cNames[" + i + "]: " + cTypes[i]);
121: System.out.println("\t Expected: " + columnTypes[i] + "\n");
122: //FIXME is ignorecase ok? ignorecase
123: assertEquals("Names expected to be equal ", cTypes[i],
124: columnTypes[i]);
125: }
126:
127: int size = table.getRowCount();
128: System.out.println("\t #of rows: " + size);
129: System.out.println("\t Expected: " + datas.length);
130: assertTrue("Expected data length to be equal ",
131: size == datas.length);
132:
133: for (int i = 0; i < datas.length; i++) {
134:
135: System.out.println("\t ***** rows[" + i + "] \t *****");
136: Object[] row = table.getRow(i);
137: assertTrue("Expected row[" + i + "]" + "and datas[" + i
138: + "]" + "lengths to be equal ",
139: row.length == datas[i].length);
140:
141: for (int j = 0; j < datas[i].length; j++) {
142:
143: System.out.println("\t col[" + j + "]");
144: Object o1 = row[j];
145: Object o2 = datas[i][j];
146:
147: Class c1 = row[j].getClass();
148: Class c2 = datas[i][j].getClass();
149:
150: System.out.println("\t class: " + c1);
151: System.out.println("\t Expected: " + c2);
152: assertEquals("Expected data length to be equal ", c1,
153: c2);
154: System.out.println("\t value: " + o1);
155: System.out.println("\t Expected: " + o2);
156: assertEquals("Object values expected to be equal ", o1,
157: o2);
158:
159: }
160: System.out.println("\t ***************\n");
161: }
162:
163: System.out.println("-----------------------------");
164: }
165:
166: public void testAppendRow() {
167: System.out.println("--- \t testAppendRow \t ---");
168: Object[] newData = new Object[3];
169: newData[0] = new Double(2);
170: newData[1] = "newDataString";
171: //TODO type checking ===> Integer isn't of type 3
172: newData[2] = new Integer(-5);
173:
174: try {
175: table.appendRow(newData);
176: } catch (Exception e) {
177: AllTests.LOG.logError("\tUnit failed failed \n"
178: + e.getMessage(), e);
179: fail(e.getMessage());
180: }
181: System.out.println(table.toString());
182: System.out.println("-----------------------------");
183: }
184:
185: public void testremoveRow() {
186:
187: System.out.println("--- \t removeRow \t ---");
188: int i = table.getRowCount() - 1;
189: Object[] row = table.getRow(i);
190: Object[] removed = table.removeRow(i);
191:
192: assertTrue("row length expected to be equal ",
193: row.length == removed.length);
194:
195: for (int j = 0; j < removed.length; j++) {
196:
197: System.out.println("\t removed[" + j + "]=" + removed[j]);
198: System.out.println("\t expeted[" + j + "]=" + row[j]);
199: assertEquals("object values length expected to be equal ",
200: row[j], removed[j]);
201:
202: }
203: System.out.println("-----------------------------");
204: }
205:
206: public void testAddColumn() {
207:
208: System.out.println("--- \t addColumn \t ---");
209: int type = 4;
210: String columnName = "columnC";
211: table.addColumn(columnName, type);
212:
213: String nameAdded = table
214: .getColumnName(table.getColumnCount() - 1);
215: int typeAdded = table.getColumnType(table.getColumnCount() - 1);
216:
217: System.out.println("\t nameAdded: " + nameAdded);
218: System.out.println("\t expeted: " + columnName);
219: //FIXME is ignoreCase ok? added not brought to Upper Case Column
220: /*
221: assertEquals("Expected row names to be equal ",
222: nameAdded,columnName.toUpperCase());
223: */
224: assertEquals("Expected row names to be equal ", nameAdded,
225: columnName);
226:
227: System.out.println("\t nameAdded: " + typeAdded);
228: System.out.println("\t expeted: " + type);
229: assertEquals("Expected row names to be equal ", typeAdded,
230: type);
231:
232: System.out.println("-----------------------------");
233: }
234:
235: public void printtable() {
236:
237: }
238: }
|