Commit cc187011 authored by pintar's avatar pintar
Browse files

New tests added and minor changes done in template module.

parent 4aa95a61
Loading
Loading
Loading
Loading
+94 −5
Original line number Diff line number Diff line
@@ -665,7 +665,7 @@ module DiameterRfRo_TCFunctions {
                    log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");

                    f_awaiting_ACR(
                        mw_ACR_CmdFlags_PET(mw_diameterHeaderReq_CmdFlags(ACR_E, ?, mw_cmdFlagsAns_PET('0'B,'0'B,'0'B)))
                        mw_ACR_CmdFlags_PET(mw_diameterHeaderReq_CmdFlags(ACR_E, ?, mw_cmdFlagsReq_PET('0'B,'0'B,'0'B)))
                    );

                    f_send_ACA(
@@ -2168,11 +2168,11 @@ module DiameterRfRo_TCFunctions {
                    f_awaiting_CCR(
                        mdw_cCR(
                            ?, 
                            mdw_ccrBodyAvps_TypeOfCharging(
                            mdw_ccrBodyAvps(
                                vc_originHost,                  // containing an Origin-Host AVP
                                vc_originRealm,                 // containing an Origin-Realm AVP
                                vc_destinationRealm,            // containing a Destination-Realm AVP
                                ?,     //mw_cC_Request_Type(?), // containing a CC-Request-Type AVP
                                ?,                              // containing a CC-Request-Type AVP
                                ?,                              // containing a CC-Request-Number AVP
                                ?,                              // containing a Service-Context-Id AVP
                                *,                              // containing a Requested Action AVP
@@ -2189,8 +2189,8 @@ module DiameterRfRo_TCFunctions {
                                    DIAMETER_SUCCESS_E          //     indicating DIAMETER_SUCCESS
                                ),
                                vc_originHost,                  // containing an Origin-Host AVP
                                vc_originRealm                 // containing an Origin-Realm AVP
                                
                                vc_originRealm,                 // containing an Origin-Realm AVP
                                m_cC_Request_Type(INITIAL_REQUEST_E)
                        ))
                    );

@@ -2201,9 +2201,98 @@ module DiameterRfRo_TCFunctions {
                    log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                    
                } // End of function f_TC_RO_CTF_MS_01
                
                /**
                 * @desc    Verify that the IUT can send a CC-Request to indicate a Charging Data Transfer 
                 *          with valid Diameter-Header parameters.
                 * @verdict pass on success, fail on error or inconc on timeout only 
                 */
                function f_TC_RO_CTF_MS_02() runs on DiameterRfRo {
                    // Local variables
                    
                    // Preamble
                    f_preamble_Ro_OCF();
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
                    log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");

                    f_awaiting_CCR(
                        mw_CCR_CmdFlags_PET(mw_diameterHeaderReq_CmdFlags(CCR_E, ?, mw_cmdFlagsReq_PET('0'B,'0'B,'0'B)))
                    );

                    f_send_CCA(
                        md_cCA( 
                            vc_sessionId,                       // containing a Session-ID AVP
                            md_ccaBodyAvps(
                                m_resultCode(                   // containing a Result-Code AVP
                                    DIAMETER_SUCCESS_E          //     indicating DIAMETER_SUCCESS
                                ),
                                vc_originHost,                  // containing an Origin-Host AVP
                                vc_originRealm,                 // containing an Origin-Realm AVP
                                m_cC_Request_Type(INITIAL_REQUEST_E)
                                
                        ))
                    );

                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync

                    f_postamble_Ro_OCF();
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
                    log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                    
                } // End of function f_TC_RO_CTF_MS_02
            } // End of group TP_RO_CTF_MS
            // 5.2.3.2.3 Type of Charging 
            group TP_RO_CTF_TC {
                
                /**
                 * @desc    Verify that the IUT sends a CC-Request [Event] with direct 
                 *          debiting due to Immediate Event Charging.
                 * @verdict pass on success, fail on error or inconc on timeout only 
                 */
                function f_TC_RO_CTF_TC_01() runs on DiameterRfRo {
                    // Local variables
                    
                    // Preamble
                    f_preamble_Ro_OCF();
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
                    log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");

                    f_awaiting_CCR(
                        mdw_cCR(
                            ?, 
                            mdw_ccrBodyAvps(
                                vc_originHost,                          // containing an Origin-Host AVP
                                vc_originRealm,                         // containing an Origin-Realm AVP
                                vc_destinationRealm,                    // containing a Destination-Realm AVP
                                mw_cC_Request_Type_AVP(EVENT_REQUEST_E),    // containing a CC-Request-Type AVP
                                ?,                                      // containing a CC-Request-Number AVP
                                ?,                                      // containing a Service-Context-Id AVP
                                mw_requested_Action(DIRECT_DEBITING_E), // containing a Requested Action AVP
                                *   //TODO//mdw_multiple_Services_Credit_Control_ReqServUnit_ServId(?,{?})                                       // containing a Multiple-Services-Credit-Control AVP
                            )
                        )
                    );

                    f_send_CCA(
                        md_cCA( 
                            vc_sessionId,                       // containing a Session-ID AVP
                            md_ccaBodyAvps(
                                m_resultCode(                   // containing a Result-Code AVP
                                    DIAMETER_SUCCESS_E          //     indicating DIAMETER_SUCCESS
                                ),
                                vc_originHost,                  // containing an Origin-Host AVP
                                vc_originRealm,                 // containing an Origin-Realm AVP
                                m_cC_Request_Type(EVENT_REQUEST_E)
                        ))
                    );

                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync

                    f_postamble_Ro_OCF();
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
                    log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                    
                } // End of function f_TC_RO_CTF_TC_01
            } // End of group TP_RO_CTF_TC
            // 5.2.3.2.4 Error Casses 
            group TP_RO_CTF_EC {
+81 −28
Original line number Diff line number Diff line
@@ -205,12 +205,6 @@ module DiameterRfRo_Templates {
            
            group ACR_MSG_{
                    
                template ACR_MSG mw_ACR_CmdFlags_PET(template DiameterHeader p_header) modifies mw_ACR_dummy := {
                    header := p_header,
                    session_Id := ?,
                    aCR_Body := mw_ACR_Body_dummy
                }
                    
                /**
                * @desc Main receive message for CDF_Rf port
                * @param p_aCA_MSG AC-Answer message
@@ -225,6 +219,16 @@ module DiameterRfRo_Templates {
                    aCR_Body    := p_acrBody
                } // End of template mdw_aCR

                /**
	             * @desc Await template for ACR
	             * @param p_header   Diameter header
	             */
                template (present) ACR_MSG mw_ACR_CmdFlags_PET(in template (present) DiameterHeader p_header) modifies mw_ACR_dummy := {
                    header := p_header,
                    session_Id := ?,
                    aCR_Body := mw_ACR_Body_dummy
                }// End of template mw_ACR_CmdFlags_PET
                
                /**
                 * @desc Receive template for ACR message body
                 * @param p_resultCode                  Indicates whether a particular request was completed successfully or an error occurred
@@ -5048,22 +5052,33 @@ module DiameterRfRo_Templates {
            template (value) CCA_Body_AVP md_ccaBodyAvps(
                                                         in template (value) Result_Code_AVP              p_resultCode,
                                                         in template (value) Origin_Host_AVP              p_originHost,
                                                         in template (value) Origin_Realm_AVP             p_originRealm
                                                         // TODO To be conntinued
                                                         in template (value) Origin_Realm_AVP             p_originRealm,
                                                         in template (value) CC_Request_Type_AVP          p_cCRequestType
            ) modifies m_CCA_Body_dummy := {
                result_Code                 := p_resultCode,
                origin_Host                 := p_originHost,
                origin_Realm                := p_originRealm,
                auth_Application_Id         := m_auth_Application_Id_AVP(4)
                // TODO To be continued
                auth_Application_Id         := m_auth_Application_Id_AVP(4),
                cC_Request_Type             := p_cCRequestType,
                cC_Request_Number           := m_cC_Request_Number ( 0 )
            } // End of template md_ccaBodyAvps 
            
            template (value) CCA_Body_AVP md_ccaBodyAvps_Update(
                                                         in template (value) Result_Code_AVP              p_resultCode,
                                                         in template (value) Origin_Host_AVP              p_originHost,
                                                         in template (value) Origin_Realm_AVP             p_originRealm,
                                                         in template (value) CC_Request_Type_AVP          p_cCRequestType,
                                                         in template (value) CC_Request_Number_AVP        p_cC_Request_Number
            ) modifies md_ccaBodyAvps := {
                cC_Request_Number           := p_cC_Request_Number
            } // End of template md_ccaBodyAvps_Update
            
        } // End of group Ro_answer_message_templates_send 
        
        group Ro_request_message_templates_receive {
            
            /**
             * @desc Send template for CCR
             * @desc Await template for CCR
             * @param p_sessionId   Session identifier
             * @param p_ccrBody     CCR message body
             */
@@ -5077,9 +5092,19 @@ module DiameterRfRo_Templates {
            } // End of template mdw_cCR
                
            /**
             * @desc Send template for CCR message body
             * @desc Await template for CCR
             * @param p_header   Diameter header
             */
            template CCR_Body_AVP mdw_ccrBodyAvps_TypeOfCharging(
            template (present) CCR_MSG mw_CCR_CmdFlags_PET(in template (present) DiameterHeader p_header) modifies mw_CCR_dummy := {
                header := p_header,
                session_Id := ?,
                cCR_Body := mw_CCR_Body_dummy
            }
            
            /**
             * @desc Await template for CCR message body
             */
            template (present) CCR_Body_AVP mdw_ccrBodyAvps(
                                                             in template (present) Origin_Host_AVP                      p_originHost,
                                                             in template (present) Origin_Realm_AVP                     p_originRealm,
                                                             in template (present) Destination_Realm_AVP                p_destination_Realm,
@@ -5106,8 +5131,8 @@ module DiameterRfRo_Templates {
            
            group CCA_MSG_{
                
                template CCA_MSG mw_CCA_CmdFlags_PET(
                                                     template DiameterHeader p_header
                template (present) CCA_MSG mw_CCA_CmdFlags_PET(
                                                     in template (present) DiameterHeader p_header
                ) modifies mw_CCA_dummy := {
                    header := p_header,
                    session_Id := ?,
@@ -5415,12 +5440,24 @@ module DiameterRfRo_Templates {
            } // End of template m_exponent
            
            template (value) Currency_Code_AVP m_currency_Code(
                                                               in template (value) Int32 p_aVP_Data
                                                               in template (value) UInt32 p_aVP_Data
            ) := {
                aVP_Header  := m_aVP_HeaderVid_Mbit1(c_currency_Code_AVP_Code, 4, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template m_currency_Code

            template (value) CC_Request_Type_AVP m_cC_Request_Type(in template (value) CC_Request_Ty_Type p_avpData):=
            {
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_cC_Request_Type_AVP_Code, f_getEnumLength(), omit),
                aVP_Data := p_avpData
            }// End of template m_cC_Request_Type

            template (value) CC_Request_Number_AVP m_cC_Request_Number(in template (value) UInt32 p_avpData):=
            {
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_cC_Request_Number_AVP_Code, 4, omit),
                aVP_Data := p_avpData
            }// End of template m_cC_Request_Number
            
            template (value) Tariff_Change_Usage_AVP m_tariff_Change_Usage_AVP(
                                                                               in template (value) Tariff_Change_Usage_Type p_aVP_Data
            ) := {
@@ -5481,14 +5518,14 @@ module DiameterRfRo_Templates {
            template (present) CC_Request_Type_AVP mw_cC_Request_Type_AVP(
                                                                          template (present) CC_Request_Ty_Type p_aVP_Data := ?
            ) := {
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_cC_Request_Type_AVP_Code, 4, omit),
                aVP_Header := mw_aVP_Header_Vbit0Mbit1(c_cC_Request_Type_AVP_Code),
                aVP_Data := p_aVP_Data
            } // End of template mw_cC_Request_Type_AVP
            } // End of template mw_cC_Request_Type
            
            template CC_Request_Number_AVP mw_cC_Request_Number_AVP(
                                                                    template (present) UInt32 p_aVP_Data := ?
            )  := {
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_cC_Request_Number_AVP_Code, 4, omit),
                aVP_Header := mw_aVP_Header_Vbit0Mbit1(c_cC_Request_Number_AVP_Code),
                aVP_Data := p_aVP_Data
            } // End of template mw_cC_Request_Number_AVP
            
@@ -5498,6 +5535,15 @@ module DiameterRfRo_Templates {
                granted_Service_Unit := p_granted_Service_Unit
            } // End of template mdw_multiple_Services_Credit_Control_granted_Service_Unit
            
            template (present) Multiple_Services_Credit_Control_AVP mdw_multiple_Services_Credit_Control_ReqServUnit_ServId(
                                                  template Requested_Service_Unit_AVP p_requested_Service_Unit,
                                                  template Multiple_Services_Credit_Control_AVP.service_Identifier p_service_Identifier
                                                  
            ) modifies mw_multiple_Services_Credit_Control_dummy := {
                requested_Service_Unit          := p_requested_Service_Unit,
                service_Identifier              := p_service_Identifier
            } // End of template mdw_multiple_Services_Credit_Control_ReqServUnit_ServId
            
            template (present) Granted_Service_Unit_AVP mdw_granted_Service_Unit_Time(
                                                                                      template (present) CC_Time_AVP p_cC_Time := ?
            ) modifies mw_granted_Service_Unit_dummy := {
@@ -5559,8 +5605,15 @@ module DiameterRfRo_Templates {
                aVP_Data    := p_aVP_Data
            } // End of template mw_value_Digits_AVP
            
            template (present) Requested_Action_AVP mw_requested_Action(
                                                                      template (present) Requested_Action_Type p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_requested_Action_AVP_Code, 4, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template m_requested_Action_AVP
            
            template (present) Currency_Code_AVP mw_currency_Code_AVP(
                                                                      template (present) Int32 p_aVP_Data := ?
                                                                      template (present) UInt32 p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_currency_Code_AVP_Code, 4, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
+58 −0
Original line number Diff line number Diff line
@@ -2044,6 +2044,64 @@ module DiameterRfRo_TestCases
                    f_cf_1Ro_2Gm_1Isc_ocfDown(v_diameterRo_ocf, v_imsComponent_ue, v_imsComponent_ue2, v_imsComponent_as)
                    
                } // End of testcase TC_RO_CTF_MS_01
                
                /**
                 * @desc    Verify that the IUT can send an CC-Request with correct Diameter-Header parameters to indicate a Charging Data Transfer with valid Diameter-Header parameters.
                 * <pre>
                 * Pics Selection: PICS_RO_CTF_IUT
                 * Initial conditions: 
                 *     with {
                 *        
                 *     }
                 * Expected behaviour:
                 *     Ensure that the IUT
                 *      to indicate a request for Charging Data Transfer,
                 *      sends an CC-Request
                 *          containing a Diameter-Header
                 *              containing a Version
                 *                  indicating value ‘1’
                 *              containing a Command-Flags
                 *                  containing T bit
                 *                      indicating value ‘0’
                 *                  containing E bit
                 *                      indicating value ‘0’
                 *                  containing r bits
                 *                      indicating value ‘0000’.
                 * </pre>
                 * 
                 * @version    0.0.18
                 * @see        ETSI DTS/INT 00121-2 V0.0.18 (2015-10) TP_RO_CTF_MS_02
                 */
                testcase TC_RO_CTF_MS_02() runs on DiameterRfRo system TestAdapter { 
                    // Local variables
                    var DiameterRfRo v_diameterRo_ocf; 
                    var ImsComponent v_imsComponent_ue;
                    var ImsComponent v_imsComponent_ue2;
                    var ImsComponent v_imsComponent_as;
                    
                    // Test control
                    if (not PICS_RO_CTF_IUT) {
                        log("*** " & __SCOPE__ & ": ERROR: 'PICS_RO_CTF_IUT' required for executing the TC. ***"); 
                        stop;
                    }
                    
                    // Test component configuration
                    f_cf_1Ro_2Gm_1Isc_ocfUp(v_diameterRo_ocf, v_imsComponent_ue, v_imsComponent_ue2, v_imsComponent_as);
                    
                    // Start
                    v_diameterRo_ocf.start(f_TC_RO_CTF_MS_02());
                    if (PX_SIPsupport) {
//                        v_imsComponent_ue.start(f_TC_RO_CTF_MS_UE_02);
//                        v_imsComponent_ue.start(f_TC_RO_CTF_MS_UE2_02);
//                        v_imsComponent_as.start(f_TC_RO_CTF_MS_AS_02);
                    }
                    
                    // synchronize PTC on 1 sychronization points
                    f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone});
                    
                    f_cf_1Ro_2Gm_1Isc_ocfDown(v_diameterRo_ocf, v_imsComponent_ue, v_imsComponent_ue2, v_imsComponent_as)
                    
                } // End of testcase TC_RO_CTF_MS_02
            } // End of group TP_RO_CTF_MS
            // 5.2.3.2.3 Type of Charging 
            group TP_RO_CTF_TC {