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

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