View Javadoc
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 }