Commit 2b11b16d authored by Yann Garcia's avatar Yann Garcia
Browse files

add additional TTCN-3 libraries

parent 79f82299
Loading
Loading
Loading
Loading
+514 −0
Original line number Diff line number Diff line
/**
 *	@author 	STF 370
 *  @version    $Id:$
 *	@desc		This module provides trigger and configuration functions for IMS.
 */
module LibIms_UpperTester {
	

	import from LibIot_Functions all;
	import from LibUpperTester all;
	import from LibIot_TestInterface all;
 	
	group ue {
		group ueTypes {
			group ueCommands {
				
				/**
				 * @desc Command to trigger registration of the UE
				 * @remark
				 *     Note that the registration trigger command needs has
				 *     additional parameter for the public, private user id and
				 *     password.
				 * @remark
				 *     Note that the user friendly application and the upper test 
				 *     adapter may need to be uparaded if new messages are added.
				 */
				const EquipmentCommand c_UE_REGISTRATION := "UE_REGISTRATION";
				const EquipmentCommand c_UE_CHECKisREGISTERED := "UE_CHECK_IS_REGISTER";
				const EquipmentCommand c_UE_CHECKisnotREGISTERED := "UE_CHECK_IS_NOT_REGISTERED";
				const EquipmentCommand c_UE_CHECK_CALLisINITIALIZED := "UE_CHECK_CALL_IS_INITIALIZED";
				const EquipmentCommand c_UE_CHECK_CALLisANSWERED := "UE_CHECK_CALL_IS_ANSWERED";
				const EquipmentCommand c_UE_CHECK_CALLisENDED := "UE_CHECK_CALL_IS_ENDED";
				const EquipmentCommand c_UE_CHECK_NEWMEDIASTREAMisADDED := "UE_CHECK_NEW_MEDIA_STREAM_IS_ADDED";
				const EquipmentCommand c_UE_CHECK_REMOVEMEDIASTREAMisADDED := "UE_CHECK_NEW_MEDIA_STREAM_IS_REMOVED";
				
				
				/**
				 * 
				 * @desc Command to trigger de-registration of the UE
				 */
				const EquipmentCommand c_UE_DEREGISTRATION := "UE_DEREGISTRATION";
				
				/**
				 * @desc Command to trigger UE to send a message
				 */
				const EquipmentCommand c_UE_SEND_MESSAGE := "UE_SEND_MESSAGE";	
				
								/**
				 * @desc Command to check if UE has receipt of a message
				 */
				const EquipmentCommand c_UE_CHECK_MESSAGE_RECEIPT := "UE_CHECK_MESSAGE_RECEIPT";
				
				
				/**
				 * @desc Command to check if UE is informed about that the message request could not be delivered.
				 */
				const EquipmentCommand c_UE_CHECK_MESSAGE_NOT_DELIVERED := "UE_CHECK_MESSAGE_NOT_DELIVERED";		
			}
		}
		
		group ueFunctions {
			
			
			/**
			 * 
			 * @desc Triggers registration of a given user via UE
			 * @param p_publicId The public user identity 
			 * @param p_privateId The private user identity
			 * @param p_pw The users password
			 * @verdict e2e verdict will be set depending on the result of trigger action
			 */
			function f_userRegistration(in charstring p_publicId, in charstring p_privateId, in charstring p_pw) 
			runs on EquipmentUser {
				f_sendEquipmentCmd(valueof(m_EQ_Request(c_UE_REGISTRATION, {p_publicId, p_privateId, p_pw})));
			}

			function f_checkUserIsRegistered() 
			runs on EquipmentUser {
				f_sendEquipmentCmd(valueof(m_EQ_Request(c_UE_CHECKisREGISTERED, {})));
			}
			function f_checkUserIsNotRegistered() 
			runs on EquipmentUser {
				f_sendEquipmentCmd(valueof(m_EQ_Request(c_UE_CHECKisnotREGISTERED, {})));
			}
			function f_checkUserCallIsInitiated() 
			runs on EquipmentUser {
				f_sendEquipmentCmd(valueof(m_EQ_Request(c_UE_CHECK_CALLisINITIALIZED, {})));
			}
   			function f_checkUserCallIsAnswered() 
			runs on EquipmentUser {
				f_sendEquipmentCmd(valueof(m_EQ_Request(c_UE_CHECK_CALLisANSWERED, {})));
			}
			function f_checkUserCallIsEnded() 
            runs on EquipmentUser {
            	f_sendEquipmentCmd(valueof(m_EQ_Request(c_UE_CHECK_CALLisENDED, {})));
            }
			function f_checkUserAddNewMediaStream() 
			runs on EquipmentUser {
				f_sendEquipmentCmd(valueof(m_EQ_Request(c_UE_CHECK_NEWMEDIASTREAMisADDED, {})));
			}
			function f_checkUserRemoveNewMediaStream() 
			runs on EquipmentUser {
				f_sendEquipmentCmd(valueof(m_EQ_Request(c_UE_CHECK_REMOVEMEDIASTREAMisADDED, {})));
			}
			/**
			 * 
			 * @desc Triggers de-registration of a given user via UE
			 * @param p_publicId The public user name
			 * @verdict e2e verdict will be set depending on the result of trigger action
			 */
			function f_userDeregistration(in charstring p_publicId) 
			runs on EquipmentUser {
				f_sendEquipmentCmd(valueof(m_EQ_Request(c_UE_DEREGISTRATION, {p_publicId})));
			}
			
			/**
			 * 
			 * @desc Trigger sending an instant message via UE
			 */
			function f_userSendMessage(in charstring p_body) 
			runs on EquipmentUser {
				f_sendEquipmentCmd(valueof(m_EQ_Request(c_UE_SEND_MESSAGE, {p_body})));
			}
			
			/**
			 * 
			 * @desc Trigger checking the receipt of instant message at UE
			 */
			function f_userCheckMessageReceipt() runs on EquipmentUser {
				f_sendEquipmentCmd(valueof(m_EQ_Request(c_UE_CHECK_MESSAGE_RECEIPT, {})));
			}
				
			/**
			 * 
			 * @desc Trigger checking the receipt of instant message at UE
			 */
			function f_userCheckMessageNotDelivered() runs on EquipmentUser {
				f_sendEquipmentCmd(valueof(m_EQ_Request(c_UE_CHECK_MESSAGE_NOT_DELIVERED,  {})));
			}
 		}
	}
	
