/**
 *  @author     STF 339
 *  @author     STF 341
 *  @version  	$Id: AtsDpmr_Types.ttcn 87 2008-02-22 15:53:29Z petersenj $
 *  @desc       Data type @see functionalityTest.noelement BLA BLA BLA definitions for @see f_1 information elements for digital Public @see functionalityTest.f_1
 *              Mobile Radio (dPMR) messages @see f_1 
 *  @see	s_test1
 *  @see	f_1
 *  @see	functionalityTest.f_1
 *  @see	onality.f_1
 *  @see	noelement
 *  @see	functionalityTest.noelement
 *  @see	functionalityTest.1
 *  @see	1
 *  @remark
 */
module comment_Test {
// useless
/*
		 * @desc	desc1_line1 desc1_line1 desc1_line1 desc1_line1 desc1_line1  @see noelement @see functionalityTest.f_1 desc1_line1 desc1_line1 desc1_line1 desc1_line1 desc1_line1 desc1_line1 desc1_line1 
	*	 *        desc1_line2 desc1_line2  @see functionalityTest.noelement BLA BLA BLA desc1_line2 @see functionalityTest.f_1 desc1_line2 desc1_line2 desc1_line2  @see functionalityTest.f_1
		 * @param	param1_line1 param1_line1 param1_line1 param1_line1 @see f_1
	*	 *          param1_line2 param1_line2 param1_line2 **stars** @see f_test
		 * @param	param2_line1  @see f_test param2_line1  
		@remark THIS IS FALSE
		* @remark
		 */
// * @remark THIS IS IMPORTANT
//useless
    /*
		 * @desc	desc2_line1 @see functionalityTest.f_1 desc2_line1 desc2_line1 desc2_line1 desc2_line1 desc2_line1 desc2_line1 desc2_line1 desc2_line1 
		 *          desc2_line2 desc2_line2 desc2_line2 desc2_line2 desc2_line2 desc2_line2    
		 * @desc	desc3_line1 desc3_line1 desc3_line1 desc3_line1 @see f_test
		 *          desc3_line2   
		  @param	param3_line1 param3_line1 param3_line1 param3_line1     
		 *          param3_line2 param3_line2 param3_line2   
		  @param	param4_line1  param4_line1  
		 */
		 /*
		 //		 * @param	param5_line1 param5_line1 param5_line1 param5_line1 
		           param5_line2 param5_line2 param5_line2 
		  @param	param6_line1  param6_line1 
 @desc	desc4_line1 desc4_line1 desc4_line1 desc4_line1 desc4_line1   
//		 *          desc4_line2 desc4_line2 desc4_line2   
		 */
// useless
		function f_test ( inout StringStack p_stack, in    charstring  p_item ) {
			p_stack.stringItems[p_stack.stackSize] := p_item;
			p_stack.stackSize := p_stack.stackSize + 1;
		}

		function f_1 ( inout StringStack p_stack, in    charstring  p_item ) {
			p_stack.stringItems[p_stack.stackSize] := p_item;
			p_stack.stackSize := p_stack.stackSize + 1;
		}



	/*

	*	@desc text text text text text text text 
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text  
	*	text text text text text text text text 

	*/
		function f_test2 ( inout StringStack p_stack, in    charstring  p_item ) runs on floor return integer{
			p_stack.stringItems[p_stack.stackSize] := p_item;
			p_stack.stackSize := p_stack.stackSize + 1;
		}


