source: tags/autoquest-release-0.2.1/autoquest-test-utils/src/test/java/de/ugoe/cs/autoquest/tasktrees/TaskTreeDecoderTest.java @ 2284

Last change on this file since 2284 was 1333, checked in by pharms, 11 years ago
  • improvement and correction of the task tree decoder to handle optionals correctly
File size: 42.3 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;
16
17import static org.junit.Assert.*;
18
19import org.junit.Test;
20
21import de.ugoe.cs.autoquest.eventcore.Event;
22import de.ugoe.cs.autoquest.eventcore.gui.Scroll;
23import de.ugoe.cs.autoquest.eventcore.guimodel.IGUIElement;
24import de.ugoe.cs.autoquest.eventcore.guimodel.ITextArea;
25import de.ugoe.cs.autoquest.eventcore.guimodel.ITextField;
26import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask;
27import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTaskInstance;
28import de.ugoe.cs.autoquest.tasktrees.treeifc.IIteration;
29import de.ugoe.cs.autoquest.tasktrees.treeifc.IIterationInstance;
30import de.ugoe.cs.autoquest.tasktrees.treeifc.IOptional;
31import de.ugoe.cs.autoquest.tasktrees.treeifc.IOptionalInstance;
32import de.ugoe.cs.autoquest.tasktrees.treeifc.ISelection;
33import de.ugoe.cs.autoquest.tasktrees.treeifc.ISelectionInstance;
34import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequence;
35import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequenceInstance;
36import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskInstanceList;
37import de.ugoe.cs.autoquest.tasktrees.treeifc.IUserSession;
38import de.ugoe.cs.autoquest.tasktrees.treeimpl.TaskBuilder;
39import de.ugoe.cs.autoquest.tasktrees.treeimpl.TaskFactory;
40
41/**
42 * @author Patrick Harms
43 */
44public class TaskTreeDecoderTest {
45
46    /**
47     *
48     */
49    @Test
50    public void test_UserSession_01() {
51        String blub =
52            "UserSession {" +
53            "}";
54
55        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
56       
57        ITaskInstanceList list = decoder.decode(blub);
58       
59        assertTrue(list instanceof IUserSession);
60        assertEquals(0, list.size());
61           
62        new TaskTreeValidator().validate(list);
63    }
64
65    /**
66     *
67     */
68    @Test
69    public void test_UserSession_02() {
70        String blub =
71            "UserSession {" +
72            "  MouseClick c1 { }" +
73            "}";
74
75        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
76       
77        ITaskInstanceList list = decoder.decode(blub);
78       
79        assertTrue(list instanceof IUserSession);
80        assertEquals(1, list.size());
81       
82        new TaskTreeValidator().validate(list);
83    }
84
85    /**
86     *
87     */
88    @Test
89    public void test_UserSession_03() {
90        String blub =
91            "UserSession {" +
92            "  MouseClick c1 { }" +
93            "  MouseClick c2 { }" +
94            "  MouseClick c3 { }" +
95            "  MouseClick c4 { }" +
96            "  MouseClick c5 { }" +
97            "  MouseClick c6 { }" +
98            "  MouseClick c7 { }" +
99            "}";
100
101        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
102       
103        ITaskInstanceList list = decoder.decode(blub);
104       
105        assertTrue(list instanceof IUserSession);
106        assertEquals(7, list.size());
107           
108        new TaskTreeValidator().validate(list);
109    }
110
111    /**
112     *
113     */
114    @Test
115    public void test_TaskInstances_01() {
116        String blub =
117            "TaskInstances {" +
118            "}";
119
120        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
121       
122        ITaskInstanceList list = decoder.decode(blub);
123       
124        assertFalse(list instanceof IUserSession);
125        assertEquals(0, list.size());
126           
127        new TaskTreeValidator().validate(list);
128    }
129
130    /**
131     *
132     */
133    @Test
134    public void test_TaskInstances_02() {
135        String blub =
136            "TaskInstances {" +
137            "  MouseClick c1 { }" +
138            "}";
139
140        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
141       
142        ITaskInstanceList list = decoder.decode(blub);
143       
144        assertFalse(list instanceof IUserSession);
145        assertEquals(1, list.size());
146       
147        new TaskTreeValidator().validate(list);
148    }
149
150    /**
151     *
152     */
153    @Test
154    public void test_TaskInstances_03() {
155        String blub =
156            "TaskInstances {" +
157            "  MouseClick c1 { }" +
158            "  MouseClick c2 { }" +
159            "  MouseClick c3 { }" +
160            "  MouseClick c4 { }" +
161            "  MouseClick c5 { }" +
162            "  MouseClick c6 { }" +
163            "  MouseClick c7 { }" +
164            "}";
165
166        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
167       
168        ITaskInstanceList list = decoder.decode(blub);
169       
170        assertFalse(list instanceof IUserSession);
171        assertEquals(7, list.size());
172           
173        new TaskTreeValidator().validate(list);
174    }
175
176    /**
177     *
178     */
179    @Test
180    public void test_MouseClick_01() {
181        String blub =
182            "UserSession {" +
183            "  MouseClick c1 { }" +
184            "}";
185
186        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
187       
188        ITaskInstanceList list = decoder.decode(blub);
189       
190        assertTrue(list.get(0) instanceof IEventTaskInstance);
191        assertTrue(list.get(0).getTask() instanceof IEventTask);
192       
193        new TaskTreeValidator().validate(list);
194    }
195
196    /**
197     *
198     */
199    @Test
200    public void test_MouseClick_02() {
201        String blub =
202            "UserSession {" +
203            "  MouseClick c1 { }" +
204            "  MouseClick c2 { }" +
205            "}";
206
207        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
208       
209        ITaskInstanceList list = decoder.decode(blub);
210       
211        assertTrue(list.get(0) instanceof IEventTaskInstance);
212        assertTrue(list.get(0).getTask() instanceof IEventTask);
213        assertTrue(list.get(1) instanceof IEventTaskInstance);
214        assertTrue(list.get(1).getTask() instanceof IEventTask);
215       
216        assertFalse(list.get(0).equals(list.get(1)));
217        assertFalse(list.get(0).getTask().equals(list.get(1).getTask()));
218       
219        new TaskTreeValidator().validate(list);
220    }
221
222    /**
223     *
224     */
225    @Test
226    public void test_MouseClick_03() {
227        String blub =
228            "UserSession {" +
229            "  MouseClick c1 { }" +
230            "  MouseClick c1 { }" +
231            "}";
232
233        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
234       
235        ITaskInstanceList list = decoder.decode(blub);
236       
237        assertTrue(list.get(0) instanceof IEventTaskInstance);
238        assertTrue(list.get(0).getTask() instanceof IEventTask);
239        assertTrue(list.get(1) instanceof IEventTaskInstance);
240        assertTrue(list.get(1).getTask() instanceof IEventTask);
241       
242        assertFalse(list.get(0).equals(list.get(1)));
243        assertTrue(list.get(0).getTask().equals(list.get(1).getTask()));
244       
245        new TaskTreeValidator().validate(list);
246    }
247
248    /**
249     *
250     */
251    @Test
252    public void test_Scroll_01() {
253        String blub =
254            "UserSession {" +
255            "  Scroll body1 { }" +
256            "}";
257
258        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
259       
260        ITaskInstanceList list = decoder.decode(blub);
261       
262        assertTrue(list.get(0) instanceof IEventTaskInstance);
263        assertTrue(list.get(0).getTask() instanceof IEventTask);
264       
265        assertTrue(((IEventTaskInstance) list.get(0)).getEvent().getType() instanceof Scroll);
266       
267        new TaskTreeValidator().validate(list);
268    }
269
270    /**
271     *
272     */
273    @Test
274    public void test_Scroll_02() {
275        String blub =
276            "UserSession {" +
277            "  Scroll body1 { }" +
278            "  Scroll body2 { }" +
279            "}";
280
281        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
282       
283        ITaskInstanceList list = decoder.decode(blub);
284       
285        assertTrue(list.get(0) instanceof IEventTaskInstance);
286        assertTrue(list.get(0).getTask() instanceof IEventTask);
287        assertTrue(((IEventTaskInstance) list.get(0)).getEvent().getType() instanceof Scroll);
288
289        assertTrue(list.get(1) instanceof IEventTaskInstance);
290        assertTrue(list.get(1).getTask() instanceof IEventTask);
291        assertTrue(((IEventTaskInstance) list.get(1)).getEvent().getType() instanceof Scroll);
292       
293        assertFalse(list.get(0).equals(list.get(1)));
294        assertFalse(list.get(0).getTask().equals(list.get(1).getTask()));
295       
296        new TaskTreeValidator().validate(list);
297    }
298
299    /**
300     *
301     */
302    @Test
303    public void test_Scroll_03() {
304        String blub =
305            "UserSession {" +
306            "  Scroll body1 { }" +
307            "  Scroll body1 { }" +
308            "}";
309
310        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
311       
312        ITaskInstanceList list = decoder.decode(blub);
313       
314        assertTrue(list.get(0) instanceof IEventTaskInstance);
315        assertTrue(list.get(0).getTask() instanceof IEventTask);
316        assertTrue(((IEventTaskInstance) list.get(0)).getEvent().getType() instanceof Scroll);
317
318        assertTrue(list.get(1) instanceof IEventTaskInstance);
319        assertTrue(list.get(1).getTask() instanceof IEventTask);
320        assertTrue(((IEventTaskInstance) list.get(1)).getEvent().getType() instanceof Scroll);
321       
322        assertFalse(list.get(0).equals(list.get(1)));
323        assertTrue(list.get(0).getTask().equals(list.get(1).getTask()));
324       
325        new TaskTreeValidator().validate(list);
326    }
327
328    /**
329     *
330     */
331    @Test
332    public void test_Scroll_04() {
333        String blub =
334            "UserSession {" +
335            "  Scroll body1 (1 2) { }" +
336            "}";
337
338        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
339       
340        ITaskInstanceList list = decoder.decode(blub);
341       
342        assertTrue(list.get(0) instanceof IEventTaskInstance);
343        assertTrue(list.get(0).getTask() instanceof IEventTask);
344       
345        assertTrue(((IEventTaskInstance) list.get(0)).getEvent().getType() instanceof Scroll);
346       
347        Scroll scroll = (Scroll) ((IEventTaskInstance) list.get(0)).getEvent().getType();
348       
349        assertEquals(1, scroll.getXPosition());
350        assertEquals(2, scroll.getYPosition());
351       
352        new TaskTreeValidator().validate(list);
353    }
354
355    /**
356     *
357     */
358    @Test
359    public void test_GuiElements_01() {
360        String blub =
361            "UserSession {" +
362            "  MouseClick elem1 { }" +
363            "}";
364
365        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
366       
367        ITaskInstanceList list = decoder.decode(blub);
368       
369        assertTrue(list.get(0) instanceof IEventTaskInstance);
370       
371        Event event = ((IEventTaskInstance) list.get(0)).getEvent();
372       
373        assertTrue(event.getTarget() instanceof IGUIElement);
374        assertFalse(event.getTarget() instanceof ITextArea);
375        assertFalse(event.getTarget() instanceof ITextField);
376       
377        new TaskTreeValidator().validate(list);
378    }
379
380    /**
381     *
382     */
383    @Test
384    public void test_GuiElements_02() {
385        String blub =
386            "UserSession {" +
387            "  TextInput elem1 { }" +
388            "}";
389
390        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
391       
392        ITaskInstanceList list = decoder.decode(blub);
393       
394        assertTrue(list.get(0) instanceof IEventTaskInstance);
395       
396        Event event = ((IEventTaskInstance) list.get(0)).getEvent();
397       
398        assertTrue(event.getTarget() instanceof IGUIElement);
399        assertFalse(event.getTarget() instanceof ITextArea);
400        assertTrue(event.getTarget() instanceof ITextField);
401       
402        new TaskTreeValidator().validate(list);
403    }
404
405    /**
406     *
407     */
408    @Test
409    public void test_GuiElements_03() {
410        String blub =
411            "UserSession {" +
412            "  OtherInteraction elem1 { }" +
413            "  TextInput elem1 { }" +
414            "}";
415
416        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
417       
418        ITaskInstanceList list = decoder.decode(blub);
419       
420        assertTrue(list.get(0) instanceof IEventTaskInstance);
421       
422        Event event = ((IEventTaskInstance) list.get(0)).getEvent();
423       
424        assertTrue(event.getTarget() instanceof IGUIElement);
425        assertFalse(event.getTarget() instanceof ITextArea);
426        assertTrue(event.getTarget() instanceof ITextField);
427       
428        assertTrue(list.get(1) instanceof IEventTaskInstance);
429       
430        event = ((IEventTaskInstance) list.get(1)).getEvent();
431       
432        assertTrue(event.getTarget() instanceof IGUIElement);
433        assertFalse(event.getTarget() instanceof ITextArea);
434        assertTrue(event.getTarget() instanceof ITextField);
435       
436        new TaskTreeValidator().validate(list);
437    }
438
439    /**
440     *
441     */
442    @Test
443    public void test_GuiElements_04() {
444        String blub =
445            "UserSession {" +
446            "  Sequence seq1 {" +
447            "    TextInput elem1 { }" +
448            "  }" +
449            "}";
450
451        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
452       
453        ITaskInstanceList list = decoder.decode(blub);
454       
455        assertTrue(list.get(0) instanceof ISequenceInstance);
456        assertTrue(((ISequenceInstance) list.get(0)).get(0) instanceof IEventTaskInstance);
457       
458        Event event = ((IEventTaskInstance) ((ISequenceInstance) list.get(0)).get(0)).getEvent();
459       
460        assertTrue(event.getTarget() instanceof IGUIElement);
461        assertFalse(event.getTarget() instanceof ITextArea);
462        assertTrue(event.getTarget() instanceof ITextField);
463       
464        new TaskTreeValidator().validate(list);
465    }
466
467    /**
468     *
469     */
470    @Test
471    public void test_GuiElements_05() {
472        String blub =
473            "UserSession {" +
474            "  Selection sel1 {" +
475            "    TextInput elem1 { }" +
476            "  }" +
477            "}";
478
479        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
480       
481        ITaskInstanceList list = decoder.decode(blub);
482       
483        assertTrue(list.get(0) instanceof ISelectionInstance);
484        assertTrue(((ISelectionInstance) list.get(0)).getChild() instanceof IEventTaskInstance);
485       
486        Event event =
487            ((IEventTaskInstance) ((ISelectionInstance) list.get(0)).getChild()).getEvent();
488       
489        assertTrue(event.getTarget() instanceof IGUIElement);
490        assertFalse(event.getTarget() instanceof ITextArea);
491        assertTrue(event.getTarget() instanceof ITextField);
492       
493        new TaskTreeValidator().validate(list);
494    }
495
496    /**
497     *
498     */
499    @Test
500    public void test_Sequence_01() {
501        String blub =
502            "UserSession {" +
503            "  Sequence s1 { }" +
504            "}";
505
506        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
507       
508        ITaskInstanceList list = decoder.decode(blub);
509       
510        assertTrue(list.get(0) instanceof ISequenceInstance);
511        assertEquals(0, ((ISequenceInstance) list.get(0)).size());
512       
513        assertTrue(list.get(0).getTask() instanceof ISequence);
514        assertEquals(0, ((ISequence) list.get(0).getTask()).getChildren().size());
515
516        new TaskTreeValidator().validate(list);
517    }
518
519    /**
520     *
521     */
522    @Test
523    public void test_Sequence_02() {
524        String blub =
525            "UserSession {" +
526            "  Sequence seq1 {" +
527            "    MouseClick c1 { }" +
528            "  }" +
529            "}";
530
531        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
532           
533        ITaskInstanceList list = decoder.decode(blub);
534           
535        assertTrue(list.get(0) instanceof ISequenceInstance);
536        assertEquals(1, ((ISequenceInstance) list.get(0)).size());
537        assertTrue(((ISequenceInstance) list.get(0)).get(0) instanceof IEventTaskInstance);
538           
539        assertTrue(list.get(0).getTask() instanceof ISequence);
540        assertEquals(1, ((ISequence) list.get(0).getTask()).getChildren().size());
541        assertTrue(((ISequence) list.get(0).getTask()).getChildren().get(0) instanceof IEventTask);
542       
543        assertEquals(((ISequenceInstance) list.get(0)).get(0).getTask(),
544                     ((ISequence) list.get(0).getTask()).getChildren().get(0));
545
546        new TaskTreeValidator().validate(list);
547    }
548
549    /**
550     *
551     */
552    @Test
553    public void test_Sequence_03() {
554        String blub =
555            "UserSession {" +
556            "  Sequence seq1 {" +
557            "    MouseClick c1 { }" +
558            "    MouseClick c2 { }" +
559            "  }" +
560            "}";
561
562        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
563
564        ITaskInstanceList list = decoder.decode(blub);
565
566        assertTrue(list.get(0) instanceof ISequenceInstance);
567        assertEquals(2, ((ISequenceInstance) list.get(0)).size());
568        assertTrue(((ISequenceInstance) list.get(0)).get(0) instanceof IEventTaskInstance);
569        assertTrue(((ISequenceInstance) list.get(0)).get(1) instanceof IEventTaskInstance);
570
571        assertTrue(list.get(0).getTask() instanceof ISequence);
572        assertEquals(2, ((ISequence) list.get(0).getTask()).getChildren().size());
573        assertTrue(((ISequence) list.get(0).getTask()).getChildren().get(0) instanceof IEventTask);
574        assertTrue(((ISequence) list.get(0).getTask()).getChildren().get(1) instanceof IEventTask);
575
576        assertEquals(((ISequenceInstance) list.get(0)).get(0).getTask(),
577                     ((ISequence) list.get(0).getTask()).getChildren().get(0));
578        assertEquals(((ISequenceInstance) list.get(0)).get(1).getTask(),
579                     ((ISequence) list.get(0).getTask()).getChildren().get(1));
580
581        assertFalse(((ISequence) list.get(0).getTask()).getChildren().get(0).equals
582                         (((ISequence) list.get(0).getTask()).getChildren().get(1)));
583       
584        new TaskTreeValidator().validate(list);
585    }
586
587    /**
588     *
589     */
590    @Test
591    public void test_Sequence_04() {
592        String blub =
593            "UserSession {" +
594            "  Sequence seq1 {" +
595            "    MouseClick c1 { }" +
596            "    MouseClick c2 { }" +
597            "  }" +
598            "  Sequence seq1 {" +
599            "    MouseClick c1 { }" +
600            "    MouseClick c2 { }" +
601            "  }" +
602            "}";
603
604        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
605
606        ITaskInstanceList list = decoder.decode(blub);
607
608        // ensure, sequences are identical
609        assertTrue(list.get(0) instanceof ISequenceInstance);
610        assertTrue(list.get(1) instanceof ISequenceInstance);
611       
612        assertFalse(list.get(0).equals(list.get(1)));
613
614        assertTrue(list.get(0).getTask() instanceof ISequence);
615        assertTrue(list.get(1).getTask() instanceof ISequence);
616       
617        assertTrue(list.get(0).getTask().equals(list.get(1).getTask()));
618
619        // ensure that sequence itself is correct
620        assertEquals(2, ((ISequenceInstance) list.get(0)).size());
621        assertTrue(((ISequenceInstance) list.get(0)).get(0) instanceof IEventTaskInstance);
622        assertTrue(((ISequenceInstance) list.get(0)).get(1) instanceof IEventTaskInstance);
623
624        assertEquals(2, ((ISequenceInstance) list.get(1)).size());
625        assertTrue(((ISequenceInstance) list.get(1)).get(0) instanceof IEventTaskInstance);
626        assertTrue(((ISequenceInstance) list.get(1)).get(1) instanceof IEventTaskInstance);
627
628        assertEquals(2, ((ISequence) list.get(0).getTask()).getChildren().size());
629        assertTrue(((ISequence) list.get(0).getTask()).getChildren().get(0) instanceof IEventTask);
630        assertTrue(((ISequence) list.get(0).getTask()).getChildren().get(1) instanceof IEventTask);
631
632        assertEquals(((ISequenceInstance) list.get(0)).get(0).getTask(),
633                     ((ISequence) list.get(0).getTask()).getChildren().get(0));
634        assertEquals(((ISequenceInstance) list.get(0)).get(1).getTask(),
635                     ((ISequence) list.get(0).getTask()).getChildren().get(1));
636
637        assertEquals(((ISequenceInstance) list.get(1)).get(0).getTask(),
638                     ((ISequence) list.get(0).getTask()).getChildren().get(0));
639        assertEquals(((ISequenceInstance) list.get(1)).get(1).getTask(),
640                     ((ISequence) list.get(0).getTask()).getChildren().get(1));
641
642        assertFalse(((ISequence) list.get(0).getTask()).getChildren().get(0).equals
643                         (((ISequence) list.get(0).getTask()).getChildren().get(1)));
644       
645       
646        new TaskTreeValidator().validate(list);
647    }
648
649    /**
650     *
651     */
652    @Test(expected=java.lang.IllegalArgumentException.class)
653    public void test_Sequence_05() {
654        String blub =
655            "UserSession {" +
656            "  Sequence seq1 {" +
657            "    MouseClick c1 { }" +
658            "  }" +
659            "  Sequence seq1 {" +
660            "    MouseClick c2 { }" +
661            "  }" +
662            "}";
663
664        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
665
666        decoder.decode(blub);
667    }
668
669    /**
670     *
671     */
672    @Test(expected=java.lang.IllegalArgumentException.class)
673    public void test_Selection_01() {
674        String blub =
675            "UserSession {" +
676            "  Selection sel1 { }" +
677            "}";
678
679        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
680       
681        decoder.decode(blub);
682    }
683
684    /**
685     *
686     */
687    @Test
688    public void test_Selection_02() {
689        String blub =
690            "UserSession {" +
691            "  Selection sel1 {" +
692            "    MouseClick c1 { }" +
693            "  }" +
694            "}";
695
696        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
697           
698        ITaskInstanceList list = decoder.decode(blub);
699           
700        assertTrue(list.get(0) instanceof ISelectionInstance);
701        assertNotNull(((ISelectionInstance) list.get(0)).getChild());
702        assertTrue(((ISelectionInstance) list.get(0)).getChild() instanceof IEventTaskInstance);
703           
704        assertTrue(list.get(0).getTask() instanceof ISelection);
705        assertEquals(1, ((ISelection) list.get(0).getTask()).getChildren().size());
706        assertTrue(((ISelection) list.get(0).getTask()).getChildren().get(0) instanceof IEventTask);
707       
708        assertEquals(((ISelectionInstance) list.get(0)).getChild().getTask(),
709                     ((ISelection) list.get(0).getTask()).getChildren().get(0));
710
711        new TaskTreeValidator().validate(list);
712    }
713
714    /**
715     *
716     */
717    @Test
718    public void test_Selection_03() {
719        String blub =
720            "UserSession {" +
721            "  Selection sel1 {" +
722            "    MouseClick c1 { }" +
723            "  }" +
724            "  Selection sel1 {" +
725            "    MouseClick c1 { }" +
726            "  }" +
727            "}";
728
729        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
730
731        ITaskInstanceList list = decoder.decode(blub);
732
733        assertTrue(list.get(0) instanceof ISelectionInstance);
734        assertNotNull(((ISelectionInstance) list.get(0)).getChild());
735        assertTrue(((ISelectionInstance) list.get(0)).getChild() instanceof IEventTaskInstance);
736
737        assertTrue(list.get(0).getTask() instanceof ISelection);
738        assertEquals(1, ((ISelection) list.get(0).getTask()).getChildren().size());
739        assertTrue(((ISelection) list.get(0).getTask()).getChildren().get(0) instanceof IEventTask);
740
741        assertTrue(list.get(1) instanceof ISelectionInstance);
742        assertNotNull(((ISelectionInstance) list.get(1)).getChild());
743        assertTrue(((ISelectionInstance) list.get(1)).getChild() instanceof IEventTaskInstance);
744
745        assertTrue(list.get(1).getTask() instanceof ISelection);
746        assertEquals(1, ((ISelection) list.get(1).getTask()).getChildren().size());
747        assertTrue(((ISelection) list.get(1).getTask()).getChildren().get(0) instanceof IEventTask);
748
749        assertFalse(list.get(0).equals(list.get(1)));
750        assertTrue(list.get(0).getTask().equals(list.get(1).getTask()));
751       
752        assertFalse(((ISelectionInstance) list.get(0)).getChild().equals
753                        (((ISelectionInstance) list.get(1)).getChild()));
754        assertTrue(((ISelectionInstance) list.get(0)).getChild().getTask().equals
755                       (((ISelectionInstance) list.get(1)).getChild().getTask()));
756       
757        assertTrue(((ISelection) list.get(0).getTask()).getChildren().get(0).equals
758                       (((ISelectionInstance) list.get(0)).getChild().getTask()));
759        assertTrue(((ISelection) list.get(0).getTask()).getChildren().get(0).equals
760                       (((ISelectionInstance) list.get(1)).getChild().getTask()));
761
762        new TaskTreeValidator().validate(list);
763    }
764
765    /**
766     *
767     */
768    @Test
769    public void test_Selection_04() {
770        String blub =
771            "UserSession {" +
772            "  Selection sel1 {" +
773            "    MouseClick c1 { }" +
774            "  }" +
775            "  Selection sel1 {" +
776            "    MouseClick c2 { }" +
777            "  }" +
778            "}";
779
780        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
781
782        ITaskInstanceList list = decoder.decode(blub);
783
784        assertTrue(list.get(0) instanceof ISelectionInstance);
785        assertNotNull(((ISelectionInstance) list.get(0)).getChild());
786        assertTrue(((ISelectionInstance) list.get(0)).getChild() instanceof IEventTaskInstance);
787
788        assertTrue(list.get(0).getTask() instanceof ISelection);
789        assertEquals(2, ((ISelection) list.get(0).getTask()).getChildren().size());
790        assertTrue(((ISelection) list.get(0).getTask()).getChildren().get(0) instanceof IEventTask);
791        assertTrue(((ISelection) list.get(0).getTask()).getChildren().get(1) instanceof IEventTask);
792
793        assertTrue(list.get(1) instanceof ISelectionInstance);
794        assertNotNull(((ISelectionInstance) list.get(1)).getChild());
795        assertTrue(((ISelectionInstance) list.get(1)).getChild() instanceof IEventTaskInstance);
796
797        assertTrue(list.get(1).getTask() instanceof ISelection);
798        assertEquals(2, ((ISelection) list.get(1).getTask()).getChildren().size());
799        assertTrue(((ISelection) list.get(1).getTask()).getChildren().get(0) instanceof IEventTask);
800        assertTrue(((ISelection) list.get(1).getTask()).getChildren().get(1) instanceof IEventTask);
801
802        assertFalse(list.get(0).equals(list.get(1)));
803        assertTrue(list.get(0).getTask().equals(list.get(1).getTask()));
804
805        assertFalse(((ISelectionInstance) list.get(0)).getChild().equals
806                        (((ISelectionInstance) list.get(1)).getChild()));
807        assertFalse(((ISelectionInstance) list.get(0)).getChild().getTask().equals
808                        (((ISelectionInstance) list.get(1)).getChild().getTask()));
809
810        assertTrue(((ISelection) list.get(0).getTask()).getChildren().get(0).equals
811                       (((ISelectionInstance) list.get(0)).getChild().getTask()));
812        assertTrue(((ISelection) list.get(0).getTask()).getChildren().get(1).equals
813                       (((ISelectionInstance) list.get(1)).getChild().getTask()));
814
815        new TaskTreeValidator().validate(list);
816    }
817
818    /**
819     *
820     */
821    @Test(expected=java.lang.IllegalArgumentException.class)
822    public void test_Selection_05() {
823        String blub =
824            "UserSession {" +
825            "  Selection sel1 {" +
826            "    MouseClick c1 { }" +
827            "    MouseClick c2 { }" +
828            "  }" +
829            "}";
830
831        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
832
833        decoder.decode(blub);
834    }
835
836    /**
837     *
838     */
839    @Test(expected=java.lang.IllegalArgumentException.class)
840    public void test_Iteration_01() {
841        String blub =
842            "UserSession {" +
843            "  Iteration it1 { }" +
844            "}";
845
846        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
847       
848        decoder.decode(blub);
849    }
850
851    /**
852     *
853     */
854    @Test
855    public void test_Iteration_02() {
856        String blub =
857            "UserSession {" +
858            "  Iteration it1 {" +
859            "    MouseClick c1 { }" +
860            "  }" +
861            "}";
862
863        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
864           
865        ITaskInstanceList list = decoder.decode(blub);
866           
867        assertTrue(list.get(0) instanceof IIterationInstance);
868        assertEquals(1, ((IIterationInstance) list.get(0)).size());
869        assertTrue(((IIterationInstance) list.get(0)).get(0) instanceof IEventTaskInstance);
870           
871        assertTrue(list.get(0).getTask() instanceof IIteration);
872        assertNotNull(((IIteration) list.get(0).getTask()).getMarkedTask());
873        assertTrue(((IIteration) list.get(0).getTask()).getMarkedTask() instanceof IEventTask);
874       
875        assertEquals(((IIterationInstance) list.get(0)).get(0).getTask(),
876                     ((IIteration) list.get(0).getTask()).getMarkedTask());
877
878        new TaskTreeValidator().validate(list);
879    }
880
881    /**
882     *
883     */
884    @Test
885    public void test_Iteration_03() {
886        String blub =
887            "UserSession {" +
888            "  Iteration it1 {" +
889            "    MouseClick c1 { }" +
890            "    MouseClick c1 { }" +
891            "    MouseClick c1 { }" +
892            "  }" +
893            "}";
894
895        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
896           
897        ITaskInstanceList list = decoder.decode(blub);
898           
899        assertTrue(list.get(0) instanceof IIterationInstance);
900        assertEquals(3, ((IIterationInstance) list.get(0)).size());
901        assertTrue(((IIterationInstance) list.get(0)).get(0) instanceof IEventTaskInstance);
902        assertTrue(((IIterationInstance) list.get(0)).get(1) instanceof IEventTaskInstance);
903        assertTrue(((IIterationInstance) list.get(0)).get(2) instanceof IEventTaskInstance);
904           
905        assertTrue(list.get(0).getTask() instanceof IIteration);
906        assertNotNull(((IIteration) list.get(0).getTask()).getMarkedTask());
907        assertTrue(((IIteration) list.get(0).getTask()).getMarkedTask() instanceof IEventTask);
908       
909        assertEquals(((IIterationInstance) list.get(0)).get(0).getTask(),
910                     ((IIteration) list.get(0).getTask()).getMarkedTask());
911        assertEquals(((IIterationInstance) list.get(0)).get(1).getTask(),
912                     ((IIteration) list.get(0).getTask()).getMarkedTask());
913        assertEquals(((IIterationInstance) list.get(0)).get(2).getTask(),
914                     ((IIteration) list.get(0).getTask()).getMarkedTask());
915
916        new TaskTreeValidator().validate(list);
917    }
918
919    /**
920     *
921     */
922    @Test
923    public void test_Iteration_04() {
924        String blub =
925            "UserSession {" +
926            "  Iteration it1 {" +
927            "    MouseClick c1 { }" +
928            "    MouseClick c1 { }" +
929            "    MouseClick c1 { }" +
930            "  }" +
931            "  Iteration it1 {" +
932            "    MouseClick c1 { }" +
933            "  }" +
934            "}";
935
936        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
937
938        ITaskInstanceList list = decoder.decode(blub);
939
940        assertTrue(list.get(0) instanceof IIterationInstance);
941        assertEquals(3, ((IIterationInstance) list.get(0)).size());
942        assertTrue(((IIterationInstance) list.get(0)).get(0) instanceof IEventTaskInstance);
943        assertTrue(((IIterationInstance) list.get(0)).get(1) instanceof IEventTaskInstance);
944        assertTrue(((IIterationInstance) list.get(0)).get(2) instanceof IEventTaskInstance);
945
946        assertTrue(list.get(0).getTask() instanceof IIteration);
947        assertNotNull(((IIteration) list.get(0).getTask()).getMarkedTask());
948        assertTrue(((IIteration) list.get(0).getTask()).getMarkedTask() instanceof IEventTask);
949
950        assertTrue(list.get(1) instanceof IIterationInstance);
951        assertEquals(1, ((IIterationInstance) list.get(1)).size());
952        assertTrue(((IIterationInstance) list.get(1)).get(0) instanceof IEventTaskInstance);
953
954        assertTrue(list.get(1).getTask() instanceof IIteration);
955        assertNotNull(((IIteration) list.get(1).getTask()).getMarkedTask());
956        assertTrue(((IIteration) list.get(1).getTask()).getMarkedTask() instanceof IEventTask);
957
958        assertFalse(list.get(0).equals(list.get(1)));
959        assertTrue(list.get(0).getTask().equals(list.get(1).getTask()));
960       
961        assertFalse(((IIterationInstance) list.get(0)).get(0).equals
962                        (((IIterationInstance) list.get(1)).get(0)));
963        assertTrue(((IIterationInstance) list.get(0)).get(0).getTask().equals
964                   (((IIterationInstance) list.get(1)).get(0).getTask()));
965   
966        assertFalse(((IIterationInstance) list.get(0)).get(1).equals
967                        (((IIterationInstance) list.get(1)).get(0)));
968        assertTrue(((IIterationInstance) list.get(0)).get(1).getTask().equals
969                   (((IIterationInstance) list.get(1)).get(0).getTask()));
970   
971        assertFalse(((IIterationInstance) list.get(0)).get(2).equals
972                        (((IIterationInstance) list.get(1)).get(0)));
973        assertTrue(((IIterationInstance) list.get(0)).get(2).getTask().equals
974                       (((IIterationInstance) list.get(1)).get(0).getTask()));
975       
976        new TaskTreeValidator().validate(list);
977    }
978
979
980    /**
981     *
982     */
983    @Test(expected=java.lang.IllegalArgumentException.class)
984    public void test_Iteration_05() {
985        String blub =
986            "UserSession {" +
987            "  Iteration it1 {" +
988            "    MouseClick c1 { }" +
989            "  }" +
990            "  Iteration it1 {" +
991            "    MouseClick c2 { }" +
992            "  }" +
993            "}";
994
995        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
996
997        decoder.decode(blub);
998    }
999
1000    /**
1001     *
1002     */
1003    @Test(expected=java.lang.IllegalArgumentException.class)
1004    public void test_Iteration_06() {
1005        String blub =
1006            "UserSession {" +
1007            "  Iteration it1 {" +
1008            "    MouseClick c1 { }" +
1009            "    MouseClick c2 { }" +
1010            "  }" +
1011            "}";
1012
1013        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
1014
1015        decoder.decode(blub);
1016    }
1017
1018    /**
1019     *
1020     */
1021    @Test(expected=java.lang.IllegalArgumentException.class)
1022    public void test_Optional_01() {
1023        String blub =
1024            "UserSession {" +
1025            "  Optional op1 { }" +
1026            "}";
1027
1028        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
1029       
1030        decoder.decode(blub);
1031    }
1032
1033    /**
1034     *
1035     */
1036    @Test
1037    public void test_Optional_02() {
1038        String blub =
1039            "UserSession {" +
1040            "  Optional op1 {" +
1041            "    MouseClick c1 { }" +
1042            "  }" +
1043            "}";
1044
1045        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
1046           
1047        ITaskInstanceList list = decoder.decode(blub);
1048           
1049        assertTrue(list.get(0) instanceof IOptionalInstance);
1050        assertNotNull(((IOptionalInstance) list.get(0)).getChild());
1051        assertTrue(((IOptionalInstance) list.get(0)).getChild() instanceof IEventTaskInstance);
1052           
1053        assertTrue(list.get(0).getTask() instanceof IOptional);
1054        assertNotNull(((IOptional) list.get(0).getTask()).getMarkedTask());
1055        assertTrue(((IOptional) list.get(0).getTask()).getMarkedTask() instanceof IEventTask);
1056       
1057        assertEquals(((IOptionalInstance) list.get(0)).getChild().getTask(),
1058                     ((IOptional) list.get(0).getTask()).getMarkedTask());
1059
1060        new TaskTreeValidator().validate(list);
1061    }
1062
1063    /**
1064     *
1065     */
1066    @Test
1067    public void test_Optional_03() {
1068        String blub =
1069            "UserSession {" +
1070            "  Optional op1 {" +
1071            "    MouseClick c1 { }" +
1072            "  }" +
1073            "  Optional op1 {" +
1074            "    MouseClick c1 { }" +
1075            "  }" +
1076            "}";
1077
1078        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
1079
1080        ITaskInstanceList list = decoder.decode(blub);
1081
1082        assertTrue(list.get(0) instanceof IOptionalInstance);
1083        assertNotNull(((IOptionalInstance) list.get(0)).getChild());
1084        assertTrue(((IOptionalInstance) list.get(0)).getChild() instanceof IEventTaskInstance);
1085
1086        assertTrue(list.get(0).getTask() instanceof IOptional);
1087        assertNotNull(((IOptional) list.get(0).getTask()).getMarkedTask());
1088        assertTrue(((IOptional) list.get(0).getTask()).getMarkedTask() instanceof IEventTask);
1089
1090        assertTrue(list.get(1) instanceof IOptionalInstance);
1091        assertNotNull(((IOptionalInstance) list.get(1)).getChild());
1092        assertTrue(((IOptionalInstance) list.get(1)).getChild() instanceof IEventTaskInstance);
1093
1094        assertTrue(list.get(1).getTask() instanceof IOptional);
1095        assertNotNull(((IOptional) list.get(1).getTask()).getMarkedTask());
1096        assertTrue(((IOptional) list.get(1).getTask()).getMarkedTask() instanceof IEventTask);
1097
1098        assertFalse(list.get(0).equals(list.get(1)));
1099        assertTrue(list.get(0).getTask().equals(list.get(1).getTask()));
1100       
1101        assertFalse(((IOptionalInstance) list.get(0)).getChild().equals
1102                        (((IOptionalInstance) list.get(1)).getChild()));
1103        assertTrue(((IOptionalInstance) list.get(0)).getChild().getTask().equals
1104                   (((IOptionalInstance) list.get(1)).getChild().getTask()));
1105       
1106        new TaskTreeValidator().validate(list);
1107    }
1108
1109    /**
1110     *
1111     */
1112    @Test(expected=java.lang.IllegalArgumentException.class)
1113    public void test_Optional_04() {
1114        String blub =
1115            "UserSession {" +
1116            "  Optional op1 {" +
1117            "    MouseClick c1 { }" +
1118            "    MouseClick c1 { }" +
1119            "  }" +
1120            "}";
1121
1122        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
1123
1124        decoder.decode(blub);
1125    }
1126
1127    /**
1128     *
1129     */
1130    @Test(expected=java.lang.IllegalArgumentException.class)
1131    public void test_Optional_05() {
1132        String blub =
1133            "UserSession {" +
1134            "  Optional op1 {" +
1135            "    MouseClick c1 { }" +
1136            "  }" +
1137            "  Optional op1 {" +
1138            "    MouseClick c2 { }" +
1139            "  }" +
1140            "}";
1141
1142        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
1143
1144        decoder.decode(blub);
1145    }
1146
1147    /**
1148     *
1149     */
1150    @Test(expected=java.lang.IllegalArgumentException.class)
1151    public void test_Optional_06() {
1152        String blub =
1153            "UserSession {" +
1154            "  Optional op1 {" +
1155            "    MouseClick c1 { }" +
1156            "    MouseClick c2 { }" +
1157            "  }" +
1158            "}";
1159
1160        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
1161
1162        decoder.decode(blub);
1163    }
1164
1165    /**
1166     *
1167     */
1168    @Test
1169    public void test_Optional_07() {
1170        String blub =
1171            "UserSession {" +
1172            "  Optional op1 {" +
1173            "    MouseClick c1 { }" +
1174            "  }" +
1175            "  Optional op1 { }" +
1176            "}";
1177
1178        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
1179
1180        ITaskInstanceList list = decoder.decode(blub);
1181
1182        assertTrue(list.get(0) instanceof IOptionalInstance);
1183        assertNotNull(((IOptionalInstance) list.get(0)).getChild());
1184        assertTrue(((IOptionalInstance) list.get(0)).getChild() instanceof IEventTaskInstance);
1185
1186        assertTrue(list.get(0).getTask() instanceof IOptional);
1187        assertNotNull(((IOptional) list.get(0).getTask()).getMarkedTask());
1188        assertTrue(((IOptional) list.get(0).getTask()).getMarkedTask() instanceof IEventTask);
1189
1190        assertTrue(list.get(1) instanceof IOptionalInstance);
1191        assertNull(((IOptionalInstance) list.get(1)).getChild());
1192
1193        assertTrue(list.get(1).getTask() instanceof IOptional);
1194        assertNotNull(((IOptional) list.get(1).getTask()).getMarkedTask());
1195        assertTrue(((IOptional) list.get(1).getTask()).getMarkedTask() instanceof IEventTask);
1196
1197        assertFalse(list.get(0).equals(list.get(1)));
1198        assertTrue(list.get(0).getTask().equals(list.get(1).getTask()));
1199       
1200        new TaskTreeValidator().validate(list);
1201    }
1202
1203    /**
1204     *
1205     */
1206    @Test
1207    public void test_Optional_08() {
1208        String blub =
1209            "UserSession {" +
1210            "  Optional op1 { }" +
1211            "  Optional op1 {" +
1212            "    MouseClick c1 { }" +
1213            "  }" +
1214            "}";
1215
1216        TaskTreeDecoder decoder = new TaskTreeDecoder(new TaskFactory(), new TaskBuilder());
1217
1218        ITaskInstanceList list = decoder.decode(blub);
1219
1220        assertTrue(list.get(0) instanceof IOptionalInstance);
1221        assertNull(((IOptionalInstance) list.get(0)).getChild());
1222
1223        assertTrue(list.get(0).getTask() instanceof IOptional);
1224        assertNotNull(((IOptional) list.get(0).getTask()).getMarkedTask());
1225        assertTrue(((IOptional) list.get(0).getTask()).getMarkedTask() instanceof IEventTask);
1226
1227        assertTrue(list.get(1) instanceof IOptionalInstance);
1228        assertNotNull(((IOptionalInstance) list.get(1)).getChild());
1229        assertTrue(((IOptionalInstance) list.get(1)).getChild() instanceof IEventTaskInstance);
1230
1231        assertTrue(list.get(1).getTask() instanceof IOptional);
1232        assertNotNull(((IOptional) list.get(1).getTask()).getMarkedTask());
1233        assertTrue(((IOptional) list.get(1).getTask()).getMarkedTask() instanceof IEventTask);
1234
1235        assertFalse(list.get(0).equals(list.get(1)));
1236        assertTrue(list.get(0).getTask().equals(list.get(1).getTask()));
1237       
1238        new TaskTreeValidator().validate(list);
1239    }
1240}
Note: See TracBrowser for help on using the repository browser.