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

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