	/*

	*	@desc DDDDDDDDDDDescription @see DontSee
	*	@author Author1
	*	@author Author2
	*	@config Config
	*	@exception Exception
	*	@member Member members
	*	@param Parameter1 param1_desc
	*	@param Parameter2 param2_desc
	*	@purpose Purpose
	*	@remark Remark
	*	@return Return
	*	@see See
	*	@since Since
	*	@status Status
	*	@url http://url.tld
	*	@verdict Verdict
	*	@version Version
	

	*/

group alltest{
	/*

	*	@desc Description @see DontSee
	*	@author Author1
	*	@author Author2
	*	@config Config
	*	@exception Exception
	*	@member Member members
	*	@param Parameter1 param1_desc
	*	@param Parameter2 param2_desc
	*	@purpose Purpose
	*	@remark Remark blabla bla @url http://www.uni-goettingen.de bla bla @url http://www.uni-goettingen.de
	*	@return Return
	*	@see See
	*	@since Since
	*	@status Status
	*	@url http://url.tld
	*	@verdict Verdict
	*	@version Version
	

	*/
		function f_test3 ( inout StringStack p_stack, in    charstring  p_item ) {
			p_stack.stringItems[p_stack.stackSize] := p_item;
			p_stack.stackSize := p_stack.stackSize + 1;
		}


	/*

	*	@desc Description @see DontSee
	*	@author Author1
	*	@author Author2
	*	@config Config
	*	@exception Exception
	*	@member Member members
	*	@param Parameter1 param1_desc
	*	@param Parameter2 param2_desc
	*	@purpose Purpose
	*	@remark Remark
	*	@return Return
	*	@see See
	*	@since Since
	*	@status Status
	*	@url http://url.tld
	*	@verdict Verdict
	*	@version Version
	

	*/

altstep a_test1() runs on floor
    {
      [] server.receive
        {
          setverdict(fail);
          stop
        }
      [] client.receive
        {
          setverdict(fail);
          stop
        }
      [] secServer.receive
        {
          setverdict(fail);
          stop
        }
      [] secClient.receive
        {
          setverdict(fail);
          stop
        }
      [] ipCANctl.receive
        {
          setverdict(inconc);
          stop
        }
      [] ipConf.receive
        {
          setverdict(inconc);
          stop
        }
      [] TGuard.timeout 
	    {setverdict(inconc); stop}
      [] any timer.timeout 
	    {setverdict(fail); stop}
    }

	/*

	*	@desc Description @see DontSee
	*	@author Author1
	*	@author Author2
	*	@config Config
	*	@exception Exception
	*	@member Member members
	*	@param Parameter1 param1_desc
	*	@param Parameter2 param2_desc
	*	@purpose Purpose
	*	@remark Remark
	*	@return Return
	*	@see See
	*	@since Since
	*	@status Status
	*	@url http://url.tld
	*	@verdict Verdict
	*	@version Version
	

	*/

testcase t_test1() runs on MTC system SystemInterface {
   // Mobile terminated location request/ UE-Based GPS
   
   // Test Purpose: 
   // To verify that when the UE receives a REGISTER message during an established CS call, 
   // containing a LCS Location Notification Invoke component set to NotifyLocationAllowed, 
   // the UE displays information about the LCS client correctly and sends a RELEASE COMPLETE message 
   // containing a LocationNotification return result with verificationResponse set to permissionGranted.  
   // To verify that the UE responds with a Measurement Report message containing UE location when the 
   // assistance data is divided between several Measurement Control messages using Measurement Command ?Modify?.
   
   var UTRANComponent UtranPTC := UTRANComponent.create alive;
   var GERANComponent GeranPTC := null;
   
   var MTC_mirror MtcPTC_mirror;
 	 var UTRANComponent_mirror UtranPTC_mirror;
	 var GERANComponent_mirror GeranPTC_mirror;

	 if (pc_is_Intra==true) {
	   MtcPTC_mirror:=MTC_mirror.create;
	   UtranPTC_mirror:=UTRANComponent_mirror.create alive;
	   GeranPTC_mirror:=GERANComponent_mirror.create alive;
	 } else {
	   MtcPTC_mirror:=null;
	   UtranPTC_mirror:=null;
	   GeranPTC_mirror:=null;
	 }

	 MTC_Main_Map(self, MtcPTC_mirror); // Maps or connects
	 UTRAN_Map(UtranPTC, UtranPTC_mirror);  // Maps or connects
	 MTC_ConnectPTCs(self, UtranPTC, GeranPTC);
    
	 if (MtcPTC_mirror!=null) {
	   MtcPTC_mirror.start(TC_17_2_4_1_asPTC_mirror(UtranPTC_mirror, GeranPTC_mirror));
	 }
    
	 UtranPTC.start(TC_17_2_4_1_UTRAN());
	 MTC_Main_Behaviour();
 }

	/*

	*	@desc Description @see DontSee
	*	@author Author1
	*	@author Author2
	*	@config Config
	*	@exception Exception
	*	@member Member members
	*	@param Parameter1 param1_desc
	*	@param Parameter2 param2_desc
	*	@purpose Purpose
	*	@remark Remark
	*	@return Return
	*	@see See
	*	@since Since
	*	@status Status
	*	@url http://url.tld
	*	@verdict Verdict
	*	@version Version
	

	*/

	signature s_test1() return returntype;

/*
	* @config blabla
	* @config blabla

	* @purpose blabla
	* @purpose blabla
	
	* @return blabla
	* @return blabla
	
	* @since blabla
	* @since blabla
	
	* @status blabla
	* @status blabla
	
	* @version blabla
	* @version blabla


*/
	signature s_toomanytags() return integer;

}
  // * @desc identical tag here
signature s_identicalDescTags_1() return integer;

  // * @desc identical tag here
signature s_identicalDescTags_1() return integer;

}