1
2
3
4 package org.melati.poem.test;
5
6 import java.sql.PreparedStatement;
7 import java.sql.ResultSet;
8
9 import org.melati.poem.AppBugPoemException;
10 import org.melati.poem.CachedSelection;
11 import org.melati.poem.Column;
12 import org.melati.poem.ColumnInfo;
13 import org.melati.poem.DefinitionSource;
14 import org.melati.poem.DisplayLevel;
15 import org.melati.poem.Field;
16 import org.melati.poem.NullTypeMismatchPoemException;
17 import org.melati.poem.Persistent;
18 import org.melati.poem.SQLPoemType;
19 import org.melati.poem.Searchability;
20 import org.melati.poem.StandardIntegrityFix;
21 import org.melati.poem.Table;
22 import org.melati.poem.TroidPoemType;
23 import org.melati.poem.User;
24 import org.melati.poem.Column.SettingException;
25 import org.melati.poem.util.EnumUtils;
26
27
28
29
30
31 public class ColumnTest extends PoemTestCase {
32
33
34
35
36
37 public ColumnTest(String name) {
38 super(name);
39 }
40
41
42
43
44
45 protected void setUp()
46 throws Exception {
47 super.setUp();
48 }
49
50
51
52
53
54 protected void tearDown()
55 throws Exception {
56 super.tearDown();
57 }
58
59
60
61
62 public void testColumn() {
63
64 }
65
66
67
68
69 public void testGetDatabase() {
70 assertEquals(getDb(),
71 getDb().getUserTable().troidColumn().getDatabase());
72 }
73
74
75
76
77 public void testGetTable() {
78 assertEquals(getDb().getUserTable(),
79 getDb().getUserTable().troidColumn().getTable());
80 }
81
82
83
84
85 public void testGetName() {
86 assertEquals("id",
87 getDb().getUserTable().troidColumn().getName());
88 }
89
90
91
92
93 public void testQuotedName() {
94 assertEquals(getDb().quotedName("id"),
95 getDb().getUserTable().troidColumn().quotedName());
96 }
97
98
99
100
101 public void testFullQuotedName() {
102 assertEquals(getDb().quotedName("user")+ "." + getDb().quotedName("id"),
103 getDb().getUserTable().troidColumn().fullQuotedName());
104
105 }
106
107
108
109
110 public void testGetDisplayName() {
111 assertEquals("Id",
112 getDb().getUserTable().troidColumn().getDisplayName());
113
114 }
115
116
117
118
119 public void testGetDescription() {
120 assertEquals("The Table Row Object ID",
121 getDb().getUserTable().troidColumn().getDescription());
122 }
123
124
125
126
127 public void testGetColumnInfo() {
128 assertEquals("columnInfo/0",
129 getDb().getUserTable().troidColumn().getColumnInfo().toString());
130 }
131
132
133
134
135 public void testGetDisplayLevel() {
136 assertEquals(DisplayLevel.detail,
137 getDb().getUserTable().troidColumn().getDisplayLevel());
138 assertEquals(DisplayLevel.primary,
139 getDb().getUserTable().getColumn("name").getDisplayLevel());
140 assertEquals(DisplayLevel.summary,
141 getDb().getUserTable().getColumn("login").getDisplayLevel());
142 }
143
144
145
146
147 public void testSetDisplayLevel() {
148 assertEquals(DisplayLevel.summary,
149 getDb().getUserTable().getColumn("login").getDisplayLevel());
150 getDb().getUserTable().getColumn("login").setDisplayLevel(DisplayLevel.detail);
151 assertEquals(DisplayLevel.detail,
152 getDb().getUserTable().getColumn("login").getDisplayLevel());
153 getDb().getUserTable().getColumn("login").setDisplayLevel(DisplayLevel.summary);
154 assertEquals(DisplayLevel.summary,
155 getDb().getUserTable().getColumn("login").getDisplayLevel());
156 }
157
158
159
160
161 public void testGetSearchability() {
162 assertEquals(Searchability.yes,
163 getDb().getUserTable().troidColumn().getSearchability());
164 assertEquals(Searchability.primary,
165 getDb().getUserTable().getColumn("name").getSearchability());
166 assertEquals(Searchability.yes,
167 getDb().getUserTable().getColumn("login").getSearchability());
168 assertEquals(Searchability.no,
169 getDb().getUserTable().getColumn("password").getSearchability());
170
171 }
172
173
174
175
176 public void testSetSearchability() {
177 assertEquals(Searchability.yes,
178 getDb().getUserTable().getColumn("login").getSearchability());
179 getDb().getUserTable().getColumn("login").setSearchability(Searchability.no);
180 assertEquals(Searchability.no,
181 getDb().getUserTable().getColumn("login").getSearchability());
182 getDb().getUserTable().getColumn("login").setSearchability(Searchability.yes);
183 assertEquals(Searchability.yes,
184 getDb().getUserTable().getColumn("login").getSearchability());
185
186 }
187
188
189
190
191 public void testGetUserEditable() {
192
193 }
194
195
196
197
198 public void testGetUserCreateable() {
199
200 }
201
202
203
204
205 public void testGetSQLType() {
206
207 }
208
209
210
211
212 public void testGetType() {
213
214 }
215
216
217
218
219 public void testIsTroidColumn() {
220
221 }
222
223
224
225
226 public void testIsDeletedColumn() {
227
228 }
229
230
231
232
233 public void testGetIndexed() {
234
235 }
236
237
238
239
240 public void testGetUnique() {
241
242 }
243
244
245
246
247 public void testGetIntegrityFix() {
248 assertEquals(StandardIntegrityFix.prevent,
249 getDb().getUserTable().troidColumn().getIntegrityFix());
250 }
251
252
253
254
255
256 public void testSetIntegrityFix() {
257 assertEquals(StandardIntegrityFix.prevent,
258 getDb().getUserTable().troidColumn().getIntegrityFix());
259 getDb().getUserTable().troidColumn().setIntegrityFix(StandardIntegrityFix.delete);
260 assertEquals(StandardIntegrityFix.delete,
261 getDb().getUserTable().troidColumn().getIntegrityFix());
262 getDb().getUserTable().troidColumn().setIntegrityFix(StandardIntegrityFix.prevent);
263 assertEquals(StandardIntegrityFix.prevent,
264 getDb().getUserTable().troidColumn().getIntegrityFix());
265
266 }
267
268
269
270
271 public void testGetRenderInfo() {
272
273 }
274
275
276
277
278 public void testGetWidth() {
279
280 }
281
282
283
284
285 public void testGetHeight() {
286
287 }
288
289
290
291
292 public void testGetDisplayOrderPriority() {
293
294 }
295
296
297
298
299 public void testGetSortDescending() {
300
301 }
302
303
304
305
306 public void testToString() {
307
308 }
309
310
311
312
313 public void testDump() {
314 getDb().getUserTable().troidColumn().dump();
315 }
316
317
318
319
320 public void testEqClause() {
321 assertEquals(getDb().getDbms().getQuotedName("user") +
322 "." + getDb().getDbms().getQuotedName("id") + " IS NULL",
323 getDb().getUserTable().troidColumn().eqClause(null));
324 assertEquals(getDb().getDbms().getQuotedName("user") + "." +
325 getDb().getDbms().getQuotedName("id") + " = 1",
326 getDb().getUserTable().troidColumn().eqClause(new Integer(1)));
327 }
328
329
330
331
332 public void testSelectionWhereEq() {
333 if (getDb().getDbms().canDropColumns()) {
334 assertEquals(new Integer(69),
335 new Integer(EnumUtils.vectorOf(
336 getDb().getColumnInfoTable().getHeightColumn().
337 selectionWhereEq(new Integer(1))).size()));
338 }
339 try {
340 getDb().getColumnInfoTable().getHeightColumn().
341 selectionWhereEq(null);
342 fail("Should have bombed");
343 } catch (NullTypeMismatchPoemException e) {
344 e = null;
345 }
346 }
347
348
349
350
351 public void testFirstWhereEq() {
352 assertNull(getDb().getColumnInfoTable().getHeightColumn().
353 firstWhereEq(new Integer(0)));
354 assertNull(getDb().getColumnInfoTable().getHeightColumn().
355 firstWhereEq(new Integer(2)));
356 assertEquals("columnInfo/0",
357 getDb().getColumnInfoTable().getHeightColumn().
358 firstWhereEq(new Integer(1)).toString());
359 }
360
361
362
363
364 @SuppressWarnings("unchecked")
365 public void testCachedSelectionWhereEq() {
366 CachedSelection<ColumnInfo> cs = getDb().getColumnInfoTable().getHeightColumn().
367 cachedSelectionWhereEq(new Integer(1));
368 if (getDb().getDbms().canDropColumns()) {
369 assertEquals(69,cs.count());
370 }
371 int queries = getDb().getQueryCount();
372 if (getDb().getDbms().canDropColumns()) {
373 assertEquals(69,cs.count());
374 }
375 int queries2 = getDb().getQueryCount();
376 if (getDb().getDbms().canDropColumns()) {
377 assertEquals(queries, queries2);
378 }
379 int queries3 = getDb().getQueryCount();
380 if (getDb().getDbms().canDropColumns()) {
381 assertEquals(queries2, queries3);
382 }
383 }
384
385
386
387
388 public void testGetRaw() {
389
390 }
391
392
393
394
395 public void testGetRaw_unsafe() {
396
397 }
398
399
400
401
402 public void testSetRaw() {
403
404 }
405
406
407
408
409 public void testSetRaw_unsafe() {
410
411 }
412
413
414
415
416 public void testGetCooked() {
417
418 }
419
420
421
422
423 public void testSetCooked() {
424
425 }
426
427
428
429
430 public void testLoad_unsafe() {
431
432 }
433
434
435
436
437 public void testSave_unsafe() {
438
439 }
440
441
442
443
444 public void testAsEmptyField() {
445 Field<Integer> f = getDb().getUserTable().troidColumn().asEmptyField();
446 assertEquals("id",f.getName());
447 assertEquals("Id",f.getDisplayName());
448 assertEquals("The Table Row Object ID",f.getDescription());
449 assertEquals(1,f.getHeight());
450 assertEquals(20,f.getWidth());
451 assertNull(f.getRaw());
452 try {
453 f.getCooked();
454 fail("Should have bombed");
455 } catch (NullTypeMismatchPoemException e) {
456 e = null;
457 }
458 assertTrue(f.getIndexed());
459 assertFalse(f.getUserEditable());
460 assertFalse(f.getUserCreateable());
461 assertNull(f.getRenderInfo());
462 assertTrue(f.getType() instanceof TroidPoemType);
463 }
464
465
466
467
468 public void testSetRawString() {
469 User admin = getDb().getUserTable().administratorUser();
470 try {
471 getDb().getUserTable().troidColumn().setRawString(admin, "one");
472 fail("Should have bombed");
473 } catch (SettingException e) {
474 e = null;
475 }
476 getDb().getUserTable().getNameColumn().setRawString(admin, "Admin");
477 assertEquals("Admin", admin.getName());
478 getDb().getUserTable().getNameColumn().setRawString(admin, "Melati database administrator");
479 }
480
481
482
483
484 public void testReferencesTo() {
485 Column<Integer> userTroidColumn = getDb().getUserTable().troidColumn();
486 User admin = getDb().getUserTable().administratorUser();
487 assertEquals("", EnumUtils.concatenated("|", userTroidColumn.referencesTo(admin)));
488 Column<Integer> userColumn = getDb().getGroupMembershipTable().getUserColumn();
489 assertEquals("groupMembership/0",
490 EnumUtils.concatenated("|", userColumn.referencesTo(admin)));
491 }
492
493
494
495
496 public void testEnsure() {
497 User fred = (User)getDb().getUserTable().newPersistent();
498 fred.setName("Fred");
499 fred.setLogin("fred");
500 fred.setPassword("fred");
501 Column<?> userNameColumn = getDb().getUserTable().getColumn("name");
502 User ensured = (User)userNameColumn.ensure(fred);
503 assertEquals("Fred", ensured.getName());
504 fred.delete();
505 }
506
507
508
509
510 public void testFirstFree() {
511 Column<?> userTroidColumn = getDb().getUserTable().troidColumn();
512 assertEquals(2, userTroidColumn.firstFree(null));
513
514 try {
515 Column<?> userNameColumn = getDb().getUserTable().getColumn("name");
516 userNameColumn.firstFree(null);
517 fail("Should have bombed");
518 } catch (AppBugPoemException e) {
519 e = null;
520 }
521
522 assertEquals(0, userTroidColumn.firstFree("ID > 1"));
523 assertEquals(1, userTroidColumn.firstFree("ID < 1"));
524
525 }
526
527 }