KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mmbase > storage > search > implementation > BasicStepFieldTest


1 package org.mmbase.storage.search.implementation;
2
3 import junit.framework.*;
4
5 import org.mmbase.bridge.Field;
6 import org.mmbase.module.core.*;
7 import org.mmbase.module.corebuilders.FieldDefs;
8 import org.mmbase.storage.search.*;
9
10 /**
11  * JUnit tests.
12  *
13  * @author Rob van Maris
14  * @version $Revision: 1.9 $
15  */

16 public class BasicStepFieldTest extends TestCase {
17
18     private final static String JavaDoc TEST_ALIAS = "abcd";
19
20     private final static String JavaDoc BUILDER_NAME1 = "images";
21     private final static String JavaDoc BUILDER_NAME2 = "news";
22     private final static String JavaDoc FIELD_NAME1 = "title";
23
24     /** Test instance. */
25     private BasicStepField instance;
26
27     /** Associated step. */
28     private BasicStep step;
29
30     /** MMBase instance. */
31     private MMBase mmbase = null;
32
33     /** Builder examples. */
34     private MMObjectBuilder builder1 = null;
35     private MMObjectBuilder builder2 = null;
36
37     /** FieldDefs example. */
38     private FieldDefs fieldDefs = null;
39
40     public BasicStepFieldTest(java.lang.String JavaDoc testName) {
41         super(testName);
42     }
43
44     public static void main(java.lang.String JavaDoc[] args) {
45         junit.textui.TestRunner.run(suite());
46         System.exit(0);
47     }
48
49     /**
50      * Sets up before each test.
51      */

52     public void setUp() throws Exception JavaDoc {
53         MMBaseContext.init();
54         mmbase = MMBase.getMMBase();
55         builder1 = mmbase.getBuilder(BUILDER_NAME1);
56         builder2 = mmbase.getBuilder(BUILDER_NAME2);
57         fieldDefs = builder1.getField(FIELD_NAME1);
58         step = new BasicStep(builder1);
59         instance = new BasicStepField(step, fieldDefs);
60     }
61
62     /**
63      * Tears down after each test.
64      */

65     public void tearDown() throws Exception JavaDoc {}
66
67     /** Test of constructor. **/
68     public void testConstructor() {
69         Step step2 = new BasicStep(builder2);
70         // FieldDefs object does not belong to step, should throw IllegalArgumentException.
71
try {
72             new BasicStepField(step2, fieldDefs);
73             fail("FieldDefs object does not belong to step, should throw IllegalArgumentException.");
74         } catch (IllegalArgumentException JavaDoc e) {}
75
76         // Null step, should throw IllegalArgumentException.
77
try {
78             new BasicStepField(null, fieldDefs);
79             fail("Null step, should throw IllegalArgumentException.");
80         } catch (IllegalArgumentException JavaDoc e) {}
81
82         // Null field, should throw IllegalArgumentException.
83
try {
84             new BasicStepField(step2, null);
85             fail("Null field, should throw IllegalArgumentException.");
86         } catch (IllegalArgumentException JavaDoc e) {}
87     }
88
89     /** Test of setAlias method, of class org.mmbase.storage.search.implementation.BasicStepField. */
90     public void testSetAlias() {
91         // Default is null.
92
assertTrue(instance.getAlias() == null);
93
94         BasicStepField result = instance.setAlias(TEST_ALIAS);
95         String JavaDoc alias = instance.getAlias();
96         assertTrue(alias != null);
97         assertTrue(alias.equals(TEST_ALIAS));
98         assertTrue(result == instance);
99
100         // Null value, should not throw IllegalArgumentException.
101
instance.setAlias(null);
102         assertTrue(instance.getAlias() == null);
103
104         // Blank spaces, should throw IllegalArgumentException.
105
try {
106             instance.setAlias(" ");
107             fail("Null value, should throw IllegalArgumentException.");
108         } catch (IllegalArgumentException JavaDoc e) {}
109     }
110
111     /** Test of getFieldName method, of class org.mmbase.storage.search.implementation.BasicStepField. */
112     public void testGetFieldName() {
113         String JavaDoc fieldName = instance.getFieldName();
114         assertTrue(fieldName != null);
115         assertTrue(fieldName.equals(FIELD_NAME1));
116     }
117
118     /** Test of getAlias method, of class org.mmbase.storage.search.implementation.BasicStepField. */
119     public void testGetAlias() {
120         // Same as:
121
testSetAlias();
122     }
123
124     /** Test of getStep method, of class org.mmbase.storage.search.implementation.BasicStepField. */
125     public void testGetStep() {
126         assertTrue(instance.getStep() == step);
127     }
128
129     /** Test of getType method, of class org.mmbase.storage.search.implementation.BasicStepField.
130      */

131     public void testGetType() {
132
133         MMObjectBuilder images = mmbase.getBuilder("images");
134         FieldDefs imagesNumber = images.getField("number");
135         FieldDefs imagesOwner = images.getField("owner");
136         FieldDefs imagesTitle = images.getField("title");
137         FieldDefs imagesDescription = images.getField("description");
138         FieldDefs imagesHandle = images.getField("handle");
139         FieldDefs imagesItype = images.getField("itype");
140
141         Step step = new BasicStep(images);
142         instance = new BasicStepField(step, imagesNumber);
143         assertTrue(instance.getType() == Field.TYPE_NODE);
144
145         instance = new BasicStepField(step, imagesOwner);
146         assertTrue(instance.getType() == Field.TYPE_STRING);
147
148         instance = new BasicStepField(step, imagesTitle);
149         assertTrue(instance.getType() == Field.TYPE_STRING);
150
151         instance = new BasicStepField(step, imagesDescription);
152         assertTrue(instance.getType() == Field.TYPE_STRING);
153
154         instance = new BasicStepField(step, imagesHandle);
155         assertTrue(instance.getType() == Field.TYPE_BINARY);
156
157         instance = new BasicStepField(step, imagesItype);
158         assertTrue(instance.getType() == Field.TYPE_STRING);
159     }
160
161     /** Test of testValue method, of class org.mmbase.storage.search.implementation.BasicStepField. */
162     public void testTestValue() {
163         MMObjectBuilder images = mmbase.getBuilder("images");
164         FieldDefs imagesNumber = images.getField("number");
165         FieldDefs imagesHandle = images.getField("handle");
166         FieldDefs imagesOwner = images.getField("owner");
167
168         Step step = new BasicStep(images);
169         // NODE type field.
170
instance = new BasicStepField(step, imagesNumber);
171         BasicStepField.testValue(new Integer JavaDoc(123), instance);
172         BasicStepField.testValue(new Long JavaDoc(123), instance);
173         BasicStepField.testValue(new Float JavaDoc(123), instance);
174         BasicStepField.testValue(new Double JavaDoc(123), instance);
175         try {
176             // String value for NODE field, should throw IllegalArgumentException.
177
BasicStepField.testValue("123", instance);
178             fail("String value for NODE field, should throw IllegalArgumentException.");
179         } catch (IllegalArgumentException JavaDoc e) {}
180
181         try {
182             BasicStepField.testValue(new byte[] {(byte) 123}, instance);
183             fail("byte[] value for NODE field, should throw IllegalArgumentException.");
184         } catch (IllegalArgumentException JavaDoc e) {}
185
186         // BYTE type field.
187
instance = new BasicStepField(step, imagesHandle);
188         BasicStepField.testValue(new byte[] {(byte) 123}, instance);
189         try {
190             // String value for BYTE field, should throw IllegalArgumentException.
191
BasicStepField.testValue(new Integer JavaDoc(123), instance);
192             fail("Integer value for BYTE field, should throw IllegalArgumentException.");
193         } catch (IllegalArgumentException JavaDoc e) {}
194         try {
195             BasicStepField.testValue(new Long JavaDoc(123), instance);
196             fail("Long value for BYTE field, should throw IllegalArgumentException.");
197         } catch (IllegalArgumentException JavaDoc e) {}
198
199         try {
200             BasicStepField.testValue(new Double JavaDoc(123), instance);
201             fail("Double value for BYTE field, should throw IllegalArgumentException.");
202         } catch (IllegalArgumentException JavaDoc e) {}
203         try {
204             BasicStepField.testValue("123", instance);
205             fail("String value for BYTE field, should throw IllegalArgumentException.");
206         } catch (IllegalArgumentException JavaDoc e) {}
207
208
209         // STRING type field.
210
instance = new BasicStepField(step, imagesOwner);
211         try {
212             // Byte value for STRING field, should throw IllegalArgumentException.
213
BasicStepField.testValue(new byte[] {(byte) 123}, instance);
214             fail("Byte value for STRING field, should throw IllegalArgumentException.");
215         } catch (IllegalArgumentException JavaDoc e) {}
216         try {
217             // Integer value for STRING field, should throw IllegalArgumentException.
218
BasicStepField.testValue(new Integer JavaDoc(123), instance);
219             fail("Integer value for STRING field, should throw IllegalArgumentException.");
220         } catch (IllegalArgumentException JavaDoc e) {}
221         try {
222             // Long value for STRING field, should throw IllegalArgumentException.
223
BasicStepField.testValue(new Long JavaDoc(123), instance);
224             fail("Long value for STRING field, should throw IllegalArgumentException.");
225         } catch (IllegalArgumentException JavaDoc e) {}
226         try {
227             // Float value for STRING field, should throw IllegalArgumentException.
228
BasicStepField.testValue(new Float JavaDoc(123), instance);
229             fail("Float value for STRING field, should throw IllegalArgumentException.");
230         } catch (IllegalArgumentException JavaDoc e) {}
231         try {
232             // Double value for STRING field, should throw IllegalArgumentException.
233
BasicStepField.testValue(new Double JavaDoc(123), instance);
234             fail("Double value for STRING field, should throw IllegalArgumentException.");
235         } catch (IllegalArgumentException JavaDoc e) {}
236         BasicStepField.testValue("123", instance);
237     }
238
239     /** Test of equalFieldValues method, of class org.mmbase.storage.search.implementation.BasicStepField. */
240     public void testEqualFieldValues() {
241         assertTrue(BasicStepField.equalFieldValues(null, null));
242         assertTrue(!BasicStepField.equalFieldValues("abc def", null));
243         assertTrue(!BasicStepField.equalFieldValues(null, "abc def"));
244         assertTrue(BasicStepField.equalFieldValues("abc def", "abc def"));
245         assertTrue(!BasicStepField.equalFieldValues(new Integer JavaDoc(123), "abc def"));
246         assertTrue(!BasicStepField.equalFieldValues("abc def", new Integer JavaDoc(123)));
247         assertTrue(BasicStepField.equalFieldValues(new Integer JavaDoc(123), new Integer JavaDoc(123)));
248         assertTrue(BasicStepField.equalFieldValues(new Double JavaDoc(123), new Integer JavaDoc(123)));
249         assertTrue(BasicStepField.equalFieldValues(new Integer JavaDoc(123), new Double JavaDoc(123)));
250         assertTrue(BasicStepField.equalFieldValues(new Double JavaDoc(123), new Double JavaDoc(123)));
251         assertTrue(!BasicStepField.equalFieldValues(null, new Double JavaDoc(123)));
252         assertTrue(!BasicStepField.equalFieldValues(new Double JavaDoc(123), null));
253     }
254
255     /** Test of equals method, of class org.mmbase.storage.search.implementation.BasicStepField. */
256     public void testEquals() {
257         // TODO: implement test
258
}
259
260     /** Test of hashCode method, of class org.mmbase.storage.search.implementation.BasicStepField. */
261     public void testHashCode() {
262         // TODO: implement test
263
}
264
265     /** Test of toString method, of class org.mmbase.storage.search.implementation.BasicStepField. */
266     public void testToString() {
267         // Null alias.
268
assertTrue(instance.toString(),
269                    instance.toString().equals(step.getTableName() + "." + instance.getFieldName()));
270         // Set step alias.
271
step.setAlias("abdef");
272         assertTrue(instance.toString(),
273                    instance.toString().equals(step.getAlias() + "." + instance.getFieldName()));
274
275         // Set field alias.
276
instance.setAlias("fedbac");
277         assertTrue(instance.toString(),
278                    instance.toString().equals(step.getAlias() + "." + instance.getFieldName() + " as " + instance.getAlias()));
279     }
280
281     public static Test suite() {
282         TestSuite suite = new TestSuite(BasicStepFieldTest.class);
283
284         return suite;
285     }
286
287 }
288
Popular Tags