View Javadoc
1   /**
2    * 
3    */
4   package org.melati.poem.test;
5   
6   import org.melati.poem.PoemTypeFactory;
7   import org.melati.poem.Setting;
8   import org.melati.poem.SettingTable.UnsetException;
9   
10  /**
11   * @author timp
12   */
13  public class SettingTableTest extends PoemTestCase {
14  
15    public SettingTableTest(String name) {
16      super(name);
17    }
18  
19    protected void setUp()
20        throws Exception {
21      super.setUp();
22    }
23  
24    protected void tearDown()
25        throws Exception {
26      super.tearDown();
27    }
28  
29    /**
30     * @see org.melati.poem.SettingTable#postInitialise()
31     */
32    public void testPostInitialise() {
33  
34    }
35  
36    /**
37     * @see org.melati.poem.SettingTable#SettingTable
38     */
39    public void testSettingTable() {
40  
41    }
42  
43    /**
44     * @see org.melati.poem.SettingTable#getCooked(String)
45     */
46    public void testGetCooked() {
47      if (!getDb().getDbms().canDropColumns()) {
48        return;
49      }
50      //getDb().setLogSQL(true);
51      Setting stringSetting = getDb().getSettingTable().ensure("stringSetting",
52          "set", "String", "A set string setting");
53      stringSetting.setValue("new");
54      assertEquals("new", stringSetting.getCooked());
55      assertEquals("new", (String) getDb().getSettingTable().getCooked(
56      "stringSetting"));
57      assertNull(getDb().getSettingTable().getCooked("unsetSetting"));
58      Setting setting2 = getDb().getSettingTable().ensure("nullIntegerSetting", null, "Null Integer",
59           "A null Integer setting");
60      assertNull(getDb().getSettingTable().getCooked("nullIntegerSetting"));
61      // Second time from cache
62      assertNull(getDb().getSettingTable().getCooked("nullIntegerSetting"));
63      Setting setting3 = getDb().getSettingTable().ensure("integerSettingA", 13, "Integer",
64           "A set Integer setting");
65      assertEquals(new Integer(13), getDb().getSettingTable().getCooked(
66           "integerSettingA"));
67      assertEquals(new Integer(13), getDb().getSettingTable().getCooked(
68           "integerSettingA"));
69      
70      stringSetting.delete();
71      setting2.delete();
72      setting3.delete();
73    }
74  
75    /**
76     * @see org.melati.poem.SettingTable#get(String)
77     */
78    public void testGet() {
79      if (!getDb().getDbms().canDropColumns()) {
80        return;
81      }
82      Setting setting1 = getDb().getSettingTable().ensure("integerSettingG", 12, "Integer",
83          "A set Integer setting");
84      assertEquals("12", getDb().getSettingTable().get("integerSettingG"));
85      assertNull(getDb().getSettingTable().get("unsetSetting"));
86      setting1.delete();
87  
88    }
89  
90    /**
91     * @see org.melati.poem.SettingTable#getOrDie(String)
92     */
93    public void testGetOrDie() {
94      if (!getDb().getDbms().canDropColumns()) {
95        return;
96      }
97      Setting s = getDb().getSettingTable().ensure("integerSettingGOD", 12, "Integer",
98      "A set Integer setting");
99      assertEquals("12", (String) getDb().getSettingTable().getOrDie("integerSettingGOD"));
100     try {
101       getDb().getSettingTable().getOrDie("unsetSetting");
102       fail("Should have blown up");
103     } catch (UnsetException e) {
104       e = null;
105     }
106     s.delete();
107   }
108 
109   /**
110    * @see org.melati.poem.SettingTable# ensure(String, PoemTypeFactory, Object,
111    *      String, String)
112    */
113   public void testEnsureStringPoemTypeFactoryObjectStringString() {
114     if (!getDb().getDbms().canDropColumns()) {
115       return;
116     }
117     Setting stringSetting1 = getDb().getSettingTable().ensure("stringSetting",
118         PoemTypeFactory.STRING, "set", "String", "A set string setting");
119     Setting stringSetting2 = getDb().getSettingTable().ensure("stringSetting",
120         "set", "String", "A set string setting");
121     assertEquals(stringSetting1, stringSetting2);
122     stringSetting1.delete();
123 
124     
125     Setting integerSetting1 = getDb().getSettingTable().ensure(
126         "integerSetting", PoemTypeFactory.INTEGER, new Integer(13), "Integer",
127         "An integer setting");
128     Setting integerSetting2 = getDb().getSettingTable().ensure(
129         "integerSetting", 13, "Integer",
130         "An integer setting");
131     assertEquals(integerSetting1, integerSetting2);
132     integerSetting1.delete();
133     Setting booleanSetting1 = getDb().getSettingTable().ensure(
134         "booleanSetting", PoemTypeFactory.BOOLEAN, new Boolean(true), "Boolean",
135         "A boolean setting");
136     Setting booleanSetting2 = getDb().getSettingTable().ensure(
137         "booleanSetting", true, "Boolean",
138         "A boolean setting");
139     assertEquals(booleanSetting1, booleanSetting2);
140     booleanSetting1.delete();
141   }
142 
143   /**
144    * @see org.melati.poem.SettingTable# ensure(String, String, String, String)
145    */
146   public void testEnsureStringStringStringString() {
147 
148   }
149 
150   /**
151    * @see org.melati.poem.SettingTable# ensure(String, int, String, String)
152    */
153   public void testEnsureStringIntStringString() {
154 
155   }
156 
157   /**
158    * @see org.melati.poem.SettingTable# ensure(String, boolean, String, String)
159    */
160   public void testEnsureStringBooleanStringString() {
161 
162   }
163 
164 }