Package Wizardry {
    Type integer
    Type string
    Type Integer
    Type String
    
    Collection iCol of integer
//    Collection nCol of iCol
    
    Message Gate http accepts string, integer, String, Integer
    Component node {
        gate http interface1
        gate http interface2
        gate http interface3
    } 
    
    Configuration base {  
        node sut_node as SUT,
//        node sut_node as Tester,
        node tester as Tester,
        connect sut_node::interface1 to tester::interface1,
        connect sut_node::interface2 to tester::interface1
        //TODO: TTCN-3 generation seems to have a problem with multiple connections on the same (system?) port..
        //connect sut_node::interface1 to tester::interface3
    }
    Test example uses base {
        tester::interface1 sends "hello"{string} to sut_node::interface1
        tester::interface1 sends 1 {Integer} to sut_node::interface1
        tester::interface1 sends 1 to sut_node::interface1 //TODO: unspecified type not resolved -> standard library Integer required
        //better error messages?
//        tester::interface3 receives 2 from sut_node::interface2
        
        
    }
    
	Annotation Initial conditions
	Annotation Expected behaviour
	Annotation Final conditions
	Annotation Test Purpose Description
	Annotation when
	Annotation then
       
    Objective name {
    	Description: "example"
    	References: "reference"
    }

	Test Purpose Description exampl {
		Objective: name
		Configuration: base
		Expected behaviour
		ensure that {
			when {
				tester::interface1 sends "hello" to sut_node::interface1
			}	
			then {
				tester::interface1 receives "hello back" from sut_node::interface1
			}				
		} 		
	}		 

	Test Purpose Description exampl2 {
		Objective: name
		Configuration: base
		Expected behaviour
		ensure that {
			when {
				tester::interface1 sends "hello" to sut_node::interface1
			}	
			then {
				tester::interface1 receives "hello back" from sut_node::interface1
			}				
		} 		
	}		
	
    
} 
