1 /**
2 *
3 */
4 package org.melati.poem.test;
5
6
7
8 import org.melati.poem.AccessToken;
9 import org.melati.poem.Capability;
10 import org.melati.poem.Database;
11 import org.melati.poem.PoemDatabase;
12 import org.melati.poem.PoemThread;
13 import org.melati.poem.ReconnectionPoemException;
14 import org.melati.poem.TableCategoryTable;
15 import org.melati.poem.TableInfo;
16 import org.melati.poem.util.EnumUtils;
17
18 import junit.framework.TestCase;
19
20 /**
21 * Test db outside of PoemTestCase so that we do not run into
22 * session closing issues.
23 *
24 * @author timp
25 * @since 25 Jan 2007
26 *
27 */
28 public class DatabaseTest extends TestCase {
29
30 public DatabaseTest(String name) {
31 super(name);
32 }
33
34 protected void setUp() throws Exception {
35 super.setUp();
36 }
37
38 protected void tearDown() throws Exception {
39 super.tearDown();
40 }
41
42 private static PoemDatabase db;
43 /**
44 * @return the db
45 */
46 private static Database getDb() {
47 if (db != null)
48 return db;
49 else {
50 db = new PoemDatabase();
51 db.connect("m2", "org.melati.poem.dbms.Hsqldb", "jdbc:hsqldb:mem:m2",
52 "sa", "", 8);
53 assertEquals(8, db.getFreeTransactionsCount());
54 assertTrue(db.getClass().getName().equals("org.melati.poem.PoemDatabase"));
55 return db;
56 }
57 }
58
59 /**
60 * Test method for {@link org.melati.poem.Database#Database()}.
61 */
62 public void testDatabase() {
63
64 }
65
66 /**
67 * Test method for {@link org.melati.poem.Database#connect}.
68 */
69 public void testConnect() {
70 try {
71 getDb().connect("m2", "org.melati.poem.dbms.Hsqldb", "jdbc:hsqldb:mem:m2",
72 "sa", "", 8);
73 fail("Should have blown up");
74 } catch (ReconnectionPoemException e) {
75 e = null;
76 }
77 assertTrue(db.getClass().getName() == "org.melati.poem.PoemDatabase");
78 assertEquals(8, db.getFreeTransactionsCount());
79 db.disconnect();
80 assertEquals(0, db.getFreeTransactionsCount());
81 db = null;
82 }
83
84
85 /**
86 * Test method for {@link org.melati.poem.Database#disconnect()}.
87 */
88 public void testDisconnect() {
89
90 }
91
92
93 /**
94 * Test method for {@link org.melati.poem.Database
95 * #addTableAndCommit(org.melati.poem.TableInfo, java.lang.String)}.
96 * @see org.melati.poem.test.DynamicTableTest
97 */
98 public void testAddTableAndCommit() {
99 }
100
101 public void testDeleteTableAndCommit() {
102 String name = "abouttodie";
103 getDb().beginSession(AccessToken.root);
104 TableInfo tableInfo = (TableInfo) getDb().getTableInfoTable().newPersistent();
105 tableInfo.setName(name);
106 tableInfo.setDisplayname(name);
107 tableInfo.setDescription(name + " element table");
108 tableInfo.setDisplayorder(13);
109 tableInfo.setSeqcached(Boolean.FALSE);
110 tableInfo.setCategory(db.getTableCategoryTable().NORMAL);
111 tableInfo.setCachelimit(555);
112 tableInfo.makePersistent();
113 assertEquals(9, EnumUtils.vectorOf(getDb().tables()).size());
114 getDb().addTableAndCommit(tableInfo, "troid");
115 assertEquals(10, EnumUtils.vectorOf(getDb().tables()).size());
116 getDb().deleteTableAndCommit(tableInfo);
117 assertEquals(9, EnumUtils.vectorOf(getDb().tables()).size());
118 getDb().endSession();
119 }
120 /**
121 * Test method for {@link org.melati.poem.Database#addConstraints()}.
122 */
123 public void testAddConstraints() {
124 getDb().addConstraints();
125 }
126
127 /**
128 * Test method for {@link org.melati.poem.Database#transactionsMax()}.
129 */
130 public void testTransactionsMax() {
131
132 }
133
134 /**
135 * Test method for {@link org.melati.poem.Database#setTransactionsMax(int)}.
136 */
137 public void testSetTransactionsMax() {
138
139 }
140
141 /**
142 * Test method for {@link org.melati.poem.Database#getTransactionsCount()}.
143 */
144 public void testGetTransactionsCount() {
145
146 }
147
148 /**
149 * Test method for {@link org.melati.poem.Database#getFreeTransactionsCount()}.
150 */
151 public void testGetFreeTransactionsCount() {
152
153 }
154
155 /**
156 * Test method for {@link org.melati.poem.Database#poemTransaction(int)}.
157 */
158 public void testPoemTransaction() {
159
160 }
161
162 /**
163 * Test method for {@link org.melati.poem.Database#transaction(int)}.
164 */
165 public void testTransaction() {
166
167 }
168
169 /**
170 * Test method for {@link org.melati.poem.Database#isFree(org.melati.poem.PoemTransaction)}.
171 */
172 public void testIsFree() {
173
174 }
175
176 /**
177 * Test method for {@link org.melati.poem.Database#beginExclusiveLock()}.
178 */
179 public void testBeginExclusiveLock() {
180
181 }
182
183 /**
184 * Test method for {@link org.melati.poem.Database#endExclusiveLock()}.
185 */
186 public void testEndExclusiveLock() {
187
188 }
189
190 /**
191 * Test method for {@link org.melati.poem.Database#inSession(org.melati.poem.AccessToken, org.melati.poem.PoemTask)}.
192 */
193 public void testInSession() {
194
195 }
196
197 /**
198 * Test method for {@link org.melati.poem.Database#beginSession(org.melati.poem.AccessToken)}.
199 */
200 public void testBeginSession() {
201
202 }
203
204 /**
205 * Test method for {@link org.melati.poem.Database#endSession()}.
206 */
207 public void testEndSession() {
208 getDb().beginSession(AccessToken.root);
209 assertEquals(
210 PoemThread.database().getTransactionsCount(),
211 PoemThread.database().getFreeTransactionsCount() + 1);
212 getDb().endSession();
213 }
214
215 /**
216 * Test method for {@link org.melati.poem.Database#inCommittedTransaction(org.melati.poem.AccessToken, org.melati.poem.PoemTask)}.
217 */
218 public void testInCommittedTransaction() {
219
220 }
221
222 /**
223 * Test method for {@link org.melati.poem.Database#getTable(java.lang.String)}.
224 */
225 public void testGetTable() {
226
227 }
228
229 /**
230 * Test method for {@link org.melati.poem.Database#tables()}.
231 */
232 public void testTables() {
233
234 }
235
236 /**
237 * Test method for {@link org.melati.poem.Database#tables()}.
238 */
239 public void testGetTables() {
240 assertEquals(9, getDb().getTables().size());
241 }
242
243 /**
244 * Test method for {@link org.melati.poem.Database#getDisplayTables()}.
245 */
246 public void testGetDisplayTables() {
247
248 }
249
250 /**
251 * Test method for {@link org.melati.poem.Database#columns()}.
252 */
253 public void testColumns() {
254
255 }
256 /**
257 * Test method for {@link org.melati.poem.Database#getColumns()}.
258 */
259 public void testGetColumns() {
260 assertEquals(69, getDb().getColumns().size());
261 }
262
263 /**
264 * Test method for {@link org.melati.poem.Database#getTableInfoTable()}.
265 */
266 public void testGetTableInfoTable() {
267
268 }
269
270 /**
271 * Test method for {@link org.melati.poem.Database#getTableCategoryTable()}.
272 */
273 public void testGetTableCategoryTable() {
274
275 }
276
277 /**
278 * Test method for {@link org.melati.poem.Database#getColumnInfoTable()}.
279 */
280 public void testGetColumnInfoTable() {
281
282 }
283
284 /**
285 * Test method for {@link org.melati.poem.Database#getCapabilityTable()}.
286 */
287 public void testGetCapabilityTable() {
288
289 }
290
291 /**
292 * Test method for {@link org.melati.poem.Database#getUserTable()}.
293 */
294 public void testGetUserTable() {
295
296 }
297
298 /**
299 * Test method for {@link org.melati.poem.Database#getGroupTable()}.
300 */
301 public void testGetGroupTable() {
302
303 }
304
305 /**
306 * Test method for {@link org.melati.poem.Database#getGroupMembershipTable()}.
307 */
308 public void testGetGroupMembershipTable() {
309
310 }
311
312 /**
313 * Test method for {@link org.melati.poem.Database#getGroupCapabilityTable()}.
314 */
315 public void testGetGroupCapabilityTable() {
316
317 }
318
319 /**
320 * Test method for {@link org.melati.poem.Database#getSettingTable()}.
321 */
322 public void testGetSettingTable() {
323
324 }
325
326 /**
327 * Test method for {@link org.melati.poem.Database#sqlQuery(java.lang.String)}.
328 */
329 public void testSqlQuery() {
330
331 }
332
333 /**
334 * Test method for {@link org.melati.poem.Database#sqlUpdate(java.lang.String)}.
335 */
336 public void testSqlUpdate() {
337
338 }
339
340 /**
341 * Test method for {@link org.melati.poem.Database#guestUser()}.
342 */
343 public void testGuestUser() {
344
345 }
346
347 /**
348 * Test method for {@link org.melati.poem.Database#administratorUser()}.
349 */
350 public void testAdministratorUser() {
351
352 }
353
354 /**
355 * Test method for {@link org.melati.poem.Database#
356 * givesCapabilitySQL(org.melati.poem.User, org.melati.poem.Capability)}.
357 */
358 public void testGivesCapabilitySQL() {
359 }
360
361 /**
362 * Test method for {@link org.melati.poem.Database#hasCapability(org.melati.poem.User, org.melati.poem.Capability)}.
363 */
364 public void testHasCapability() {
365
366 }
367 /**
368 * Test method for {@link org.melati.poem.Database#guestAccessToken()}.
369 */
370 public void testGuestAccessToken() {
371
372 }
373
374 /**
375 * If we are not in a session then an unsafe read is performed.
376 * Test method for {@link org.melati.poem.Database#administerCapability()}.
377 */
378 public void testAdministerCapability() {
379 Capability c = getDb().administerCapability();
380 assertEquals("_administer_", c.toString());
381 }
382
383 /**
384 * Test method for {@link org.melati.poem.Database#getCanAdminister()}.
385 */
386 public void testGetCanAdminister() {
387
388 }
389
390 /**
391 * Test method for {@link org.melati.poem.Database#setCanAdminister()}.
392 */
393 public void testSetCanAdminister() {
394
395 }
396
397 /**
398 * Test method for {@link org.melati.poem.Database#setCanAdminister(java.lang.String)}.
399 */
400 public void testSetCanAdministerString() {
401
402 }
403
404 /**
405 * Test method for {@link org.melati.poem.Database#trimCache(int)}.
406 */
407 public void testTrimCache() {
408
409 }
410
411 /**
412 * Test method for {@link org.melati.poem.Database#uncache()}.
413 */
414 public void testUncacheContents() {
415
416 }
417
418 /**
419 * Test method for {@link org.melati.poem.Database#referencesTo(org.melati.poem.Persistent)}.
420 */
421 public void testReferencesToPersistent() {
422
423 }
424 /**
425 * Test method for {@link org.melati.poem.Database#getReferencesTo(org.melati.poem.Persistent)}.
426 */
427 public void testGetReferencesToPersistent() {
428
429 }
430
431 /**
432 * Test method for {@link org.melati.poem.Database#referencesTo(org.melati.poem.Table)}.
433 */
434 public void testReferencesToTable() {
435
436 }
437
438 /**
439 * Test method for {@link org.melati.poem.Database#dumpCacheAnalysis()}.
440 */
441 public void testDumpCacheAnalysis() {
442
443 }
444
445 /**
446 * Test method for {@link org.melati.poem.Database#dump()}.
447 */
448 public void testDump() {
449
450 }
451
452 /**
453 * Test method for {@link org.melati.poem.Database#getDbms()}.
454 */
455 public void testGetDbms() {
456
457 }
458
459 /**
460 * Test method for {@link org.melati.poem.Database#quotedName(java.lang.String)}.
461 */
462 public void testQuotedName() {
463
464 }
465
466 /**
467 * Test method for {@link org.melati.poem.Database#toString()}.
468 */
469 public void testToString() {
470
471 }
472
473 /**
474 * Test method for {@link org.melati.poem.Database#getCommittedConnection()}.
475 */
476 public void testGetCommittedConnection() {
477
478 }
479
480 /**
481 * Test method for {@link org.melati.poem.Database#logSQL()}.
482 */
483 public void testLogSQL() {
484
485 }
486
487 /**
488 * Test method for {@link org.melati.poem.Database#setLogSQL(boolean)}.
489 */
490 public void testSetLogSQL() {
491
492 }
493
494 /**
495 * Test method for {@link org.melati.poem.Database#logCommits()}.
496 */
497 public void testLogCommits() {
498
499 }
500
501 /**
502 * Test method for {@link org.melati.poem.Database#setLogCommits(boolean)}.
503 */
504 public void testSetLogCommits() {
505
506 }
507
508 /**
509 * Test method for {@link org.melati.poem.Database#getQueryCount()}.
510 */
511 public void testGetQueryCount() {
512
513 }
514
515 /**
516 * Test method for {@link org.melati.poem.Database#incrementQueryCount}.
517 */
518 public void testIncrementQueryCount() {
519
520 }
521
522 /**
523 * Test method for {@link org.melati.poem.Database#getName()}.
524 */
525 public void testGetName() {
526 assertEquals("m2", getDb().getName());
527 }
528
529 /**
530 * Test method for {@link org.melati.poem.Database#getDisplayName()}.
531 */
532 public void testGetDisplayName() {
533 assertEquals("M2", getDb().getDisplayName());
534 }
535 }