module testcases {
	//sample test case with full body, multiple parameters, with modifiers, runs on and system clauses
testcase tc_sample2 ( 
  template R3Msg p_radiusAccntReq, 
  out template R3Msg p_radiusAccntRsp ) 
runs on R3Comp 
system R3System {
  var FncRetCode v_ret := e_success;

  alt {
    [] r3Port.receive ( m_r3MonitorInd ( p_radiusAccntReq ) ) {
      v_ret := e_success;
    }
    [] r3Port.receive ( m_r3MonitorInd ( 
                          e_RadiusAccountingRequest,
                          p_radiusAccntReq ) ) {
      v_ret := e_success;
    }
    [] r3Port.receive ( m_r3MonitorInd (
                          e_RadiusAccountingRequest,
                          m_radiusAccntReq_any ) ) {
    }
    [] a_sample2 (m_r3MonitorInd,m_r3MonitorInd);
    [] a_sample1 (m_r3MonitorInd);
    [] a_sample0 ();
  }

}   
//sample test case skeleton with a single parameter, including a passing mode, with a runs on clause
testcase tc_sample1 (in template R3Msg p_radiusAccntReq) 
	runs on R3Comp {
}

//test tcase skeleton with a single parameter, with a runs on clause and a system clause 
testcase tc_sample11 (template R3Msg p_radiusAccntReq) 
	runs on R3Comp system R3System {
	f_sample();
	f_sample1(p_radiusAccntReq);
	f_sample2(p_radiusAccntReq,p_radiusAccntRsp) 
}

//test case skeleton without parameters, with a runs on clause
testcase tc_sample () 
	runs on R3Comp {
}	

	
	testcase tc_sample_procedurebased() runs on sampleComponent system systemComponent{
		port1.call(s_lookup:{x}) {
			[]port1.getreply(s_accept:{y}) {
			
			}
		}
	}
	
	control{
		execute(tc_sample1(template_sample1 := template_sample2));
		execute(tc_sample2(template_sample1,template_sample2));
		execute(tc_sample());
	}
	

}