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

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