	group LibUEModuleParameters {
 	
		/**
		* 
		* @desc Required information for user components
		* @member publicId  public user identity
		* @member privateId private user identity 
		* @member password user password
		* @member domain Home domain of user
		* @member domainProxy Entry point to either home or roaming IMS network
		*/
		type record ImsUserInfo {
			charstring publicId, // (default) id to be used by UE
			charstring privateId,
			charstring password,
			charstring domain,
			charstring domainProxy
		}
		
		type union ImsUserIdentity {
			ImsUserInfo genUserId,
			ImsUserInfo sipUserId,
			ImsUserInfo telUserId,
			ImsUserInfo noasUserId,
			ImsUserInfo holdUserId,
			ImsUserInfo oipUserId,
			ImsUserInfo oirUserId,
			ImsUserInfo acrUserId,
			ImsUserInfo cfuUserId,
			ImsUserInfo presUserId,
            ImsUserInfo ftUserId,
            ImsUserInfo imUserId,
            ImsUserInfo shareUserId,
			ImsUserInfo iptvUserId
		}
	
		/**
		* 
		* @desc List of IMS user information 
		*/
		type record of ImsUserIdentity ImsUserIdentityList ;
 
		/**
		* 
		* @desc The record collects IMS user information configured in one specific core IMS 
		* @member productIndex index pointing to the entry of the core IMS product in PX_PRODUCTS
		* @member userInfos Lists information about all users configured in the HSS of this core IMS
		*/
		type record CoreImsUserInfo {
			integer       productIndex,
			ImsUserIdentityList  userIds
		}
	
		/**
		* 
		* @desc Collects  IMS user information configured in all core IMS participating in the interoperability event
		*/
		type record of CoreImsUserInfo CoreImsUserInfoList;
	
	
		/**
			* 
			* @desc Example of module parameter based entry of EUT interface information for all products particpating in an interoperability event
			*/
		modulepar CoreImsUserInfoList PX_IMS_USER_DATA := {
			{
				productIndex := 0, // Ericsson
				userIds := {
					{
				      genUserId := {
						publicId := "userGEN",
						privateId := "userGEN_priv",
						password := "123456",
						domain := "ericsson.etsi",
						domainProxy := "pcscf.ericsson.etsi" //pcscf domain or IPaddress

					}},
					{
					  sipUserId := {
						publicId := "userSIP",
						privateId := "userSIP_priv",
						password := "123456",
						domain := "ericsson.etsi",
						domainProxy := "pcscf.ericsson.etsi" //pcscf domain or IPaddress

					}},
					{
					  telUserId := {
						publicId := "tel: 3344123432",
						privateId := "userTEL_priv",
						password := "123456",
						domain := "ericsson.etsi",
						domainProxy := "pcscf.ericsson.etsi" //pcscf domain or IPaddress
					}}
				}
			},
			{
				productIndex := 1, // Thomson
				userIds := {
					{
					  genUserId := {
						publicId := "userSIP",
						privateId := "userSIP_priv",
						password := "123456",
						domain := "thomson.etsi",
						domainProxy := "pcscf.thomson.etsi" //pcscf domain or IPaddress

					}},
					{
					  sipUserId := {
						publicId := "userSIP",
						privateId := "userSIP_priv",
						password := "123456",
						domain := "thomson.etsi",
						domainProxy := "pcscf.thomson.etsi" //pcscf domain or IPaddress
					}},
					{
					  telUserId := {
						publicId := "tel: 3344123443",
						privateId := "userTEL_priv",
						password := "123456",
						domain := "thomson.etsi",
						domainProxy := "pcscf.thomson.etsi" //pcscf domain or IPaddress
					}}
				}
			},
			{
				productIndex := 2, // NSN
				userIds := {
					{
					  genUserId := {
						publicId := "userGEN",
						privateId := "userGEN_priv",
						password := "123456",
						domain := "nsn.etsi",
						domainProxy := "pcscf.nsn.etsi" //pcscf domain or IPaddress

					}},
					{
					  sipUserId := {
						publicId := "userSIP",
						privateId := "userSIP_priv",
						password := "123456",
						domain := "nsn.etsi",
						domainProxy := "pcscf.nsn.etsi" //pcscf domain or IPaddress
					}},
					{
					  telUserId := {
						publicId := "tel: 3344123443",
						privateId := "userTEL_priv",
						password := "123456",
						domain := "nsn.etsi",
						domainProxy := "pcscf.nsn.etsi" //pcscf domain or IPaddress
					}}
				}
			},
			{
				productIndex := 3, // Italtel
				userIds := {
					{
					  genUserId := {
						publicId := "userGEN",
						privateId := "userGEN_priv",
						password := "123456",
						domain := "italtel.etsi",
						domainProxy := "pcscf.italtel.etsi" //pcscf domain or IPaddress

					}},
					{
					  sipUserId := {
						publicId := "userSIP",
						privateId := "userSIP_priv",
						password := "123456",
						domain := "italtel.etsi",
						domainProxy := "pcscf.italtel.etsi" //pcscf domain or IPaddress
					}},
					{
					  telUserId := {
						publicId := "tel: 3344123443",
						privateId := "userTEL_priv",
						password := "123456",
						domain := "italtel.etsi",
						domainProxy := "pcscf.italtel.etsi" //pcscf domain or IPaddress
					}}
				}
			},
			{
				productIndex := 4, // EXFO
				userIds := {
					{
					  genUserId := {
						publicId := "userGEN",
						privateId := "userGEN_priv",
						password := "123456",
						domain := "exfo.etsi",
						domainProxy := "pcscf.exfo.etsi" //pcscf domain or IPaddress

					}},
					{
					  sipUserId := {
						publicId := "userSIP",
						privateId := "userSIP_priv",
						password := "123456",
						domain := "exfo.etsi",
						domainProxy := "pcscf.exfo.etsi" //pcscf domain or IPaddress
					}},
					{
					  telUserId := {
						publicId := "tel: 3344123443",
						privateId := "userTEL_priv",
						password := "123456",
						domain := "exfo.etsi",
						domainProxy := "pcscf.exfo.etsi" //pcscf domain or IPaddress
					}}
				}
			},
			{
				productIndex := 5, // Iskratel
				userIds := {
					{
					  genUserId := {
						publicId := "userGEN",
						privateId := "userGEN_priv",
						password := "123456",
						domain := "iskratel.etsi",
						domainProxy := "pcscf.iskratel.etsi" //pcscf domain or IPaddress

					}},
					{
					  sipUserId := {
						publicId := "userSIP",
						privateId := "userSIP_priv",
						password := "123456",
						domain := "iskratel.etsi",
						domainProxy := "pcscf.iskratel.etsi" //pcscf domain or IPaddress
					}},
					{
					  telUserId := {
						publicId := "tel: 3344123443",
						privateId := "userTEL_priv",
						password := "123456",
						domain := "iskratel.etsi",
						domainProxy := "pcscf.iskratel.etsi" //pcscf domain or IPaddress
					}}
				}
			},
			{
				productIndex := 6, // Testing Tech IMS Core
				userIds := {
					{
					  genUserId := {
						publicId := "userGEN",
						privateId := "userGEN_priv",
						password := "123456",
						domain := "testingtech.com",
						domainProxy := "pcscf.testingtech.com" //pcscf domain or IPaddress

					}},
					{
					  sipUserId := {
						publicId := "userSIP",
						privateId := "userSIP_priv",
						password := "123456",
						domain := "testingtech.com",
						domainProxy := "pcscf.testingtech.com" //pcscf domain or IPaddress
					}},
					{
					  telUserId := {
						publicId := "tel: 3344123443",
						privateId := "userTEL_priv",
						password := "123456",
						domain := "testingtech.com",
						domainProxy := "pcscf.testingtech.com" //pcscf domain or IPaddress
					}}
				}
			},
			{
				productIndex := 7, // Acme
				userIds := {
					{
					  genUserId := {
						publicId := "userGEN",
						privateId := "userGEN_priv",
						password := "123456",
						domain := "acme.etsi",
						domainProxy := "pcscf.acme.etsi" //pcscf domain or IPaddress

					}},
					{
					  sipUserId := {
						publicId := "userSIP",
						privateId := "userSIP_priv",
						password := "123456",
						domain := "acme.etsi",
						domainProxy := "acme" //pcscf domain or IPaddress
					}},
					{
					  telUserId := {
						publicId := "tel: 3344123443",
						privateId := "userTEL_priv",
						password := "123456",
						domain := "acme.etsi",
						domainProxy := "pcscf.acme.etsi" //pcscf domain or IPaddress
					}}
				}
			},
			{
				productIndex := 8, // Nexcom
				userIds := {
					{
					  genUserId := {
						publicId := "userGEN",
						privateId := "userSIP_priv",
						password := "123456",
						domain := "nexcom.etsi",
						domainProxy := "pcscf.nexcom.etsi" //pcscf domain or IPaddress

					}},
					{
					  sipUserId := {
						publicId := "userGEN",
						privateId := "userSIP_priv",
						password := "123456",
						domain := "nexcom.etsi",
						domainProxy := "pcscf.nexcom.etsi" //pcscf domain or IPaddress
					}},
					{
					  telUserId := {
						publicId := "tel: 3344123443",
						privateId := "userTEL_priv",
						password := "123456",
						domain := "nexcom.etsi",
						domainProxy := "pcscf.nexcom.etsi" //pcscf domain or IPaddress
					}}
				}
			},
			{
				productIndex := 9, // Hotaro
				userIds := {
					{
					  genUserId := {
						publicId := "userGEN",
						privateId := "userGEN_priv",
						password := "123456",
						domain := "hotaro.etsi",
						domainProxy := "pcscf.hotaro.etsi" //pcscf domain or IPaddress

					}},
					{
					  sipUserId := {
						publicId := "userSIP",
						privateId := "userSIP_priv",
						password := "123456",
						domain := "hotaro.etsi",
						domainProxy := "pcscf.hotaro.etsi" //pcscf domain or IPaddress
					}},
					{
					  telUserId := {
						publicId := "tel: 3344123443",
						privateId := "userTEL_priv",
						password := "123456",
						domain := "hotaro.etsi",
						domainProxy := "pcscf.hotaro.etsi" //pcscf domain or IPaddress
					}}
				}
			}
		}// end modulepar
	} // end group
	
