View Javadoc
1   package org.melati.poem.test;
2   
3   import java.util.Collection;
4   import java.util.Iterator;
5   import java.util.NoSuchElementException;
6   
7   import org.melati.poem.Setting;
8   import org.melati.poem.TableMap;
9   import org.melati.poem.User;
10  
11  /**
12   * @author timp
13   * @since 8 Jun 2007
14   *
15   */
16  public class TableMapTest extends PoemTestCase {
17    
18    private TableMap<User> it;
19    private TableMap<Setting> noArg;
20  
21    public TableMapTest(String name) {
22      super(name);
23    }
24  
25    protected void setUp() throws Exception {
26      super.setUp();
27      createObjectsUnderTest();
28    }
29  
30    protected void createObjectsUnderTest() {
31      it = new TableMap<User>(getDb().getUserTable());
32      noArg = new TableMap<Setting>();
33    }
34  
35    protected TableMap<User> getObjectUnderTest() { 
36      return it;
37    }
38    protected TableMap<Setting> getNoArgObjectUnderTest() { 
39      return noArg;
40    }
41  
42    /** 
43     * @see org.melati.poem.test.PoemTestCase#tearDown()
44     */
45    protected void tearDown() throws Exception {
46      super.tearDown();
47    }
48  
49    /**
50     * Test method for {@link org.melati.poem.TableMap#TableMap()}.
51     */
52    public void testTableMap() {
53      
54    }
55  
56    /**
57     * Test method for {@link org.melati.poem.TableMap#TableMap(org.melati.poem.Table)}.
58     */
59    public void testTableMapTable() {
60      
61    }
62  
63    /**
64     * Test method for {@link org.melati.poem.TableMap#getTable()}.
65     */
66    public void testGetTable() {
67      System.err.println(getObjectUnderTest().getClass());
68      assertEquals(getDb().getUserTable(), getObjectUnderTest().getTable());
69      assertNull(getNoArgObjectUnderTest().getTable());
70      
71    }
72  
73    /**
74     * Test method for {@link org.melati.poem.TableMap#setTable(org.melati.poem.Table)}.
75     */
76    public void testSetTable() {
77      getObjectUnderTest().setTable(getDb().getUserTable());
78      assertEquals(getDb().getUserTable(), getObjectUnderTest().getTable());
79      
80    }
81  
82    /**
83     * Test method for {@link org.melati.poem.TableMap#clear()}.
84     */
85    public void testClear() {
86      try { 
87        getObjectUnderTest().clear();
88        fail("Should have bombed");
89      } catch (UnsupportedOperationException e) { 
90        e = null;
91      }
92    }
93  
94    /**
95     * Test method for {@link org.melati.poem.TableMap#containsKey(java.lang.Object)}.
96     */
97    public void testContainsKey() {
98      assertTrue(getObjectUnderTest().containsKey(new Integer(0)));
99      try { 
100       getNoArgObjectUnderTest().containsKey(new Integer(0));
101       fail("Should have bombed");
102     } catch (NullPointerException e) { 
103       e = null;
104     }    
105   }
106 
107   /**
108    * Test method for {@link org.melati.poem.TableMap#containsValue(java.lang.Object)}.
109    */
110   public void testContainsValue() {
111     assertTrue(getObjectUnderTest().containsValue(getDb().getUserTable().administratorUser()));
112     try { 
113       getNoArgObjectUnderTest().containsValue(getDb().getUserTable().administratorUser());
114       fail("Should have bombed");
115     } catch (NullPointerException e) { 
116       e = null;
117     }
118   }
119 
120   /**
121    * Test method for {@link org.melati.poem.TableMap#entrySet()}.
122    */
123   public void testEntrySet() {
124     try { 
125       getObjectUnderTest().entrySet();
126       fail("Should have bombed");
127     } catch (UnsupportedOperationException e) { 
128       e = null;
129     }    
130   }
131 
132   /**
133    * Test method for {@link org.melati.poem.TableMap#get(java.lang.Object)}.
134    */
135   public void testGet() {
136     assertEquals(getDb().getUserTable().administratorUser(),getObjectUnderTest().get(new Integer(1)));
137     try { 
138       getNoArgObjectUnderTest().get(new Integer(0));
139       fail("Should have bombed");
140     } catch (NullPointerException e) { 
141       e = null;
142     }
143   }
144 
145   /**
146    * Test method for {@link org.melati.poem.TableMap#isEmpty()}.
147    */
148   public void testIsEmpty() {
149     assertFalse(getObjectUnderTest().isEmpty());
150     getNoArgObjectUnderTest().setTable(getDb().getSettingTable());
151     //System.err.println(getObjectUnderTest().size());
152     assertFalse(getObjectUnderTest().isEmpty());    
153   }
154 
155   /**
156    * Test method for {@link org.melati.poem.TableMap#keySet()}.
157    */
158   public void testKeySet() {
159     try { 
160       getObjectUnderTest().keySet();
161       fail("Should have bombed");
162     } catch (UnsupportedOperationException e) { 
163       e = null;
164     }        
165   }
166 
167   /**
168    * Test method for {@link org.melati.poem.TableMap#put(java.lang.Object, java.lang.Object)}.
169    */
170   public void testPut() {
171     /*
172      * So generics are good for something 
173     try { 
174       getObjectUnderTest().put("1","1");
175       fail("Should have bombed");
176     } catch (UnsupportedOperationException e) { 
177       e = null;
178     }  
179     */          
180   }
181 
182   /**
183    * Test method for {@link org.melati.poem.TableMap#putAll(java.util.Map)}.
184    */
185   public void testPutAll() {
186     try { 
187       getNoArgObjectUnderTest().putAll(noArg);
188       fail("Should have bombed");
189     } catch (UnsupportedOperationException e) { 
190       e = null;
191     }                
192   }
193 
194   /**
195    * Test method for {@link org.melati.poem.TableMap#remove(java.lang.Object)}.
196    */
197   public void testRemove() {
198     User u = (User)getDb().getUserTable().newPersistent();
199     u.setLogin("test");
200     u.setName("Test");
201     u.setPassword("test");
202     assertFalse(getObjectUnderTest().containsValue(u));
203     u.makePersistent();
204     assertTrue(getObjectUnderTest().containsValue(u));
205     User old = (User)getObjectUnderTest().remove(u.getTroid());
206     assertFalse(getObjectUnderTest().containsValue(u));
207     assertFalse(getObjectUnderTest().containsValue(old));
208     // Its status is DELETED
209     assertFalse(old.statusExistent());
210     assertFalse(old.statusNonexistent());
211 
212     assertFalse(u.statusExistent());
213     assertFalse(u.statusNonexistent());
214   }
215 
216   /**
217    * Test method for {@link org.melati.poem.TableMap#size()}.
218    */
219   public void testSize() {
220     assertEquals(2, getObjectUnderTest().size());
221   }
222 
223   /**
224    * Test method for {@link org.melati.poem.TableMap#values()}.
225    */
226   public void testValues() {
227     Collection<User> c = getObjectUnderTest().values();
228     Iterator<User> i = c.iterator(); 
229     assertEquals("_guest_",i.next().toString());
230     assertEquals("_administrator_",i.next().toString());
231     try { 
232       i.next();
233       fail("Should have bombed");
234     } catch (NoSuchElementException e) { 
235       e = null;
236     }
237   }
238 
239 }