source: trunk/quest-core-events-test/src/test/java/de/ugoe/cs/quest/eventcore/gui/SortedInteractionEventListTest.java @ 685

Last change on this file since 685 was 685, checked in by pharms, 12 years ago
  • renamed interaction event list to correctly state, what it is, a list of sorted interaction events
  • Property svn:executable set to *
File size: 19.6 KB
Line 
1
2package de.ugoe.cs.quest.eventcore.gui;
3
4import static org.junit.Assert.assertEquals;
5
6import java.util.ArrayList;
7import java.util.List;
8
9import org.junit.Test;
10
11import de.ugoe.cs.quest.eventcore.Event;
12import de.ugoe.cs.quest.eventcore.guimodel.AbstractDefaultGUIElement;
13import de.ugoe.cs.quest.eventcore.guimodel.IGUIElement;
14import de.ugoe.cs.quest.eventcore.guimodel.IGUIElementSpec;
15import de.ugoe.cs.tasktree.keyboardmaps.VirtualKey;
16
17/**
18 * @author Patrick Harms
19 */
20public class SortedInteractionEventListTest {
21
22    /**
23   *
24   */
25    @Test
26    public void testDifferentCombinationKeyCombinations() {
27        List<Event> checkList = new ArrayList<Event>();
28        SortedInteractionEventList eventList = new SortedInteractionEventList();
29
30        IGUIElement guiElement = new AbstractDefaultGUIElement(null, null) {
31
32            /**  */
33            private static final long serialVersionUID = 1L;
34
35            @Override
36            public void updateSpecification(IGUIElementSpec furtherSpec) {
37                // ignore
38            }
39
40            @Override
41            public String getPlatform() {
42                return "TEST";
43            }
44
45            @Override
46            public String getStringIdentifier() {
47                return "DUMMY";
48            }
49
50        };
51
52        // check first of all a normal pressing and releasing of A and B
53        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
54        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
55        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_B), guiElement));
56        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_B), guiElement));
57
58        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
59        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
60        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_B), guiElement));
61        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_B), guiElement));
62
63        assertEquals(checkList.size(), eventList.size());
64
65        for (int i = 0; i < checkList.size(); i++) {
66            assertEquals(checkList.get(i).getType(), eventList.get(i).getType());
67        }
68
69        // check what happens if A is pressed and not released before B is pressed
70        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_C), guiElement));
71        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_D), guiElement));
72        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_C), guiElement));
73        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_D), guiElement));
74
75        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_C), guiElement));
76        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_C), guiElement));
77        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_D), guiElement));
78        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_D), guiElement));
79
80        assertEquals(checkList.size(), eventList.size());
81
82        for (int i = 0; i < checkList.size(); i++) {
83            assertEquals(checkList.get(i).getType(), eventList.get(i).getType());
84        }
85
86        // now SHIFT is pressed and released after all keys are pressed
87        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
88        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_E), guiElement));
89        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_E), guiElement));
90        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_F), guiElement));
91        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_F), guiElement));
92        eventList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
93
94        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
95        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_E), guiElement));
96        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_E), guiElement));
97        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_F), guiElement));
98        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_F), guiElement));
99        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
100
101        assertEquals(checkList.size(), eventList.size());
102
103        for (int i = 0; i < checkList.size(); i++) {
104            assertEquals(checkList.get(i).getType(), eventList.get(i).getType());
105        }
106
107        // now SHIFT is released before the last key is released
108        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
109        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_G), guiElement));
110        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_G), guiElement));
111        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_H), guiElement));
112        eventList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
113        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_H), guiElement));
114
115        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
116        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_G), guiElement));
117        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_G), guiElement));
118        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_H), guiElement));
119        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_H), guiElement));
120        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
121
122        assertEquals(checkList.size(), eventList.size());
123
124        for (int i = 0; i < checkList.size(); i++) {
125            assertEquals(checkList.get(i).getType(), eventList.get(i).getType());
126        }
127
128        // now SHIFT is released before all other keys are released
129        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
130        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_I), guiElement));
131        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_J), guiElement));
132        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_K), guiElement));
133        eventList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
134        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_J), guiElement));
135        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_K), guiElement));
136        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_I), guiElement));
137
138        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
139        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_I), guiElement));
140        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_I), guiElement));
141        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_J), guiElement));
142        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_J), guiElement));
143        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_K), guiElement));
144        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_K), guiElement));
145        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
146
147        assertEquals(checkList.size(), eventList.size());
148
149        for (int i = 0; i < checkList.size(); i++) {
150            assertEquals(checkList.get(i).getType(), eventList.get(i).getType());
151        }
152
153        // now SHIFT, CTRL and ALT are pressed and released after all keys are pressed
154        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
155        eventList.add(new Event(new KeyPressed(VirtualKey.CONTROL), guiElement));
156        eventList.add(new Event(new KeyPressed(VirtualKey.ALT), guiElement));
157        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_L), guiElement));
158        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_L), guiElement));
159        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_M), guiElement));
160        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_M), guiElement));
161        eventList.add(new Event(new KeyReleased(VirtualKey.ALT), guiElement));
162        eventList.add(new Event(new KeyReleased(VirtualKey.CONTROL), guiElement));
163        eventList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
164
165        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
166        checkList.add(new Event(new KeyPressed(VirtualKey.CONTROL), guiElement));
167        checkList.add(new Event(new KeyPressed(VirtualKey.ALT), guiElement));
168        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_L), guiElement));
169        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_L), guiElement));
170        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_M), guiElement));
171        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_M), guiElement));
172        checkList.add(new Event(new KeyReleased(VirtualKey.ALT), guiElement));
173        checkList.add(new Event(new KeyReleased(VirtualKey.CONTROL), guiElement));
174        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
175
176        assertEquals(checkList.size(), eventList.size());
177
178        for (int i = 0; i < checkList.size(); i++) {
179            assertEquals(checkList.get(i).getType(), eventList.get(i).getType());
180        }
181
182        // now SHIFT, CTRL and ALT are released before the last key is released
183        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
184        eventList.add(new Event(new KeyPressed(VirtualKey.CONTROL), guiElement));
185        eventList.add(new Event(new KeyPressed(VirtualKey.ALT), guiElement));
186        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_N), guiElement));
187        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_N), guiElement));
188        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_O), guiElement));
189        eventList.add(new Event(new KeyReleased(VirtualKey.ALT), guiElement));
190        eventList.add(new Event(new KeyReleased(VirtualKey.CONTROL), guiElement));
191        eventList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
192        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_O), guiElement));
193
194        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
195        checkList.add(new Event(new KeyPressed(VirtualKey.CONTROL), guiElement));
196        checkList.add(new Event(new KeyPressed(VirtualKey.ALT), guiElement));
197        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_N), guiElement));
198        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_N), guiElement));
199        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_O), guiElement));
200        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_O), guiElement));
201        checkList.add(new Event(new KeyReleased(VirtualKey.ALT), guiElement));
202        checkList.add(new Event(new KeyReleased(VirtualKey.CONTROL), guiElement));
203        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
204
205        assertEquals(checkList.size(), eventList.size());
206
207        for (int i = 0; i < checkList.size(); i++) {
208            assertEquals(checkList.get(i).getType(), eventList.get(i).getType());
209        }
210
211        // now SHIFT, CTRL and ALT are released in another order and before some other keys are
212        // released
213        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
214        eventList.add(new Event(new KeyPressed(VirtualKey.CONTROL), guiElement));
215        eventList.add(new Event(new KeyPressed(VirtualKey.ALT), guiElement));
216        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_P), guiElement));
217        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_Q), guiElement));
218        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_R), guiElement));
219        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_Q), guiElement));
220        eventList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
221        eventList.add(new Event(new KeyReleased(VirtualKey.ALT), guiElement));
222        eventList.add(new Event(new KeyReleased(VirtualKey.CONTROL), guiElement));
223        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_R), guiElement));
224        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_P), guiElement));
225
226        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
227        checkList.add(new Event(new KeyPressed(VirtualKey.CONTROL), guiElement));
228        checkList.add(new Event(new KeyPressed(VirtualKey.ALT), guiElement));
229        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_P), guiElement));
230        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_P), guiElement));
231        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_Q), guiElement));
232        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_Q), guiElement));
233        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_R), guiElement));
234        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_R), guiElement));
235        checkList.add(new Event(new KeyReleased(VirtualKey.ALT), guiElement));
236        checkList.add(new Event(new KeyReleased(VirtualKey.CONTROL), guiElement));
237        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
238
239        assertEquals(checkList.size(), eventList.size());
240
241        for (int i = 0; i < checkList.size(); i++) {
242            assertEquals(checkList.get(i).getType(), eventList.get(i).getType());
243        }
244    }
245
246    /**
247   *
248   */
249    @Test
250    public void testSeveralSubsequentKeyPressedEvents() {
251        List<Event> checkList = new ArrayList<Event>();
252        SortedInteractionEventList eventList = new SortedInteractionEventList();
253
254        IGUIElement guiElement = new AbstractDefaultGUIElement(null, null) {
255
256            /**  */
257            private static final long serialVersionUID = 1L;
258
259            @Override
260            public void updateSpecification(IGUIElementSpec furtherSpec) {
261                // ignore
262            }
263
264            @Override
265            public String getPlatform() {
266                return "TEST";
267            }
268
269            @Override
270            public String getStringIdentifier() {
271                return "DUMMY";
272            }
273
274        };
275
276        // check first of all a normal pressing and releasing of A and B
277        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
278        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
279        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
280        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
281        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
282        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
283        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
284        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
285        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
286        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
287
288        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
289        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
290        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
291        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
292        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
293        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
294        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
295        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
296        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
297        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
298        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
299        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
300        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
301        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
302        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
303        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
304        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
305        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
306
307        assertEquals(checkList.size(), eventList.size());
308
309        for (int i = 0; i < checkList.size(); i++) {
310            assertEquals(checkList.get(i).getType(), eventList.get(i).getType());
311        }
312
313        // check first of all a normal pressing and releasing of A and B
314        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
315        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
316        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
317        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
318        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
319        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
320        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
321        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
322        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
323        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
324        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
325        eventList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
326
327        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
328        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
329        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
330        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
331        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
332        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
333        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
334        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
335        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
336        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
337        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
338        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
339        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
340        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
341        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
342        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
343        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
344        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
345        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
346        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
347
348        assertEquals(checkList.size(), eventList.size());
349
350        for (int i = 0; i < checkList.size(); i++) {
351            assertEquals(checkList.get(i).getType(), eventList.get(i).getType());
352        }
353    }
354
355}
Note: See TracBrowser for help on using the repository browser.