source: trunk/quest-core-tasktrees-test/src/test/java/de/ugoe/cs/quest/tasktrees/manager/TaskTreeManagerTest.java @ 790

Last change on this file since 790 was 790, checked in by pharms, 12 years ago
  • moved a test utility class to the test utils project
  • Property svn:executable set to *
File size: 16.2 KB
Line 
1package de.ugoe.cs.quest.tasktrees.manager;
2
3import java.util.logging.Level;
4
5import org.junit.After;
6import org.junit.Before;
7import org.junit.Test;
8
9import de.ugoe.cs.quest.eventcore.Event;
10import de.ugoe.cs.quest.eventcore.IEventTarget;
11import de.ugoe.cs.quest.eventcore.IEventType;
12import de.ugoe.cs.quest.tasktrees.TaskTreeChecker;
13import de.ugoe.cs.quest.test.DummyGUIElement;
14import de.ugoe.cs.quest.test.DummyInteraction;
15import de.ugoe.cs.util.console.TextConsole;
16
17/**
18 * TODO comment
19 *
20 * @version $Revision: $ $Date: $
21 * @author 2011, last modified by $Author: $
22 */
23public class TaskTreeManagerTest {
24   
25    /** */
26    TaskTreeManager manager;
27
28    /**
29     *
30     */
31    @Before
32    public void setUp() {
33        new TextConsole(Level.FINEST);
34        manager = new TaskTreeManager();
35    }
36
37    /**
38     *
39     */
40    @After
41    public void tearDown() {
42        manager = null;
43        ComponentManager.clearInstance();
44    }
45
46    /**
47     *
48     */
49    @Test
50    public void testOneEventOnOneElement() {
51        simulateEvent(new DummyInteraction("bla", 1), new DummyGUIElement("elem1"));
52        new TaskTreeChecker().assertTaskTree
53            ("Sequence sequence {" +
54             "  Event bla {}" +
55             "}", manager.getTaskTree());
56    }
57
58    /**
59     *
60     */
61    @Test
62    public void testManyEventsOnOneElement() {
63        IEventTarget eventTarget = new DummyGUIElement("elem1");
64        simulateEvent(new DummyInteraction("bla", 1), eventTarget);
65        simulateEvent(new DummyInteraction("bli", 1), eventTarget);
66        simulateEvent(new DummyInteraction("blo", 1), eventTarget);
67        simulateEvent(new DummyInteraction("blu", 1), eventTarget);
68        simulateEvent(new DummyInteraction("bla", 1), eventTarget);
69
70        new TaskTreeChecker().assertTaskTree
71            ("Sequence sequence {" +
72             "  Event bla {}" +
73             "  Event bli {}" +
74             "  Event blo {}" +
75             "  Event blu {}" +
76             "  Event bla {}" +
77             "}", manager.getTaskTree());
78    }
79
80    /**
81     *
82     */
83    @Test
84    public void testOneEventOnManyElements() {
85        IEventTarget eventTarget1 = new DummyGUIElement("elem1");
86        IEventTarget eventTarget2 = new DummyGUIElement("elem2");
87        IEventTarget eventTarget3 = new DummyGUIElement("elem3");
88        IEventTarget eventTarget4 = new DummyGUIElement("elem4");
89        IEventTarget eventTarget5 = new DummyGUIElement("elem5");
90        IEventTarget eventTarget6 = new DummyGUIElement("elem6");
91        simulateEvent(new DummyInteraction("bla", 1), eventTarget1);
92        simulateEvent(new DummyInteraction("bli", 1), eventTarget2);
93        simulateEvent(new DummyInteraction("bla", 1), eventTarget3);
94        simulateEvent(new DummyInteraction("bli", 1), eventTarget4);
95        simulateEvent(new DummyInteraction("blo", 1), eventTarget5);
96        simulateEvent(new DummyInteraction("bla", 1), eventTarget6);
97
98        new TaskTreeChecker().assertTaskTree
99            ("Sequence sequence0 {" +
100             "  Sequence sequence1 {" +
101             "    Event bla {}" +
102             "  }" +
103             "  Sequence sequence2 {" +
104             "    Event bli {}" +
105             "  }" +
106             "  Sequence sequence3 {" +
107             "    Event bla {}" +
108             "  }" +
109             "  Sequence sequence4 {" +
110             "    Event bli {}" +
111             "  }" +
112             "  Sequence sequence5 {" +
113             "    Event blo {}" +
114             "  }" +
115             "  Sequence sequence6 {" +
116             "    Event bla {}" +
117             "  }" +
118             "}", manager.getTaskTree());
119    }
120
121    /**
122     *
123     */
124    @Test
125    public void testManyEventsOnManyElements() {
126        IEventTarget eventTarget1 = new DummyGUIElement("elem1");
127        IEventTarget eventTarget2 = new DummyGUIElement("elem2");
128        IEventTarget eventTarget3 = new DummyGUIElement("elem3");
129        IEventTarget eventTarget4 = new DummyGUIElement("elem4");
130        IEventTarget eventTarget5 = new DummyGUIElement("elem5");
131        IEventTarget eventTarget6 = new DummyGUIElement("elem6");
132        simulateEvent(new DummyInteraction("bla", 1), eventTarget1);
133        simulateEvent(new DummyInteraction("bli", 1), eventTarget1);
134        simulateEvent(new DummyInteraction("bla", 1), eventTarget1);
135        simulateEvent(new DummyInteraction("bli", 1), eventTarget2);
136        simulateEvent(new DummyInteraction("blo", 1), eventTarget2);
137        simulateEvent(new DummyInteraction("bla", 1), eventTarget3);
138        simulateEvent(new DummyInteraction("bli", 1), eventTarget4);
139        simulateEvent(new DummyInteraction("bla", 1), eventTarget4);
140        simulateEvent(new DummyInteraction("bli", 1), eventTarget4);
141        simulateEvent(new DummyInteraction("blo", 1), eventTarget4);
142        simulateEvent(new DummyInteraction("bla", 1), eventTarget5);
143        simulateEvent(new DummyInteraction("bli", 1), eventTarget6);
144        simulateEvent(new DummyInteraction("bla", 1), eventTarget6);
145        simulateEvent(new DummyInteraction("bli", 1), eventTarget6);
146        simulateEvent(new DummyInteraction("blo", 1), eventTarget6);
147
148        new TaskTreeChecker().assertTaskTree
149            ("Sequence sequence0 {" +
150             "  Sequence sequence1 {" +
151             "    Event bla {}" +
152             "    Event bli {}" +
153             "    Event bla {}" +
154             "  }" +
155             "  Sequence sequence2 {" +
156             "    Event bli {}" +
157             "    Event blo {}" +
158             "  }" +
159             "  Sequence sequence3 {" +
160             "    Event bla {}" +
161             "  }" +
162             "  Sequence sequence4 {" +
163             "    Event bli {}" +
164             "    Event bla {}" +
165             "    Event bli {}" +
166             "    Event blo {}" +
167             "  }" +
168             "  Sequence sequence5 {" +
169             "    Event bla {}" +
170             "  }" +
171             "  Sequence sequence6 {" +
172             "    Event bli {}" +
173             "    Event bla {}" +
174             "    Event bli {}" +
175             "    Event blo {}" +
176             "  }" +
177             "}", manager.getTaskTree());
178    }
179
180    /**
181     *
182     */
183    @Test
184    public void testEventIterationDetection() throws Exception {
185        IEventTarget eventTarget1 = new DummyGUIElement("elem1");
186        IEventType event1 = new DummyInteraction("bla", 1);
187        simulateEvent(event1, eventTarget1);
188        new TaskTreeChecker().assertTaskTree
189            ("Sequence sequence1 {" +
190             "  Event bla {}" +
191             "}", manager.getTaskTree());
192
193        simulateEvent(event1, eventTarget1);
194        new TaskTreeChecker().assertTaskTree
195            ("Sequence sequence1 {" +
196             "  Iteration iteration1 {" +
197             "    Event bla {}" +
198             "  }" +
199             "}", manager.getTaskTree());
200
201        simulateEvent(event1, eventTarget1);
202        new TaskTreeChecker().assertTaskTree
203            ("Sequence sequence1 {" +
204             "  Iteration iteration1 {" +
205             "    Event bla {}" +
206             "  }" +
207             "}", manager.getTaskTree());
208
209        for (int i = 0; i < 10; i++) {
210            simulateEvent(event1, eventTarget1);
211        }
212
213        new TaskTreeChecker().assertTaskTree
214            ("Sequence sequence1 {" +
215             "  Iteration iteration1 {" +
216             "    Event bla {}" +
217             "  }" +
218             "}", manager.getTaskTree());
219
220        // now test with preceding and trailing other interactions
221        IEventType event2 = new DummyInteraction("bli", 1);
222        IEventType event3 = new DummyInteraction("blup", 1);
223
224        simulateEvent(event2, eventTarget1);
225        simulateEvent(event3, eventTarget1);
226        for (int i = 0; i < 10; i++) {
227            simulateEvent(event1, eventTarget1);
228        }
229        simulateEvent(event3, eventTarget1);
230        simulateEvent(event2, eventTarget1);
231
232        new TaskTreeChecker().assertTaskTree
233            ("Sequence sequence1 {" +
234             "  Iteration iteration1 {" +
235             "    Event bla {}" +
236             "  }" +
237             "  Event bli {}" +
238             "  Event blup {}" +
239             "  Iteration iteration2 {" +
240             "    Event bla {}" +
241             "  }" +
242             "  Event blup {}" +
243             "  Event bli {}" +
244             "}", manager.getTaskTree());
245
246        // now test with iterations of iterations
247
248        for (int i = 0; i < 10; i++) {
249            for (int j = 0; j < 5; j++) {
250                simulateEvent(event1, eventTarget1);
251            }
252            for (int j = 0; j < 5; j++) {
253                simulateEvent(event2, eventTarget1);
254            }
255            for (int j = 0; j < 5; j++) {
256                simulateEvent(event3, eventTarget1);
257            }
258        }
259
260        new TaskTreeChecker().assertTaskTree
261            ("Sequence sequence0 {" +
262             "  Iteration iteration0 {" +
263             "    Event bla {}" +
264             "  }" +
265             "  Event bli {}" +
266             "  Event blup {}" +
267             "  Iteration iteration1 {" +
268             "    Event bla {}" +
269             "  }" +
270             "  Event blup {}" +
271             "  Event bli {}" +
272             "  Iteration iteration2 {" +
273             "    Sequence sequence1 {" +
274             "      Iteration iteration3 {" +
275             "        Event bla {}" +
276             "      }" +
277             "      Iteration iteration4 {" +
278             "        Event bli {}" +
279             "      }" +
280             "      Iteration iteration5 {" +
281             "        Event blup {}" +
282             "      }" +
283             "    }" +
284             "  }" +
285             "}", manager.getTaskTree());
286
287    }
288
289    /**
290     *
291     */
292    @Test
293    public void testSequenceIterationDetection() throws Exception {
294        IEventTarget eventTarget1 = new DummyGUIElement("elem1");
295        IEventType event1 = new DummyInteraction("bla", 1);
296        IEventType event2 = new DummyInteraction("bli", 1);
297        IEventType event3 = new DummyInteraction("blup", 1);
298        simulateEvent(event1, eventTarget1);
299        simulateEvent(event2, eventTarget1);
300        simulateEvent(event3, eventTarget1);
301        new TaskTreeChecker().assertTaskTree
302            ("Sequence sequence1 {" +
303             "  Event bla {}" +
304             "  Event bli {}" +
305             "  Event blup {}" +
306             "}", manager.getTaskTree());
307
308        simulateEvent(event1, eventTarget1);
309        simulateEvent(event2, eventTarget1);
310        simulateEvent(event3, eventTarget1);
311        new TaskTreeChecker().assertTaskTree
312            ("Sequence sequence1 {" +
313             "  Iteration iteration1 {" +
314             "    Sequence sequence2 {" +
315             "      Event bla {}" +
316             "      Event bli {}" +
317             "      Event blup {}" +
318             "    }" +
319             "  }" +
320             "}", manager.getTaskTree());
321
322        simulateEvent(event1, eventTarget1);
323        simulateEvent(event2, eventTarget1);
324        simulateEvent(event3, eventTarget1);
325        new TaskTreeChecker().assertTaskTree
326            ("Sequence sequence1 {" +
327             "  Iteration iteration1 {" +
328             "    Sequence sequence2 {" +
329             "      Event bla {}" +
330             "      Event bli {}" +
331             "      Event blup {}" +
332             "    }" +
333             "  }" +
334             "}", manager.getTaskTree());
335
336        for (int i = 0; i < 10; i++) {
337            simulateEvent(event1, eventTarget1);
338            simulateEvent(event2, eventTarget1);
339            simulateEvent(event3, eventTarget1);
340        }
341
342        new TaskTreeChecker().assertTaskTree
343            ("Sequence sequence1 {" +
344             "  Iteration iteration1 {" +
345             "    Sequence sequence2 {" +
346             "      Event bla {}" +
347             "      Event bli {}" +
348             "      Event blup {}" +
349             "    }" +
350             "  }" +
351             "}", manager.getTaskTree());
352
353        // now test with preceding and trailing other interactions
354        IEventType event4 = new DummyInteraction("ble", 1);
355        IEventType event5 = new DummyInteraction("blo", 1);
356        IEventType event6 = new DummyInteraction("blu", 1);
357        simulateEvent(event4, eventTarget1);
358        simulateEvent(event5, eventTarget1);
359        simulateEvent(event6, eventTarget1);
360        for (int i = 0; i < 10; i++) {
361            simulateEvent(event1, eventTarget1);
362            simulateEvent(event2, eventTarget1);
363            simulateEvent(event3, eventTarget1);
364        }
365        simulateEvent(event6, eventTarget1);
366        simulateEvent(event5, eventTarget1);
367        simulateEvent(event4, eventTarget1);
368
369        new TaskTreeChecker().assertTaskTree
370            ("Sequence sequence1 {" +
371             "  Iteration iteration1 {" +
372             "    Sequence sequence2 {" +
373             "      Event bla {}" +
374             "      Event bli {}" +
375             "      Event blup {}" +
376             "    }" +
377             "  }" +
378             "  Event ble {}" +
379             "  Event blo {}" +
380             "  Event blu {}" +
381             "  Iteration iteration2 {" +
382             "    Sequence sequence3 {" +
383             "      Event bla {}" +
384             "      Event bli {}" +
385             "      Event blup {}" +
386             "    }" +
387             "  }" +
388             "  Event blu {}" +
389             "  Event blo {}" +
390             "  Event ble {}" +
391             "}", manager.getTaskTree());
392
393        // now test with iterations of iterations
394        for (int i = 0; i < 10; i++) {
395            for (int j = 0; j < 5; j++) {
396                simulateEvent(event1, eventTarget1);
397                simulateEvent(event2, eventTarget1);
398                simulateEvent(event3, eventTarget1);
399            }
400            for (int j = 0; j < 5; j++) {
401                simulateEvent(event2, eventTarget1);
402                simulateEvent(event1, eventTarget1);
403                simulateEvent(event3, eventTarget1);
404            }
405            for (int j = 0; j < 5; j++) {
406                simulateEvent(event1, eventTarget1);
407                simulateEvent(event2, eventTarget1);
408                simulateEvent(event3, eventTarget1);
409            }
410        }
411
412        new TaskTreeChecker().assertTaskTree
413            ("Sequence sequence1 {" +
414             "  Iteration iteration1 {" +
415             "    Sequence sequence2 {" +
416             "      Event bla {}" +
417             "      Event bli {}" +
418             "      Event blup {}" +
419             "    }" +
420             "  }" +
421             "  Event ble {}" +
422             "  Event blo {}" +
423             "  Event blu {}" +
424             "  Iteration iteration2 {" +
425             "    Sequence sequence3 {" +
426             "      Event bla {}" +
427             "      Event bli {}" +
428             "      Event blup {}" +
429             "    }" +
430             "  }" +
431             "  Event blu {}" +
432             "  Event blo {}" +
433             "  Event ble {}" +
434             "  Iteration iteration3 {" +
435             "    Sequence sequence4 {" +
436             "      Iteration iteration4 {" +
437             "        Sequence sequence4 {" +
438             "          Event bla {}" +
439             "          Event bli {}" +
440             "          Event blup {}" +
441             "        }" +
442             "      }" +
443             "      Iteration iteration5 {" +
444             "        Sequence sequence5 {" +
445             "          Event bli {}" +
446             "          Event bla {}" +
447             "          Event blup {}" +
448             "        }" +
449             "      }" +
450             "      Iteration iteration6 {" +
451             "        Sequence sequence6 {" +
452             "          Event bla {}" +
453             "          Event bli {}" +
454             "          Event blup {}" +
455             "        }" +
456             "      }" +
457             "    }" +
458             "  }" +
459             "}", manager.getTaskTree());
460    }
461
462    /**
463     *
464     */
465    private void simulateEvent(IEventType eventType, IEventTarget eventTarget) {
466        manager.handleNewEvent(new Event(eventType, eventTarget));
467    }
468
469}
Note: See TracBrowser for help on using the repository browser.