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

//Restriction c) The member type of the set of type associated with the SubSet and the member type of the template in the all from clause shall be compatible.

module Sem_B010207_subset_004 {

  	type set of integer SoI;

    type port loopbackPort message {
	  inout SoI
	}


type component GeneralComp {
	  port loopbackPort messagePort
}

testcase TC_Sem_B010207_subset_004() runs on GeneralComp {

    var SoI v_testMessage;

 template SoI Template:= {1,2};

 template SoI mw_matchingTemplate:= subset(all from Template);    //subset(1,2);

 v_testMessage:={2};

 messagePort.send(v_testMessage);

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

control{
    execute(TC_Sem_B010207_subset_004());
}

}
