Ignore:
Timestamp:
08/14/13 17:04:42 (11 years ago)
Author:
pharms
Message:
  • rework of task model to move event instance stuff to task instances
  • introduction of sequence, selection, iteration and optional instances
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/autoquest-core-tasktrees-test/src/test/java/de/ugoe/cs/autoquest/tasktrees/treeimpl/TaskModelTest.java

    r1146 r1294  
    2424import org.junit.Test; 
    2525 
     26import de.ugoe.cs.autoquest.eventcore.Event; 
    2627import de.ugoe.cs.autoquest.eventcore.IEventTarget; 
    2728import de.ugoe.cs.autoquest.eventcore.IEventType; 
    2829import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask; 
     30import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTaskInstance; 
    2931import de.ugoe.cs.autoquest.tasktrees.treeifc.IIteration; 
     32import de.ugoe.cs.autoquest.tasktrees.treeifc.IIterationInstance; 
    3033import de.ugoe.cs.autoquest.tasktrees.treeifc.IOptional; 
     34import de.ugoe.cs.autoquest.tasktrees.treeifc.IOptionalInstance; 
    3135import de.ugoe.cs.autoquest.tasktrees.treeifc.ISelection; 
     36import de.ugoe.cs.autoquest.tasktrees.treeifc.ISelectionInstance; 
    3237import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequence; 
     38import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequenceInstance; 
    3339import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 
    3440import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskInstance; 
     
    4551 
    4652/** 
    47  * TODO comment 
    48  *  
    49  * @version $Revision: $ $Date: 02.04.2012$ 
    50  * @author 2012, last modified by $Author: patrick$ 
     53 * 
    5154 */ 
    5255public class TaskModelTest { 
     
    6972        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    7073         
    71         IEventTask task = taskFactory.createNewEventTask(eventType, eventTarget); 
     74        IEventTask task = createNewEventTask(eventType, eventTarget); 
    7275         
    7376        assertNotNull(task); 
     
    7679        assertTrue(task.equals(task)); 
    7780         
    78         assertEquals(eventType, task.getEventType()); 
    79         assertEquals(eventTarget, task.getEventTarget()); 
     81        IEventTaskInstance instance = (IEventTaskInstance) task.getInstances().iterator().next(); 
     82        assertEquals(eventType, instance.getEvent().getType()); 
     83        assertEquals(eventTarget, instance.getEvent().getTarget()); 
    8084    } 
    8185 
     
    8892        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    8993         
    90         IEventTask task1 = taskFactory.createNewEventTask(eventType, eventTarget); 
    91         IEventTask task2 = taskFactory.createNewEventTask(eventType, eventTarget); 
     94        IEventTask task1 = createNewEventTask(eventType, eventTarget); 
     95        IEventTask task2 = createNewEventTask(eventType, eventTarget); 
    9296         
    9397        // the tasks will not be equal as they should have a different id 
     
    103107        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    104108         
    105         IEventTask task = taskFactory.createNewEventTask(eventType, eventTarget); 
    106         ITaskInstance taskInstance1 = taskFactory.createNewTaskInstance(task); 
    107         ITaskInstance taskInstance2 = taskFactory.createNewTaskInstance(task); 
     109        IEventTask task = createNewEventTask(eventType, eventTarget); 
     110        ITaskInstance taskInstance1 = createNewTaskInstance(task); 
     111        ITaskInstance taskInstance2 = createNewTaskInstance(task); 
    108112         
    109113        assertFalse(taskInstance1.equals(taskInstance2)); 
     
    133137        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    134138         
    135         IEventTask child = taskFactory.createNewEventTask(eventType, eventTarget); 
     139        IEventTask child = createNewEventTask(eventType, eventTarget); 
    136140 
    137141        ISequence task = taskFactory.createNewSequence(); 
     
    152156        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    153157         
    154         IEventTask child1 = taskFactory.createNewEventTask(eventType, eventTarget); 
    155         IEventTask child2 = taskFactory.createNewEventTask(eventType, eventTarget); 
    156         IEventTask child3 = taskFactory.createNewEventTask(eventType, eventTarget); 
    157         IEventTask child4 = taskFactory.createNewEventTask(eventType, eventTarget); 
    158         IEventTask child5 = taskFactory.createNewEventTask(eventType, eventTarget); 
     158        IEventTask child1 = createNewEventTask(eventType, eventTarget); 
     159        IEventTask child2 = createNewEventTask(eventType, eventTarget); 
     160        IEventTask child3 = createNewEventTask(eventType, eventTarget); 
     161        IEventTask child4 = createNewEventTask(eventType, eventTarget); 
     162        IEventTask child5 = createNewEventTask(eventType, eventTarget); 
    159163 
    160164        ISequence task = taskFactory.createNewSequence(); 
     
    198202        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    199203         
    200         IEventTask child = taskFactory.createNewEventTask(eventType, eventTarget); 
     204        IEventTask child = createNewEventTask(eventType, eventTarget); 
    201205 
    202206        ISelection task = taskFactory.createNewSelection(); 
     
    217221        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    218222         
    219         IEventTask child1 = taskFactory.createNewEventTask(eventType, eventTarget); 
    220         IEventTask child2 = taskFactory.createNewEventTask(eventType, eventTarget); 
    221         IEventTask child3 = taskFactory.createNewEventTask(eventType, eventTarget); 
    222         IEventTask child4 = taskFactory.createNewEventTask(eventType, eventTarget); 
    223         IEventTask child5 = taskFactory.createNewEventTask(eventType, eventTarget); 
     223        IEventTask child1 = createNewEventTask(eventType, eventTarget); 
     224        IEventTask child2 = createNewEventTask(eventType, eventTarget); 
     225        IEventTask child3 = createNewEventTask(eventType, eventTarget); 
     226        IEventTask child4 = createNewEventTask(eventType, eventTarget); 
     227        IEventTask child5 = createNewEventTask(eventType, eventTarget); 
    224228 
    225229        ISelection task = taskFactory.createNewSelection(); 
     
    262266        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    263267         
    264         IEventTask child = taskFactory.createNewEventTask(eventType, eventTarget); 
     268        IEventTask child = createNewEventTask(eventType, eventTarget); 
    265269 
    266270        IIteration task = taskFactory.createNewIteration(); 
     
    279283        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    280284         
    281         IEventTask child1 = taskFactory.createNewEventTask(eventType, eventTarget); 
    282         IEventTask child2 = taskFactory.createNewEventTask(eventType, eventTarget); 
     285        IEventTask child1 = createNewEventTask(eventType, eventTarget); 
     286        IEventTask child2 = createNewEventTask(eventType, eventTarget); 
    283287 
    284288        IIteration task = taskFactory.createNewIteration(); 
     
    312316        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    313317         
    314         IEventTask child = taskFactory.createNewEventTask(eventType, eventTarget); 
     318        IEventTask child = createNewEventTask(eventType, eventTarget); 
    315319 
    316320        IOptional task = taskFactory.createNewOptional(); 
     
    329333        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    330334         
    331         IEventTask child1 = taskFactory.createNewEventTask(eventType, eventTarget); 
    332         IEventTask child2 = taskFactory.createNewEventTask(eventType, eventTarget); 
     335        IEventTask child1 = createNewEventTask(eventType, eventTarget); 
     336        IEventTask child2 = createNewEventTask(eventType, eventTarget); 
    333337 
    334338        IOptional task = taskFactory.createNewOptional(); 
     
    348352        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    349353         
    350         IEventTask task = taskFactory.createNewEventTask(eventType, eventTarget); 
    351          
    352         ITaskInstance taskInstance = taskFactory.createNewTaskInstance(task); 
     354        IEventTask task = createNewEventTask(eventType, eventTarget); 
     355         
     356        IEventTaskInstance taskInstance = createNewTaskInstance(task); 
    353357         
    354358        assertNotNull(taskInstance); 
     
    356360        assertTrue(taskInstance.equals(taskInstance)); 
    357361        assertFalse(taskInstance.equals(task)); 
    358         assertNotNull(taskInstance.getChildren()); 
    359         assertEquals(0, taskInstance.getChildren().size()); 
    360362    } 
    361363 
     
    368370        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    369371         
    370         IEventTask task = taskFactory.createNewEventTask(eventType, eventTarget); 
    371          
    372         ITaskInstance taskInstance1 = taskFactory.createNewTaskInstance(task); 
    373         ITaskInstance taskInstance2 = taskFactory.createNewTaskInstance(task); 
     372        IEventTask task = createNewEventTask(eventType, eventTarget); 
     373         
     374        ITaskInstance taskInstance1 = createNewTaskInstance(task); 
     375        ITaskInstance taskInstance2 = createNewTaskInstance(task); 
    374376         
    375377        assertFalse(taskInstance1.equals(taskInstance2)); 
    376     } 
    377  
    378     /** 
    379      * 
    380      */ 
    381     @Test(expected=IllegalArgumentException.class) 
    382     public void test_EventTaskInstance_03() throws Exception { 
    383         IEventType eventType = new DummyInteraction("interaction", 1); 
    384         IEventTarget eventTarget = new DummyGUIElement("elem"); 
    385          
    386         IEventTask task = taskFactory.createNewEventTask(eventType, eventTarget); 
    387          
    388         ITaskInstance taskInstance1 = taskFactory.createNewTaskInstance(task); 
    389         ITaskInstance taskInstance2 = taskFactory.createNewTaskInstance(task); 
    390          
    391         taskBuilder.addChild(taskInstance1, taskInstance2); 
    392378    } 
    393379 
     
    400386        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    401387         
    402         IEventTask task = taskFactory.createNewEventTask(eventType, eventTarget); 
     388        IEventTask task = createNewEventTask(eventType, eventTarget); 
    403389         
    404390        ISequence sequence = taskFactory.createNewSequence(); 
    405391         
    406         ITaskInstance taskInstance = taskFactory.createNewTaskInstance(task); 
    407         ITaskInstance sequenceInstance = taskFactory.createNewTaskInstance(sequence); 
     392        ITaskInstance taskInstance = createNewTaskInstance(task); 
     393        ISequenceInstance sequenceInstance = createNewTaskInstance(sequence); 
    408394         
    409395        taskBuilder.addChild(sequenceInstance, taskInstance); 
     
    418404        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    419405         
    420         IEventTask task = taskFactory.createNewEventTask(eventType, eventTarget); 
     406        IEventTask task = createNewEventTask(eventType, eventTarget); 
    421407         
    422408        ISequence sequence = taskFactory.createNewSequence(); 
    423409        taskBuilder.addChild(sequence, task); 
    424410         
    425         ITaskInstance taskInstance = taskFactory.createNewTaskInstance(task); 
    426         ITaskInstance sequenceInstance = taskFactory.createNewTaskInstance(sequence); 
     411        ITaskInstance taskInstance = createNewTaskInstance(task); 
     412        ISequenceInstance sequenceInstance = createNewTaskInstance(sequence); 
    427413         
    428414        taskBuilder.addChild(sequenceInstance, taskInstance); 
    429415         
    430         assertNotNull(sequenceInstance.getChildren()); 
    431         assertEquals(1, sequenceInstance.getChildren().size()); 
    432         assertEquals(taskInstance, sequenceInstance.getChildren().get(0)); 
     416        assertEquals(1, sequenceInstance.size()); 
     417        assertEquals(taskInstance, sequenceInstance.get(0)); 
    433418    } 
    434419 
     
    441426        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    442427         
    443         IEventTask task1 = taskFactory.createNewEventTask(eventType, eventTarget); 
    444         IEventTask task2 = taskFactory.createNewEventTask(eventType, eventTarget); 
    445         IEventTask task3 = taskFactory.createNewEventTask(eventType, eventTarget); 
    446         IEventTask task4 = taskFactory.createNewEventTask(eventType, eventTarget); 
    447         IEventTask task5 = taskFactory.createNewEventTask(eventType, eventTarget); 
     428        IEventTask task1 = createNewEventTask(eventType, eventTarget); 
     429        IEventTask task2 = createNewEventTask(eventType, eventTarget); 
     430        IEventTask task3 = createNewEventTask(eventType, eventTarget); 
     431        IEventTask task4 = createNewEventTask(eventType, eventTarget); 
     432        IEventTask task5 = createNewEventTask(eventType, eventTarget); 
    448433         
    449434        ISequence sequence = taskFactory.createNewSequence(); 
     
    454439        taskBuilder.addChild(sequence, task5); 
    455440         
    456         ITaskInstance taskInstance1 = taskFactory.createNewTaskInstance(task1); 
    457         ITaskInstance taskInstance2 = taskFactory.createNewTaskInstance(task2); 
    458         ITaskInstance taskInstance3 = taskFactory.createNewTaskInstance(task3); 
    459         ITaskInstance taskInstance4 = taskFactory.createNewTaskInstance(task4); 
    460         ITaskInstance taskInstance5 = taskFactory.createNewTaskInstance(task5); 
    461         ITaskInstance sequenceInstance = taskFactory.createNewTaskInstance(sequence); 
     441        ITaskInstance taskInstance1 = createNewTaskInstance(task1); 
     442        ITaskInstance taskInstance2 = createNewTaskInstance(task2); 
     443        ITaskInstance taskInstance3 = createNewTaskInstance(task3); 
     444        ITaskInstance taskInstance4 = createNewTaskInstance(task4); 
     445        ITaskInstance taskInstance5 = createNewTaskInstance(task5); 
     446        ISequenceInstance sequenceInstance = createNewTaskInstance(sequence); 
    462447         
    463448        taskBuilder.addChild(sequenceInstance, taskInstance1); 
     
    467452        taskBuilder.addChild(sequenceInstance, taskInstance5); 
    468453         
    469         assertNotNull(sequenceInstance.getChildren()); 
    470         assertEquals(5, sequenceInstance.getChildren().size()); 
    471         assertEquals(taskInstance1, sequenceInstance.getChildren().get(0)); 
    472         assertEquals(taskInstance2, sequenceInstance.getChildren().get(1)); 
    473         assertEquals(taskInstance3, sequenceInstance.getChildren().get(2)); 
    474         assertEquals(taskInstance4, sequenceInstance.getChildren().get(3)); 
    475         assertEquals(taskInstance5, sequenceInstance.getChildren().get(4)); 
     454        assertEquals(5, sequenceInstance.size()); 
     455        assertEquals(taskInstance1, sequenceInstance.get(0)); 
     456        assertEquals(taskInstance2, sequenceInstance.get(1)); 
     457        assertEquals(taskInstance3, sequenceInstance.get(2)); 
     458        assertEquals(taskInstance4, sequenceInstance.get(3)); 
     459        assertEquals(taskInstance5, sequenceInstance.get(4)); 
    476460    } 
    477461 
     
    484468        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    485469         
    486         IEventTask task = taskFactory.createNewEventTask(eventType, eventTarget); 
     470        IEventTask task = createNewEventTask(eventType, eventTarget); 
    487471         
    488472        ISelection selection = taskFactory.createNewSelection(); 
    489473         
    490         ITaskInstance taskInstance = taskFactory.createNewTaskInstance(task); 
    491         ITaskInstance selectionInstance = taskFactory.createNewTaskInstance(selection); 
    492          
    493         taskBuilder.addChild(selectionInstance, taskInstance); 
     474        ITaskInstance taskInstance = createNewTaskInstance(task); 
     475        ISelectionInstance selectionInstance = createNewTaskInstance(selection); 
     476         
     477        taskBuilder.setChild(selectionInstance, taskInstance); 
    494478    } 
    495479 
     
    502486        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    503487         
    504         IEventTask task = taskFactory.createNewEventTask(eventType, eventTarget); 
     488        IEventTask task = createNewEventTask(eventType, eventTarget); 
    505489         
    506490        ISelection selection = taskFactory.createNewSelection(); 
    507491        taskBuilder.addChild(selection, task); 
    508492         
    509         ITaskInstance taskInstance = taskFactory.createNewTaskInstance(task); 
    510         ITaskInstance selectionInstance = taskFactory.createNewTaskInstance(selection); 
    511          
    512         taskBuilder.addChild(selectionInstance, taskInstance); 
    513          
    514         assertNotNull(selectionInstance.getChildren()); 
    515         assertEquals(1, selectionInstance.getChildren().size()); 
    516         assertEquals(taskInstance, selectionInstance.getChildren().get(0)); 
    517     } 
    518  
    519     /** 
    520      * 
    521      */ 
    522     @Test(expected=IllegalArgumentException.class) 
     493        ITaskInstance taskInstance = createNewTaskInstance(task); 
     494        ISelectionInstance selectionInstance = createNewTaskInstance(selection); 
     495         
     496        taskBuilder.setChild(selectionInstance, taskInstance); 
     497         
     498        assertNotNull(selectionInstance.getChild()); 
     499        assertEquals(taskInstance, selectionInstance.getChild()); 
     500    } 
     501 
     502    /** 
     503     * 
     504     */ 
     505    @Test 
    523506    public void test_SelectionInstance_03() throws Exception { 
    524507        IEventType eventType = new DummyInteraction("interaction", 1); 
    525508        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    526509         
    527         IEventTask task1 = taskFactory.createNewEventTask(eventType, eventTarget); 
    528         IEventTask task2 = taskFactory.createNewEventTask(eventType, eventTarget); 
    529         IEventTask task3 = taskFactory.createNewEventTask(eventType, eventTarget); 
    530         IEventTask task4 = taskFactory.createNewEventTask(eventType, eventTarget); 
    531         IEventTask task5 = taskFactory.createNewEventTask(eventType, eventTarget); 
     510        IEventTask task1 = createNewEventTask(eventType, eventTarget); 
     511        IEventTask task2 = createNewEventTask(eventType, eventTarget); 
     512        IEventTask task3 = createNewEventTask(eventType, eventTarget); 
     513        IEventTask task4 = createNewEventTask(eventType, eventTarget); 
     514        IEventTask task5 = createNewEventTask(eventType, eventTarget); 
    532515         
    533516        ISelection selection = taskFactory.createNewSelection(); 
     
    538521        taskBuilder.addChild(selection, task5); 
    539522         
    540         ITaskInstance taskInstance1 = taskFactory.createNewTaskInstance(task1); 
    541         ITaskInstance taskInstance2 = taskFactory.createNewTaskInstance(task2); 
    542         ITaskInstance selectionInstance = taskFactory.createNewTaskInstance(selection); 
    543          
    544         taskBuilder.addChild(selectionInstance, taskInstance1); 
    545         taskBuilder.addChild(selectionInstance, taskInstance2); 
     523        ITaskInstance taskInstance1 = createNewTaskInstance(task1); 
     524        ITaskInstance taskInstance2 = createNewTaskInstance(task2); 
     525        ISelectionInstance selectionInstance = createNewTaskInstance(selection); 
     526         
     527        taskBuilder.setChild(selectionInstance, taskInstance1); 
     528        taskBuilder.setChild(selectionInstance, taskInstance2); 
     529         
     530        assertEquals(taskInstance2, selectionInstance.getChild()); 
    546531    } 
    547532 
     
    554539        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    555540         
    556         IEventTask task = taskFactory.createNewEventTask(eventType, eventTarget); 
     541        IEventTask task = createNewEventTask(eventType, eventTarget); 
    557542         
    558543        IIteration iteration = taskFactory.createNewIteration(); 
    559544         
    560         ITaskInstance taskInstance = taskFactory.createNewTaskInstance(task); 
    561         ITaskInstance iterationInstance = taskFactory.createNewTaskInstance(iteration); 
     545        ITaskInstance taskInstance = createNewTaskInstance(task); 
     546        IIterationInstance iterationInstance = createNewTaskInstance(iteration); 
    562547         
    563548        taskBuilder.addChild(iterationInstance, taskInstance); 
     
    572557        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    573558         
    574         IEventTask task = taskFactory.createNewEventTask(eventType, eventTarget); 
     559        IEventTask task = createNewEventTask(eventType, eventTarget); 
    575560         
    576561        IIteration iteration = taskFactory.createNewIteration(); 
    577562        taskBuilder.setMarkedTask(iteration, task); 
    578563         
    579         ITaskInstance taskInstance = taskFactory.createNewTaskInstance(task); 
    580         ITaskInstance iterationInstance = taskFactory.createNewTaskInstance(iteration); 
     564        ITaskInstance taskInstance = createNewTaskInstance(task); 
     565        IIterationInstance iterationInstance = createNewTaskInstance(iteration); 
    581566         
    582567        taskBuilder.addChild(iterationInstance, taskInstance); 
    583568         
    584         assertNotNull(iterationInstance.getChildren()); 
    585         assertEquals(1, iterationInstance.getChildren().size()); 
    586         assertEquals(taskInstance, iterationInstance.getChildren().get(0)); 
     569        assertEquals(1, iterationInstance.size()); 
     570        assertEquals(taskInstance, iterationInstance.get(0)); 
    587571    } 
    588572 
     
    595579        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    596580         
    597         IEventTask task1 = taskFactory.createNewEventTask(eventType, eventTarget); 
    598         IEventTask task2 = taskFactory.createNewEventTask(eventType, eventTarget); 
     581        IEventTask task1 = createNewEventTask(eventType, eventTarget); 
     582        IEventTask task2 = createNewEventTask(eventType, eventTarget); 
    599583         
    600584        IIteration iteration = taskFactory.createNewIteration(); 
     
    602586        taskBuilder.setMarkedTask(iteration, task2); 
    603587         
    604         ITaskInstance taskInstance1 = taskFactory.createNewTaskInstance(task1); 
    605         ITaskInstance iterationInstance = taskFactory.createNewTaskInstance(iteration); 
     588        ITaskInstance taskInstance1 = createNewTaskInstance(task1); 
     589        IIterationInstance iterationInstance = createNewTaskInstance(iteration); 
    606590         
    607591        taskBuilder.addChild(iterationInstance, taskInstance1); 
     
    616600        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    617601         
    618         IEventTask task1 = taskFactory.createNewEventTask(eventType, eventTarget); 
    619         IEventTask task2 = taskFactory.createNewEventTask(eventType, eventTarget); 
     602        IEventTask task1 = createNewEventTask(eventType, eventTarget); 
     603        IEventTask task2 = createNewEventTask(eventType, eventTarget); 
    620604         
    621605        IIteration iteration = taskFactory.createNewIteration(); 
     
    623607        taskBuilder.setMarkedTask(iteration, task2); 
    624608         
    625         ITaskInstance taskInstance2 = taskFactory.createNewTaskInstance(task2); 
    626         ITaskInstance iterationInstance = taskFactory.createNewTaskInstance(iteration); 
     609        ITaskInstance taskInstance2 = createNewTaskInstance(task2); 
     610        IIterationInstance iterationInstance = createNewTaskInstance(iteration); 
    627611         
    628612        taskBuilder.addChild(iterationInstance, taskInstance2); 
    629613         
    630         assertNotNull(iterationInstance.getChildren()); 
    631         assertEquals(1, iterationInstance.getChildren().size()); 
    632         assertEquals(taskInstance2, iterationInstance.getChildren().get(0)); 
     614        assertEquals(1, iterationInstance.size()); 
     615        assertEquals(taskInstance2, iterationInstance.get(0)); 
    633616    } 
    634617 
     
    641624        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    642625         
    643         IEventTask task = taskFactory.createNewEventTask(eventType, eventTarget); 
     626        IEventTask task = createNewEventTask(eventType, eventTarget); 
    644627         
    645628        IOptional optional = taskFactory.createNewOptional(); 
    646629         
    647         ITaskInstance taskInstance = taskFactory.createNewTaskInstance(task); 
    648         ITaskInstance optionalInstance = taskFactory.createNewTaskInstance(optional); 
    649          
    650         taskBuilder.addChild(optionalInstance, taskInstance); 
     630        ITaskInstance taskInstance = createNewTaskInstance(task); 
     631        IOptionalInstance optionalInstance = createNewTaskInstance(optional); 
     632         
     633        taskBuilder.setChild(optionalInstance, taskInstance); 
    651634    } 
    652635 
     
    659642        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    660643         
    661         IEventTask task = taskFactory.createNewEventTask(eventType, eventTarget); 
     644        IEventTask task = createNewEventTask(eventType, eventTarget); 
    662645         
    663646        IOptional optional = taskFactory.createNewOptional(); 
    664647        taskBuilder.setMarkedTask(optional, task); 
    665648         
    666         ITaskInstance taskInstance = taskFactory.createNewTaskInstance(task); 
    667         ITaskInstance optionalInstance = taskFactory.createNewTaskInstance(optional); 
    668          
    669         taskBuilder.addChild(optionalInstance, taskInstance); 
    670          
    671         assertNotNull(optionalInstance.getChildren()); 
    672         assertEquals(1, optionalInstance.getChildren().size()); 
    673         assertEquals(taskInstance, optionalInstance.getChildren().get(0)); 
     649        ITaskInstance taskInstance = createNewTaskInstance(task); 
     650        IOptionalInstance optionalInstance = createNewTaskInstance(optional); 
     651         
     652        taskBuilder.setChild(optionalInstance, taskInstance); 
     653         
     654        assertNotNull(optionalInstance.getChild()); 
     655        assertEquals(taskInstance, optionalInstance.getChild()); 
    674656    } 
    675657 
     
    682664        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    683665         
    684         IEventTask task1 = taskFactory.createNewEventTask(eventType, eventTarget); 
    685         IEventTask task2 = taskFactory.createNewEventTask(eventType, eventTarget); 
     666        IEventTask task1 = createNewEventTask(eventType, eventTarget); 
     667        IEventTask task2 = createNewEventTask(eventType, eventTarget); 
    686668         
    687669        IOptional optional = taskFactory.createNewOptional(); 
     
    689671        taskBuilder.setMarkedTask(optional, task2); 
    690672         
    691         ITaskInstance taskInstance1 = taskFactory.createNewTaskInstance(task1); 
    692         ITaskInstance optionalInstance = taskFactory.createNewTaskInstance(optional); 
    693          
    694         taskBuilder.addChild(optionalInstance, taskInstance1); 
     673        ITaskInstance taskInstance1 = createNewTaskInstance(task1); 
     674        IOptionalInstance optionalInstance = createNewTaskInstance(optional); 
     675         
     676        taskBuilder.setChild(optionalInstance, taskInstance1); 
    695677    } 
    696678 
     
    703685        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    704686         
    705         IEventTask task1 = taskFactory.createNewEventTask(eventType, eventTarget); 
    706         IEventTask task2 = taskFactory.createNewEventTask(eventType, eventTarget); 
     687        IEventTask task1 = createNewEventTask(eventType, eventTarget); 
     688        IEventTask task2 = createNewEventTask(eventType, eventTarget); 
    707689         
    708690        IOptional optional = taskFactory.createNewOptional(); 
     
    710692        taskBuilder.setMarkedTask(optional, task2); 
    711693         
    712         ITaskInstance taskInstance2 = taskFactory.createNewTaskInstance(task2); 
    713         ITaskInstance optionalInstance = taskFactory.createNewTaskInstance(optional); 
    714          
    715         taskBuilder.addChild(optionalInstance, taskInstance2); 
    716          
    717         assertNotNull(optionalInstance.getChildren()); 
    718         assertEquals(1, optionalInstance.getChildren().size()); 
    719         assertEquals(taskInstance2, optionalInstance.getChildren().get(0)); 
     694        ITaskInstance taskInstance2 = createNewTaskInstance(task2); 
     695        IOptionalInstance optionalInstance = createNewTaskInstance(optional); 
     696         
     697        taskBuilder.setChild(optionalInstance, taskInstance2); 
     698         
     699        assertNotNull(optionalInstance.getChild()); 
     700        assertEquals(taskInstance2, optionalInstance.getChild()); 
    720701    } 
    721702 
     
    740721        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    741722         
    742         IEventTask task = taskFactory.createNewEventTask(eventType, eventTarget); 
     723        IEventTask task = createNewEventTask(eventType, eventTarget); 
    743724         
    744725        IUserSession userSession = taskFactory.createUserSession(); 
    745726         
    746         ITaskInstance taskInstance = taskFactory.createNewTaskInstance(task); 
     727        ITaskInstance taskInstance = createNewTaskInstance(task); 
    747728         
    748729        taskBuilder.addExecutedTask(userSession, taskInstance); 
     
    761742        IEventTarget eventTarget = new DummyGUIElement("elem"); 
    762743         
    763         IEventTask task = taskFactory.createNewEventTask(eventType, eventTarget); 
     744        IEventTask task = createNewEventTask(eventType, eventTarget); 
    764745        ISequence sequence = taskFactory.createNewSequence(); 
    765746        ISelection selection = taskFactory.createNewSelection(); 
     
    772753        taskBuilder.setMarkedTask(optional, task); 
    773754         
    774         ITaskInstance taskInstance = taskFactory.createNewTaskInstance(task); 
    775         ITaskInstance sequenceInstance = taskFactory.createNewTaskInstance(sequence); 
    776         ITaskInstance selectionInstance = taskFactory.createNewTaskInstance(selection); 
    777         ITaskInstance iterationInstance = taskFactory.createNewTaskInstance(iteration); 
    778         ITaskInstance optionalInstance = taskFactory.createNewTaskInstance(optional); 
    779          
    780         taskBuilder.addChild(sequenceInstance, taskFactory.createNewTaskInstance(task)); 
    781         taskBuilder.addChild(selectionInstance, taskFactory.createNewTaskInstance(task)); 
    782         taskBuilder.addChild(iterationInstance, taskFactory.createNewTaskInstance(task)); 
    783         taskBuilder.addChild(optionalInstance, taskFactory.createNewTaskInstance(task)); 
     755        ITaskInstance taskInstance = createNewTaskInstance(task); 
     756        ISequenceInstance sequenceInstance = createNewTaskInstance(sequence); 
     757        ISelectionInstance selectionInstance = createNewTaskInstance(selection); 
     758        IIterationInstance iterationInstance = createNewTaskInstance(iteration); 
     759        IOptionalInstance optionalInstance = createNewTaskInstance(optional); 
     760         
     761        taskBuilder.addChild(sequenceInstance, createNewTaskInstance(task)); 
     762        taskBuilder.setChild(selectionInstance, createNewTaskInstance(task)); 
     763        taskBuilder.addChild(iterationInstance, createNewTaskInstance(task)); 
     764        taskBuilder.setChild(optionalInstance, createNewTaskInstance(task)); 
    784765         
    785766        IUserSession userSession = taskFactory.createUserSession(); 
     
    823804            } 
    824805             
    825             ITaskInstance taskInstance = instantiateTask(task, noOfMaxChildren); 
     806            ISequenceInstance sequenceInstance = 
     807                (ISequenceInstance) instantiateTask(task, noOfMaxChildren); 
    826808             
    827809            System.err.println("  creating user session"); 
     
    829811            IUserSession session = taskFactory.createUserSession(); 
    830812             
    831             for (ITaskInstance child : taskInstance.getChildren()) { 
     813            for (ITaskInstance child : sequenceInstance) { 
    832814                taskBuilder.addExecutedTask(session, child); 
    833815            } 
     
    836818            sessions.add(session); 
    837819             
    838             ITaskModel taskTree = taskFactory.createTaskModel(sessions); 
     820            ITaskModel taskModel = taskFactory.createTaskModel(sessions); 
    839821 
    840822            System.err.println("  validating task tree"); 
    841823            Map<ITask, ITaskInfo> actualTaskInfos = new HashMap<ITask, ITaskInfo>(); 
    842824             
    843             for (ITask currentTask : taskTree.getTasks()) { 
    844                 actualTaskInfos.put(currentTask, taskTree.getTaskInfo(currentTask)); 
     825            for (ITask currentTask : taskModel.getTasks()) { 
     826                actualTaskInfos.put(currentTask, taskModel.getTaskInfo(currentTask)); 
    845827            } 
    846828             
     
    988970        Thread.sleep(2); 
    989971        long id = System.currentTimeMillis(); 
    990         IEventTask task = taskFactory.createNewEventTask 
     972        IEventTask task = createNewEventTask 
    991973            (new DummyInteraction("interaction" + id, 1), new DummyGUIElement("elem" + id)); 
    992974 
     
    10641046         
    10651047        for (int i = 0; i < noOfChildren; i++) { 
    1066             ITask child = createTaskTree(maxNoOfChildren, maxDepth - 1, taskInfos); 
     1048            ITask child; 
     1049            do { 
     1050                child = createTaskTree(maxNoOfChildren, maxDepth - 1, taskInfos); 
     1051            } 
     1052            while (child instanceof ISelection); 
     1053             
    10671054            taskBuilder.addChild(selection, child); 
    10681055        } 
     
    10991086        IIteration iteration = taskFactory.createNewIteration(); 
    11001087 
    1101         ITask child = createTaskTree(maxNoOfChildren, maxDepth - 1, taskInfos); 
     1088        ITask child; 
     1089        do { 
     1090            child = createTaskTree(maxNoOfChildren, maxDepth - 1, taskInfos); 
     1091        } 
     1092        while ((child instanceof IOptional) || (child instanceof IIteration)); 
     1093         
    11021094        taskBuilder.setMarkedTask(iteration, child); 
    11031095 
     
    11331125        IOptional optional = taskFactory.createNewOptional(); 
    11341126 
    1135         ITask child = createTaskTree(maxNoOfChildren, maxDepth - 1, taskInfos); 
     1127        ITask child; 
     1128        do { 
     1129            child = createTaskTree(maxNoOfChildren, maxDepth - 1, taskInfos); 
     1130        } 
     1131        while (child instanceof IOptional); 
     1132         
    11361133        taskBuilder.setMarkedTask(optional, child); 
    11371134 
     
    11931190     */ 
    11941191    private ITaskInstance instantiateTask(ITask task, int maxIterationCount) throws Exception { 
    1195         ITaskInstance instance = taskFactory.createNewTaskInstance(task); 
     1192        ITaskInstance instance = createNewTaskInstance(task); 
    11961193 
    11971194        if (task instanceof ISequence) { 
    11981195            for (ITask child : ((ISequence) task).getChildren()) { 
    1199                 taskBuilder.addChild(instance, instantiateTask(child, maxIterationCount)); 
     1196                taskBuilder.addChild 
     1197                    ((ISequenceInstance) instance, instantiateTask(child, maxIterationCount)); 
    12001198            } 
    12011199        } 
     
    12031201            List<ITask> children = ((ISelection) task).getChildren(); 
    12041202            int index = randomize(children.size()); 
    1205             taskBuilder.addChild(instance, instantiateTask(children.get(index), maxIterationCount)); 
     1203            taskBuilder.setChild((ISelectionInstance) instance, 
     1204                                 instantiateTask(children.get(index),maxIterationCount)); 
    12061205        } 
    12071206        else if (task instanceof IIteration) { 
     
    12101209             
    12111210            for (int i = 0; i < count; i++) { 
    1212                 taskBuilder.addChild(instance, instantiateTask(child, maxIterationCount)); 
     1211                taskBuilder.addChild 
     1212                    ((IIterationInstance) instance, instantiateTask(child, maxIterationCount)); 
    12131213            } 
    12141214        } 
     
    12171217             
    12181218            if (randomize(1) == 0) { 
    1219                 taskBuilder.addChild(instance, instantiateTask(child, maxIterationCount)); 
     1219                taskBuilder.setChild((IOptionalInstance) instance, 
     1220                                     instantiateTask(child, maxIterationCount)); 
    12201221            } 
    12211222        } 
     
    12441245        return value + min; 
    12451246    } 
     1247     
     1248    /** 
     1249     * 
     1250     */ 
     1251    protected IEventTask createNewEventTask(IEventType eventType, IEventTarget eventTarget) { 
     1252        IEventTask eventTask = taskFactory.createNewEventTask(eventType + " --> " + eventTarget); 
     1253        taskFactory.createNewTaskInstance(eventTask, new Event(eventType, eventTarget)); 
     1254        return eventTask; 
     1255    } 
     1256 
     1257    /** 
     1258     * 
     1259     */ 
     1260    private ITaskInstance createNewTaskInstance(ITask task) { 
     1261        if (task instanceof IEventTask) { 
     1262            return createNewTaskInstance((IEventTask) task); 
     1263        } 
     1264        else if (task instanceof ISequence) { 
     1265            return createNewTaskInstance((ISequence) task); 
     1266        } 
     1267        else if (task instanceof ISelection) { 
     1268            return createNewTaskInstance((ISelection) task); 
     1269        } 
     1270        else if (task instanceof IIteration) { 
     1271            return createNewTaskInstance((IIteration) task); 
     1272        } 
     1273        else if (task instanceof IOptional) { 
     1274            return createNewTaskInstance((IOptional) task); 
     1275        } 
     1276         
     1277        throw new IllegalArgumentException("unknown type of task"); 
     1278    } 
     1279 
     1280    /** 
     1281     * 
     1282     */ 
     1283    private IEventTaskInstance createNewTaskInstance(IEventTask task) { 
     1284        IEventTaskInstance existingInstance = 
     1285            (IEventTaskInstance) task.getInstances().iterator().next(); 
     1286        return taskFactory.createNewTaskInstance(task, existingInstance.getEvent()); 
     1287    } 
     1288 
     1289    /** 
     1290     * 
     1291     */ 
     1292    private ISequenceInstance createNewTaskInstance(ISequence task) { 
     1293        return taskFactory.createNewTaskInstance(task); 
     1294    } 
     1295 
     1296    /** 
     1297     * 
     1298     */ 
     1299    private ISelectionInstance createNewTaskInstance(ISelection task) { 
     1300        return taskFactory.createNewTaskInstance(task); 
     1301    } 
     1302 
     1303    /** 
     1304     * 
     1305     */ 
     1306    private IIterationInstance createNewTaskInstance(IIteration task) { 
     1307        return taskFactory.createNewTaskInstance(task); 
     1308    } 
     1309 
     1310    /** 
     1311     * 
     1312     */ 
     1313    private IOptionalInstance createNewTaskInstance(IOptional task) { 
     1314        return taskFactory.createNewTaskInstance(task); 
     1315    } 
     1316 
    12461317} 
Note: See TracChangeset for help on using the changeset viewer.