1
2
3
4 package org.melati.poem.test;
5
6 import java.sql.Date;
7
8 import org.melati.poem.PoemThread;
9 import org.melati.poem.PoemTypeFactory;
10 import org.melati.poem.Setting;
11 import org.melati.poem.Setting.SettingTypeMismatchException;
12 import org.melati.poem.Setting.SettingValidationException;
13
14
15
16
17
18 public class SettingTest extends EverythingTestCase {
19
20
21
22
23
24
25 public SettingTest(String name) {
26 super(name);
27 }
28
29
30
31
32 protected void setUp() throws Exception {
33 super.setUp();
34 }
35
36
37
38
39 protected void tearDown() throws Exception {
40 super.tearDown();
41 }
42
43
44
45
46 public void testSetValue() {
47 Setting stringSetting = getDb().getSettingTable().ensure("stringSetting",
48 "set", "String", "A set string setting");
49 stringSetting.setValue("new");
50 assertEquals("new", stringSetting.getCooked());
51 stringSetting.setRaw("new2");
52 assertEquals("new2", stringSetting.getCooked());
53 stringSetting.delete();
54
55 Setting integerSetting = getDb().getSettingTable().ensure("integerSetting",
56 12, "Integer Setting", "A set Integer setting");
57 integerSetting.setRaw(new Integer(13));
58 assertEquals(new Integer(13), integerSetting.getCooked());
59 try {
60 integerSetting.setValue("ghgh");
61 fail("Should have blown up");
62 } catch (SettingValidationException e) {
63 e = null;
64 }
65
66 try {
67 integerSetting.setRaw("ghgh");
68 fail("Should have blown up");
69 } catch (SettingValidationException e) {
70 e = null;
71 }
72 integerSetting.delete();
73
74 }
75
76
77
78
79 public void testGetValueField() {
80 Setting s = new Setting(PoemTypeFactory.STRING.getCode(), "testSetting",
81 "eggs", "Test Setting", "A test setting");
82 getDb().getSettingTable().create(s);
83 assertEquals("eggs", s.getValueField().getCooked());
84
85 s.delete();
86
87 s = new Setting(PoemTypeFactory.PASSWORD.getCode(), "columnSetting",
88 "0", "Password", "A test setting");
89 getDb().getSettingTable().create(s);
90 s.setRaw(getDb().getUserTable().administratorUser().getPasswordField());
91 assertEquals("password: FIXME", s.getValueField().getCooked());
92 s.delete();
93
94
95
96 }
97
98
99
100
101
102 public void testSettingIntegerStringStringStringString() {
103 Setting s = new Setting(PoemTypeFactory.STRING.getCode(), "testSetting",
104 "eggs", "Test Setting", "A test setting");
105 getDb().getSettingTable().create(s);
106 assertEquals("eggs", s.getValue());
107 s.delete();
108 }
109
110
111
112
113 public void testSetRawObject() {
114 Setting s = new Setting(PoemTypeFactory.STRING.getCode(), "testSetting",
115 "eggs", "Test Setting", "A test setting");
116 getDb().getSettingTable().create(s);
117 assertEquals("eggs", s.getValue());
118 s.delete();
119
120 Setting integerSetting = getDb().getSettingTable().ensure("integerSetting",
121 12, "Integer", "A set Integer setting");
122 integerSetting.setRaw(new Integer(13));
123 assertEquals(new Integer(13), integerSetting.getCooked());
124 try {
125 integerSetting.setRaw("pp");
126 fail("Should have bombed.");
127 } catch (SettingValidationException e) {
128 e = null;
129 }
130
131 integerSetting.delete();
132
133 Setting timestampSetting = getDb().getSettingTable().ensure("timestampSetting",
134 PoemTypeFactory.TIMESTAMP, new Date(System.currentTimeMillis()), "Timestamp", "A timestamp setting");
135 try {
136 timestampSetting.setRaw("Not a date");
137 fail("Should have bombed");
138 } catch (SettingValidationException e) {
139 e = null;
140 }
141 timestampSetting.delete();
142 }
143
144
145
146
147
148
149
150
151 public void testGetRaw() {
152 Setting s = new Setting(PoemTypeFactory.STRING.getCode(), "testSetting",
153 "eggs", "Test Setting", "A test setting");
154 getDb().getSettingTable().create(s);
155 s.setNullable(true);
156
157
158 assertEquals("eggs", s.getValue());
159 s.setValue(null);
160 s.setNullable(false);
161 PoemThread.commit();
162
163
164 try {
165 s.getRaw();
166
167 } catch (SettingValidationException e) {
168 e.printStackTrace();
169 e = null;
170 }
171 s.delete();
172
173 }
174
175
176
177
178 public void testGetCooked() {
179
180 }
181
182
183
184
185 public void testGetIntegerCooked() {
186 Setting integerSetting = getDb().getSettingTable().ensure("integerSetting",
187 12, "Integer", "A set Integer setting");
188 integerSetting.setRaw(new Integer(13));
189 assertEquals(new Integer(13), integerSetting.getCooked());
190 assertEquals(new Integer(13), integerSetting.getIntegerCooked());
191 integerSetting.setNullable(true);
192 integerSetting.setRaw(null);
193 assertNull(integerSetting.getIntegerCooked());
194 integerSetting.setNullable(false);
195 try {
196 integerSetting.getIntegerCooked();
197 fail("Should have bombed.");
198 } catch (SettingTypeMismatchException e) {
199 e = null;
200 }
201
202 integerSetting.delete();
203 }
204
205
206
207
208 public void testGetStringCooked() {
209 Setting stringSetting = getDb().getSettingTable().ensure("stringSetting",
210 "set", "String", "A set String setting");
211 stringSetting.setRaw("v2");
212 assertEquals("v2", stringSetting.getCooked());
213 assertEquals("v2", stringSetting.getStringCooked());
214 stringSetting.setNullable(true);
215 stringSetting.setRaw(null);
216 assertNull(stringSetting.getStringCooked());
217 stringSetting.setNullable(false);
218 try {
219 stringSetting.getStringCooked();
220 fail("Should have bombed.");
221 } catch (SettingTypeMismatchException e) {
222 e = null;
223 }
224
225 stringSetting.delete();
226
227 }
228
229
230
231
232 public void testGetBooleanCooked() {
233 Setting booleanSetting = getDb().getSettingTable().ensure("booleanSetting",
234 false, "Boolean", "A set boolean setting");
235 booleanSetting.setRaw(Boolean.TRUE);
236 assertEquals(Boolean.TRUE, booleanSetting.getCooked());
237 assertEquals(Boolean.TRUE, booleanSetting.getBooleanCooked());
238 booleanSetting.setNullable(true);
239 booleanSetting.setRaw(null);
240 assertNull(booleanSetting.getBooleanCooked());
241 booleanSetting.setNullable(false);
242 try {
243 booleanSetting.getBooleanCooked();
244 fail("Should have bombed.");
245 } catch (SettingTypeMismatchException e) {
246 e = null;
247 }
248
249 booleanSetting.delete();
250 }
251
252
253
254
255 public void testGetValue() {
256 Setting userSetting = getDb().getSettingTable().ensure("userSetting",
257 PoemTypeFactory.TROID,
258 getDb().guestUser().getTroid(),
259 "User", "A User setting");
260 assertEquals(new Integer(0),userSetting.getCooked());
261 userSetting.delete();
262 }
263
264 }