	group eut {
	}
}
 No newline at end of file
+1 −0
Original line number Diff line number Diff line
sources := LibIms_UpperTester.ttcn
 No newline at end of file
+231 −0
Original line number Diff line number Diff line
/*
 *	@author 	STF 370
 *  @version    $Id: LibIot_Functions.ttcn 16 2009-06-16 15:06:42Z pintar $
 *	@desc		This module provides the functions used by the test component 
 */

module LibIot_Functions {
	import from LibCommon_VerdictControl all;

	import from LibUpperTester {
		template mw_EO_Response;
		type EquipmentOperationReq, EquipmentOperationRsp;
	}

	import from LibIot_TypesAndValues {
		type IotVerdict, IotVerdictType, Status, VerdictType;
	}

	import from LibIot_PIXITS {
		modulepar PX_EUT_TRIGGER_RESPONSE, PX_TTCN3_VERDICT;
	}

	import from LibIot_TestInterface {
		type IotEquipmentUser, OracleClient, OracleServer, TestCoordinator, EquipmentUser;
	}
	
	
	group oracleFunctions {
    
    	/**
    	 * @desc Sets the conformance verdict on the oracle client and sends it to the oracle server
    	 * @param p_verdict conformance verdict set by the monitor
    	 * @param p_reason reason why the verdict has been set
    	 */
    	function f_setConformanceVerdict(in verdicttype p_verdict,
    									 in charstring p_reason)
    	runs on OracleClient {
    		var IotVerdict v_verdict := {conformance := {p_verdict, p_reason}};
    		log("Conformance verdict set to: ", p_verdict, p_reason);
    		vPort.send(v_verdict);
    	}
    
    	/**
    	* @desc Sets the end-to-end verdict on the oracle client and sends it to the oracle server
    	* @param p_verdict e2e verdict set by the monitor
    	* @param p_reason reason why the verdict has been set
    	*/
    	function f_setE2EVerdict(in verdicttype p_verdict, in charstring p_reason)
    	runs on OracleClient {
    		var IotVerdict v_verdict := {e2e := {p_verdict, p_reason}};
    		log("E2E verdict set to: ", p_verdict, p_reason);
    		vPort.send(v_verdict);
    	}
    
    	/**
    	 * @desc Gets the conformance verdict on the oracle client
    	 * @return conformance verdict of oracle server
    	 */
    	function f_getConformanceVerdict()
    	runs on OracleServer
		return verdicttype {
    		return vc_conf_verdict.verdict;
    	}
    
    	/**
    	 * @desc Gets the end-to-end verdict on the oracle client
    	 * @return end-to-end verdict of oracle server
    	 */
    	function f_getE2EVerdict()
    	runs on OracleServer
		return verdicttype {
    		return vc_e3e_verdict.verdict;
    	}
    
    	/**
    	* @desc Computes and logs overall verdict for end-to-end and conformance separately on oracle server
    	* @param p_verdict the verdict received
    	*/
    	function f_setIotVerdict(in IotVerdict p_verdict) runs on OracleServer {
    		f_logIotVerdict(p_verdict);
    		if (ischosen(p_verdict.e2e) and PX_TTCN3_VERDICT == e_e2e) {
    			setverdict(p_verdict.e2e.verdict, p_verdict.e2e.reason);
    		} else if (ischosen(p_verdict.conformance) and PX_TTCN3_VERDICT == e_conformance) {
    			setverdict(p_verdict.conformance.verdict, p_verdict.conformance.reason);
    		}
    	}

		/**
		* @desc Set verdict PASS on main component (to be used, e.g on TestCoordinator)
		*/
		function f_setIotVerdictPASS(in charstring p_reason) runs on OracleServer {
            var IotVerdict p_verdict := {
            	conformance := {verdict := pass, reason := p_reason}
            };
            f_setIotVerdict(p_verdict);
		}
    	/**
    	* @desc Set verdict PASS on main component (to be used, e.g on TestCoordinator)
    	*/
    	function f_setIotVerdictFAIL(in charstring p_reason) runs on OracleServer {
			var IotVerdict p_verdict := {
				conformance := {verdict := fail, reason := p_reason}
			};
			f_setIotVerdict(p_verdict);
    	}

    	    	
    	/**
    	 * 
    	 * @desc logs the received IOT verdict
    	 * @param p_verdict The verdict to set
    	 */
    	function f_logIotVerdict(in IotVerdict p_verdict) runs on OracleServer {
    		if (ischosen(p_verdict.e2e)) {
    			vc_e3e_verdict := f_getWorseVerdict(vc_e3e_verdict, p_verdict.e2e);
    			log("E2E verdict set to: ", p_verdict.e2e.verdict, "Reason: " & p_verdict.e2e.reason);
    		} else  {
    			vc_conf_verdict := f_getWorseVerdict(vc_conf_verdict, p_verdict.conformance);
    			log("Conformance verdict set to: ", p_verdict.conformance.verdict, "Reason: " & p_verdict.conformance.reason);
    		}
    	}
    	
    	/**
    	 * 
    	 * @desc returns the worse verdict 
    	 * @param p_org the original verdict 
    	 * @param p_new the new verdict
    	 * @return the worse verdict
    	 */
    	function f_getWorseVerdict(in VerdictType p_org, in VerdictType p_new) return VerdictType {
    		if(p_org.verdict == pass) {
    			
    			if(p_new.verdict != pass) {
    				return p_new;
    			}
    			else {
    				return p_org;
    			}
    		}
    		else if (p_org.verdict == inconc) {
    			
    			if(p_new.verdict != pass) {
    				return p_new;
    			}
    			else {
    				return p_org;
    			}
    		}
    		else if (p_org.verdict == fail) {
    			if(p_new.verdict == pass) {
    				return p_org;
    			}
    			else if(p_new.verdict == inconc) {
    				return p_org;
    			}
    			else {
    				return p_new;
    			}
    		}
    		else if (p_org.verdict == error) {
    			return p_org;
    		}
    		
    		return p_org;
    	}
    
    	/**
    	* @desc Altstep to be used for listening continously on the verdict port of the oracle server for receiving verdicts from oracle clients
    	*/
    	altstep a_receiveIOTVerdict() runs on OracleServer {
    		var IotVerdict v_verdict;
    		[] vPort.receive(IotVerdict:?) -> value v_verdict {
    			f_setIotVerdict(v_verdict);
    			repeat;
    		}
    	}
	}
	
