/***************************************************
 ** @author   STF 487
 ** @version  0.0.1
 ** @purpose  1:B.1.2.6, Ensure that the IUT correctly handles template matching of superset definitions
 ** @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_007 {

  	type set of integer SoI;

    type port loopbackPort message {
	  inout SoI
	}


type component GeneralComp {
	  port loopbackPort messagePort
}

testcase TC_Sem_B010206_superset_007() runs on GeneralComp {

    var SoI v_testMessage;

 template SoI Template:= {1,?};
 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_007());
}

}
