/***************************************************
 ** @author   STF 487
 ** @version  0.0.1
 ** @purpose  1:B.1.2.6, Ensure that the IUT correctly handles template matching of superset definition
 ** @verdict  pass accept, ttcn3verdict:pass
 ***************************************************/

 //Restriction e)
/*The individual members of the SuperSet's argument and the elements of the template in the all from clause
shall not be the matching mechanisms omit, SuperSet, SubSet and the matching attributes (length restriction
and ifpresent). In addition, the individual members shall not resolve to AnyValueOrNone and individual
elements of the template in the all from clause shall not resolve to AnyElementsOrNone or permutation.*/

module Sem_B010206_superset_006 {

  	type set of integer SoI;
    template SoI Template:= {1,2} ifpresent;

    type port loopbackPort message {
	  inout SoI
	}


type component GeneralComp {
	  port loopbackPort messagePort
}

testcase TC_Sem_B010206_superset_006() runs on GeneralComp {

    var SoI v_testMessage;


 template SoI mw_matchingTemplate:= superset(all from Template);


 v_testMessage:={1,2};

 messagePort.send(v_testMessage);

    alt {
     [] messagePort.receive(mw_matchingTemplate) {
        setverdict(pass);
     }
     [] messagePort.receive {
        setverdict(fail);
     }
    }
}

control{
    execute(TC_Sem_B010206_superset_006());
}

}
