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

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