	group equipmentOperationFunctions { // TODO Update!
		function f_sendEquipmentCmd(in EquipmentOperationReq p_req) runs on EquipmentUser {
			var EquipmentOperationRsp v_response;
			var charstring v_reason := "";
			
			T_Equipment.start(PX_EUT_TRIGGER_RESPONSE);
			eaPort.send(p_req);
			
			alt{
				[] eaPort.receive(mw_EO_Response(e_success)) -> value v_response {
					T_Equipment.stop;
					if(ispresent(v_response.status.reason)) {
						v_reason := v_response.status.reason;
						f_setE2EVerdict(pass, "Equipment command """ & p_req.cmd & """successful: " & v_reason);
					}else {
						f_setE2EVerdict(pass, "Equipment command successful");
					}
				}
				[] eaPort.receive(mw_EO_Response(?)) -> value  v_response {
					T_Equipment.stop;
					if(ispresent(v_response.status.reason)) {
						v_reason := v_response.status.reason;
						f_setE2EVerdict(fail, "Equipment command """ & p_req.cmd & """unsuccessful: " & v_reason);
					}else {
						f_setE2EVerdict(fail, "Equipment command unsuccessful: no reason given");
					}
				}
				[] T_Equipment.timeout {
					f_setE2EVerdict(inconc, "Timer expired while waiting for reponse of Trigger command """ & p_req.cmd & """");
				}
			}
		}
	}
	
	group miscFunctions {
    	/**
    	* @desc 	searches the array for a given name and returns 
    	* 			the corresponding index
    	* @param 	p_idx index of the port
    	* @return 	the index
    	*/
    	function f_getMonitorIdx(in charstring p_name)
    	runs on TestCoordinator return integer {
    		var integer v_size := lengthof(vc_compIds);
    		for (var integer i := 0; i < v_size; i := i + 1) {
    			if (vc_compIds[i].name == p_name) {
    				return vc_compIds[i].index;
    			}
    		}
    		return - 1;
    	}
	}
}
 No newline at end of file
+399 −0

File added.

Preview size limit exceeded, changes collapsed.

+50 −0
Original line number Diff line number Diff line
/*
 *	@author 	STF 370
 *  @version    $Id: LibIot_TestConfiguration.ttcn 16 2009-06-16 15:06:42Z pintar $
 *	@desc		xxx.
 */

module LibIot_TestConfiguration {
	
	import from LibIot_TestInterface {
		type
			InterfaceMonitor,
			IotEquipmentUser,
			OracleClient,
			OracleServer,
			TestCoordinator;
	}
	
	/**
	* @desc 	connects the port of the monitor component to the 
	* 			port of the test oracle and activates the default
	* @param 	p_monitor	monitor component 	
	*/
	function f_cf_oracle_up(in OracleClient p_client) runs on OracleServer {
		connect(self:vPort, p_client:vPort);
	}
	
	/**
	* @desc 	deactivates the default and disconnects the port of the monitor
	* 			component
	* @param 	p_monitor	monitor component 	
	*/	
	function f_cf_oracle_down(in OracleClient p_client) runs on OracleServer {
		disconnect(self:vPort, p_client:vPort);
	}
		
	/**
	* @desc 	creates a IOT equipment user component 
	* @param 	p_name	name of the equipment user component 
	* @return 			reference to the created equipment user component
	*/	
	function f_cf_create_IotEquipmentUser(in charstring p_name) runs on TestCoordinator return IotEquipmentUser {
      var IotEquipmentUser v_iotEquipmentUser := IotEquipmentUser.create(p_name) alive;
		  // TODO var IotEquipmentUser v_iotEquipmentUser := IotEquipmentUser.create alive;
		  /* YANN
		  	It's really better to use named port for debug and so on
		  */
		
		return v_iotEquipmentUser; 
	}
}
 No newline at end of file
Loading