1   /**
2    * 
3    */
4   package org.melati.poem.test;
5   
6   import org.melati.poem.CachedCount;
7   import org.melati.poem.User;
8   
9   /**
10   * @author timp
11   * @since 31/10/2006
12   */
13  public class CachedCountTest extends PoemTestCase {
14  
15    /**
16     * Constructor for CachedCountTest.
17     * @param name
18     */
19    public CachedCountTest(String name) {
20      super(name);
21    }
22  
23    /**
24     * {@inheritDoc}
25     * @see org.melati.poem.test.PoemTestCase#setUp()
26     */
27    protected void setUp()
28        throws Exception {
29      super.setUp();
30    }
31  
32    /**
33     * {@inheritDoc}
34     * @see org.melati.poem.test.PoemTestCase#tearDown()
35     */
36    protected void tearDown()
37        throws Exception {
38      super.tearDown();
39    }
40  
41    /**
42     * @see org.melati.poem.CachedCount#CachedCount(Table, String, Table[])
43     */
44    public void testCachedCountTableStringTableArray() {
45      // FIXME work out good use case
46      int queries = getDb().getQueryCount();
47      CachedCount cc = new CachedCount(getDb().getUserTable(), 
48              getDb().getUserTable().troidColumn().fullQuotedName() + " = 0", null);
49      int queries2 = getDb().getQueryCount();
50      assertEquals(queries, queries2);
51      assertEquals(1, cc.count());
52      int queries3 = getDb().getQueryCount();
53      assertEquals(queries2 + 1, queries3);
54      assertEquals(1, cc.count());
55      int queries4 = getDb().getQueryCount();
56      assertEquals(queries3, queries4);
57    }
58  
59    /**
60     * @see org.melati.poem.CachedCount#CachedCount(Persistent, boolean, boolean)
61     */
62    public void testCachedCountPersistentBooleanBoolean() {
63      int queries = getDb().getQueryCount();
64      User u = (User)getDb().getUserTable().newPersistent();
65      u.setName("guest");
66      CachedCount cc = new CachedCount(u,false,true);
67      int queries2 = getDb().getQueryCount();
68      assertEquals(queries, queries2);
69      assertEquals(1, cc.count());
70      int queries3 = getDb().getQueryCount();
71      assertEquals(queries2 + 1, queries3);
72      assertEquals(1, cc.count());
73      int queries4 = getDb().getQueryCount();
74      assertEquals(queries3, queries4);
75    }
76  
77    /**
78     * @see org.melati.poem.CachedCount#CachedCount(Table, String)
79     */
80    public void testCachedCountTableString() {
81      int queries = getDb().getQueryCount();
82      CachedCount cc = new CachedCount(getDb().getUserTable(), 
83              getDb().getUserTable().troidColumn().fullQuotedName() + " = 0");
84      int queries2 = getDb().getQueryCount();
85      assertEquals(queries, queries2);
86      assertEquals(1, cc.count());
87      int queries3 = getDb().getQueryCount();
88      assertEquals(queries2 + 1, queries3);
89      assertEquals(1, cc.count());
90      int queries4 = getDb().getQueryCount();
91      assertEquals(queries3, queries4);
92  
93    }
94  
95    /**
96     * @see org.melati.poem.CachedCount#count()
97     */
98    public void testCount() {
99      int queries = getDb().getQueryCount();
100     CachedCount cc = new CachedCount(getDb().getUserTable(), null, null);
101     int queries2 = getDb().getQueryCount();
102     assertEquals(queries, queries2);
103     assertEquals(2, cc.count());
104     int queries3 = getDb().getQueryCount();
105     assertEquals(queries2 + 1, queries3);
106     assertEquals(2, cc.count());
107     int queries4 = getDb().getQueryCount();
108     assertEquals(queries3, queries4);
109   }
110 
111 }