Commit 1b898fbe authored by rennoch's avatar rennoch
Browse files

first CX_CSCF_PP test

parent b74ac2ed
Loading
Loading
Loading
Loading
+54 −4
Original line number Diff line number Diff line
@@ -6,6 +6,8 @@
 */
module DiameterCxDx_Cx_TCFunctions {
    import from LibIms_Interface {type ImsComponent;}
    import from LibIms_Steps {function f_setHeadersINVITE}
    import from LibIms_Templates {template m_INVITE_Request_noBody_UE}

    // LibCommon
    import from LibCommon_Sync {
@@ -14,7 +16,7 @@ module DiameterCxDx_Cx_TCFunctions {
    }
    import from LibCommon_VerdictControl all;

    import from LibSip_Steps {function f_RemoveRegistration};
    import from LibSip_Steps {function f_RemoveRegistration, f_SendINVITE};
	import from LibSip_SIPTypesAndValues all;

    // LibDiameter
@@ -4132,11 +4134,9 @@ module DiameterCxDx_Cx_TCFunctions {
				function f_TC_CX_CSCF_LI_01_UA(in CSeq p_cSeq_s) runs on ImsComponent {
					// Preamble
					//Registration
					f_preamble_UE_registration(p_cSeq_s);
					f_preamble_UE_regInv(p_cSeq_s);
					f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());

// invite

					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
					// Postamble
					f_RemoveRegistration(vc_cSeq); // deregistration in SUT
@@ -4186,6 +4186,56 @@ module DiameterCxDx_Cx_TCFunctions {
				
            } // group TP_CSCFRole_LI
            group TP_CSCFRole_PP {//Cx PP
				function f_TC_CX_CSCF_PP_01_UA(in CSeq p_cSeq_s) runs on ImsComponent {
					// Preamble
					//Registration
					f_preamble_UE_registration(p_cSeq_s);
					f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());

					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
					// Postamble
					f_RemoveRegistration(vc_cSeq); // deregistration in SUT
					f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
				}
                function f_TC_CX_CSCF_PP_01_HSS() runs on DiameterCx {
                    // Local variables
                    // Preamble: first complete registration
                    f_preamble_HSS();

                    f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR));
                    f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));
                  
                    f_awaiting_MAR(mw_MAR_Msg(?, mw_MAR_basic));
                    f_send_MAA(m_MAA_Msg(vc_sessionId, m_MAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));
                  
                    f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR()));
                    f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));
                  
                    f_awaiting_SAR(mw_SAR_Msg(?, mw_SAR_basic));
                    f_send_SAA(m_SAA_Msg(vc_sessionId, m_SAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));
                    
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
                    
                    // Test Body
                    // the IUT sends a PP-Request
                    vc_userName := m_userName(PX_UserName);
                    f_send_PPR(m_PPR_Msg(vc_sessionId, m_PPR(vc_originHost, vc_originRealm, vc_destinationHost, vc_destinationRealm, vc_userName, m_userData('0102'O), omit, omit)));
                    f_awaiting_PPA(mw_PPA_Msg(?, mw_PPA_basic));
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                    
                    // Postamble

                    //de-registration
                    f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR()));
                    f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));

                    f_awaiting_SAR(mw_SAR_Msg(?, mw_SAR_basic));
                    f_send_SAA(m_SAA_Msg(vc_sessionId, m_SAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));

                    f_postamble_HSS();
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                }

            } // group TP_CSCFRole_PP
			group TP_CSCFRole_MA {//Cx MA
			} // group TP_CSCFRole_MA
+32 −1
Original line number Diff line number Diff line
@@ -134,12 +134,20 @@ module DiameterCxDx_Templates {
                    aVP_Type    := omit
				}

                template (value) Reason_Code_AVP m_reasonCode(in template (value) Reason_Code_Type p_avpData
                template (value) Reason_Code_AVP m_reasonCode(template (value) Reason_Code_Type p_avpData
                ) := {
                    aVP_Header := m_aVP_HeaderVid_Mbit1(c_reason_Code_AVP_Code, 4, c_vendId3gpp),
                    aVP_Data := p_avpData
                }
                
				template (value) User_Data_AVP m_userData(template (value) octetstring p_aVpData) := {

				aVP_Header := m_aVP_HeaderVid_Mbit1(c_user_Data_AVP_Code,
													4+lengthof(p_aVpData),
													c_vendId3gpp),
				aVP_Data := p_aVpData
				}
                
              }//end group sendingTemplatesForAVPs
              group awaitingTemplatesForAVPs{
              	  
@@ -1206,6 +1214,29 @@ module DiameterCxDx_Templates {
                modifies m_RTR_basic := {
                    vendor_Specific_Application_Id := omit //mandatory in TS 129 229
                }
                
                template (value) PPR_Body_AVP m_PPR (template (omit) Origin_Host_AVP           p_originHost,
                                                           template (omit) Origin_Realm_AVP          p_originRealm,
                                                           template (omit) Destination_Host_AVP      p_destinationHost,
                                                           template (omit) Destination_Realm_AVP     p_destinationRealm,
                                                           template (omit) User_Name_AVP             p_userName,
                                                           template User_Data_AVP p_userData,
                                                           template Charging_Information_AVP p_chargingInformation,
                                                           template SIP_Auth_Data_Item_AVP p_sIPAuthDataItem)
                modifies m_PPR_basic := {
                    vendor_Specific_Application_Id := m_vendor_Specific_Appl_Id_Cx, //mandatory in TS 129 229
                    auth_Application_Id := omit,                                    //not in TS 129 229
                    auth_Session_State := m_auth_Session_State_no_maintained,       //mandatory in TS 129 229
                    origin_Host := p_originHost,                                    //mandatory in TS 129 229
                    origin_Realm := p_originRealm,                                  //mandatory in TS 129 229
                    destination_Realm := p_destinationRealm,                        //mandatory in TS 129 229
                    user_Name := p_userName,                                        //mandatory in TS 129 229
                    destination_Host := p_destinationHost,                          //mandatory in TS 129 229
                    user_Data := p_userData,                     //only TS129 229
                    charging_Information := p_chargingInformation,          //only TS129 229
                    sIP_Auth_Data_Item := p_sIPAuthDataItem             //only TS129 229
                }

            } //     end group CxModified_request_templates_send
            
            group Cx_modified_request_templates_receive {