source: trunk/quest-ui-core-test/src/test/java/de/ugoe/cs/quest/ui/GlobalDataContainerTest.java @ 666

Last change on this file since 666 was 666, checked in by sherbold, 12 years ago
  • Property svn:mime-type set to text/plain
File size: 9.7 KB
Line 
1package de.ugoe.cs.quest.ui;
2
3import static org.junit.Assert.assertEquals;
4import static org.junit.Assert.assertFalse;
5import static org.junit.Assert.assertNotNull;
6import static org.junit.Assert.assertNull;
7import static org.junit.Assert.assertSame;
8import static org.junit.Assert.assertTrue;
9import static org.junit.Assert.fail;
10
11import java.io.ByteArrayInputStream;
12import java.io.ByteArrayOutputStream;
13import java.io.InputStream;
14import java.io.ObjectInputStream;
15import java.io.ObjectOutputStream;
16import java.lang.reflect.Constructor;
17import java.lang.reflect.Modifier;
18import java.util.Collection;
19import java.util.LinkedList;
20
21import org.junit.Before;
22import org.junit.Test;
23
24/**
25 * The class <code>WindowsEventTest</code> contains tests for the class
26 * <code>{@link WindowsEvent}</code>.
27 *
28 * @author Steffen Herbold
29 * @version 1.0
30 */
31public class GlobalDataContainerTest {
32
33    private static void assertCollectionContent(Collection<?> c1, Collection<?> c2) {
34        assertEquals(c1.size(), c2.size());
35        for (Object obj : c1) {
36            assertTrue(c2.contains(obj));
37        }
38    }
39
40    @Test
41    public void testGlobalDataContainer_1() throws Exception {
42        // assure that all constructors are private
43        Constructor<?>[] constructors = GlobalDataContainer.class.getDeclaredConstructors();
44        for (int i = 0; i < constructors.length; i++) {
45            int modifier = constructors[i].getModifiers();
46            if (modifier != Modifier.PRIVATE) {
47                fail(constructors[i].getName() + " - " + Modifier.toString(modifier));
48            }
49        }
50    }
51
52    @Test
53    public void testGetInstance_1() throws Exception {
54        GlobalDataContainer instance1 = GlobalDataContainer.getInstance();
55        GlobalDataContainer instance2 = GlobalDataContainer.getInstance();
56        assertNotNull(instance1);
57        assertSame(instance1, instance2);
58    }
59
60    @Test
61    public void testDatahandling_1() throws Exception {
62        // test is data can be added and retrieved as expected
63        GlobalDataContainer instance = GlobalDataContainer.getInstance();
64
65        String key1 = "key1";
66        String data1 = "data1";
67        String key2 = "key2";
68        String data2 = "data2";
69        String key3 = "key3";
70        Integer data3 = 1;
71        String key4 = "key4";
72        Integer data4 = 2;
73        String key5 = "key5";
74        Integer data5 = 3;
75
76        assertFalse(instance.addData(key1, data1));
77        assertFalse(instance.addData(key2, data2));
78        assertFalse(instance.addData(key3, data3));
79        assertFalse(instance.addData(key4, data4));
80        assertFalse(instance.addData(key5, data5));
81
82        assertEquals(data1, instance.getData(key1));
83        assertEquals(data2, instance.getData(key2));
84        assertEquals(data3, instance.getData(key3));
85        assertEquals(data4, instance.getData(key4));
86        assertEquals(data5, instance.getData(key5));
87    }
88
89    @Test
90    public void testDatahandling_2() throws Exception {
91        // test is data can be added, overwritten, and retrieved as expected
92        GlobalDataContainer instance = GlobalDataContainer.getInstance();
93
94        String key1 = "key1";
95        String data1 = "data1";
96        String data1changed = "data1changed";
97        String key2 = "key2";
98        String data2 = "data2";
99        String data2changed = "data2changed";
100        String key3 = "key3";
101        Integer data3 = 1;
102        Integer data3changed = 11;
103        String key4 = "key4";
104        Integer data4 = 2;
105        Integer data4changed = 22;
106        String key5 = "key5";
107        Integer data5 = 3;
108        Integer data5changed = 33;
109
110        assertFalse(instance.addData(key1, data1));
111        assertFalse(instance.addData(key2, data2));
112        assertFalse(instance.addData(key3, data3));
113        assertFalse(instance.addData(key4, data4));
114        assertFalse(instance.addData(key5, data5));
115
116        assertTrue(instance.addData(key1, data1changed));
117        assertTrue(instance.addData(key2, data2changed));
118        assertTrue(instance.addData(key3, data3changed));
119        assertTrue(instance.addData(key4, data4changed));
120        assertTrue(instance.addData(key5, data5changed));
121
122        assertEquals(data1changed, instance.getData(key1));
123        assertEquals(data2changed, instance.getData(key2));
124        assertEquals(data3changed, instance.getData(key3));
125        assertEquals(data4changed, instance.getData(key4));
126        assertEquals(data5changed, instance.getData(key5));
127    }
128
129    @Test
130    public void testDatahandling_3() throws Exception {
131        // test is data can be removed as expected
132        GlobalDataContainer instance = GlobalDataContainer.getInstance();
133
134        String key1 = "key1";
135        String data1 = "data1";
136        String key2 = "key2";
137        String data2 = "data2";
138        String key3 = "key3";
139        Integer data3 = 1;
140        String key4 = "key4";
141        Integer data4 = 2;
142        String key5 = "key5";
143        Integer data5 = 3;
144
145        assertFalse(instance.addData(key1, data1));
146        assertFalse(instance.addData(key2, data2));
147        assertFalse(instance.addData(key3, data3));
148        assertFalse(instance.addData(key4, data4));
149        assertFalse(instance.addData(key5, data5));
150
151        assertFalse(instance.removeData("keyNotFound"));
152        assertTrue(instance.removeData(key1));
153
154        assertNull(instance.getData(key1));
155    }
156
157    @Test
158    public void testDatahandling_4() throws Exception {
159        // test is data can be removed as expected
160        GlobalDataContainer instance = GlobalDataContainer.getInstance();
161
162        String key1 = "key1";
163        String data1 = "data1";
164        String key2 = "key2";
165        String data2 = "data2";
166        String key3 = "key3";
167        Integer data3 = 1;
168        String key4 = "key4";
169        Integer data4 = 2;
170        String key5 = "key5";
171        Integer data5 = 3;
172
173        assertFalse(instance.addData(key1, data1));
174        assertFalse(instance.addData(key2, data2));
175        assertFalse(instance.addData(key3, data3));
176        assertFalse(instance.addData(key4, data4));
177        assertFalse(instance.addData(key5, data5));
178
179        assertNull(instance.getData("keyNotFound"));
180    }
181
182    @Test
183    public void testReset_1() throws Exception {
184        // check if data container is empty after reset
185        GlobalDataContainer instance = GlobalDataContainer.getInstance();
186        String key1 = "key1";
187        String data1 = "data1";
188        String key2 = "key2";
189        String data2 = "data2";
190        String key3 = "key3";
191        Integer data3 = 1;
192        String key4 = "key4";
193        Integer data4 = 2;
194        String key5 = "key5";
195        Integer data5 = 3;
196
197        assertFalse(instance.addData(key1, data1));
198        assertFalse(instance.addData(key2, data2));
199        assertFalse(instance.addData(key3, data3));
200        assertFalse(instance.addData(key4, data4));
201        assertFalse(instance.addData(key5, data5));
202
203        instance.reset();
204
205        assertNull(instance.getData(key1));
206        assertNull(instance.getData(key2));
207        assertNull(instance.getData(key3));
208        assertNull(instance.getData(key4));
209        assertNull(instance.getData(key5));
210    }
211
212    @Test
213    public void testGetAllKeys_1() throws Exception {
214        // check if data container is empty after reset
215        GlobalDataContainer instance = GlobalDataContainer.getInstance();
216        String key1 = "key1";
217        String data1 = "data1";
218        String key2 = "key2";
219        String data2 = "data2";
220        String key3 = "key3";
221        Integer data3 = 1;
222        String key4 = "key4";
223        Integer data4 = 2;
224        String key5 = "key5";
225        Integer data5 = 3;
226
227        assertFalse(instance.addData(key1, data1));
228        assertFalse(instance.addData(key2, data2));
229        assertFalse(instance.addData(key3, data3));
230        assertFalse(instance.addData(key4, data4));
231        assertFalse(instance.addData(key5, data5));
232
233        Collection<String> expected = new LinkedList<String>();
234        expected.add(key1);
235        expected.add(key2);
236        expected.add(key3);
237        expected.add(key4);
238        expected.add(key5);
239
240        assertCollectionContent(expected, instance.getAllKeys());
241    }
242
243    @Test
244    public void testSerialization_1() throws Exception {
245        GlobalDataContainer instance = GlobalDataContainer.getInstance();
246        String key1 = "key1";
247        String data1 = "data1";
248        String key2 = "key2";
249        String data2 = "data2";
250        String key3 = "key3";
251        Integer data3 = 1;
252        String key4 = "key4";
253        Integer data4 = 2;
254        String key5 = "key5";
255        Integer data5 = 3;
256
257        String key6 = "key6";
258        Double data6 = 6.0d;
259
260        assertFalse(instance.addData(key1, data1));
261        assertFalse(instance.addData(key2, data2));
262        assertFalse(instance.addData(key3, data3));
263        assertFalse(instance.addData(key4, data4));
264        assertFalse(instance.addData(key5, data5));
265
266        // serialize
267        ByteArrayOutputStream out = new ByteArrayOutputStream();
268        ObjectOutputStream oos = new ObjectOutputStream(out);
269        oos.writeObject(instance);
270        oos.close();
271
272        instance.reset();
273        assertFalse(instance.addData(key6, data6));
274
275        // deserialize
276        byte[] pickled = out.toByteArray();
277        InputStream in = new ByteArrayInputStream(pickled);
278        ObjectInputStream ois = new ObjectInputStream(in);
279        ois.readObject();
280        ois.close();
281
282        // test the result
283        assertEquals(data1, instance.getData(key1));
284        assertEquals(data2, instance.getData(key2));
285        assertEquals(data3, instance.getData(key3));
286        assertEquals(data4, instance.getData(key4));
287        assertEquals(data5, instance.getData(key5));
288        assertNull(instance.getData(key6));
289    }
290
291    @Before
292    public void setUp() {
293        GlobalDataContainer.getInstance().reset();
294    }
295
296}
Note: See TracBrowser for help on using the repository browser.