Commit c466cea8 authored by garciay's avatar garciay
Browse files

Add TC_RO_CTF_OP_11..13

parent c3fb670e
Loading
Loading
Loading
Loading
+385 −7
Original line number Diff line number Diff line
@@ -6639,7 +6639,8 @@ module DiameterRfRo_TCFunctions {
                                mw_requested_Action(DIRECT_DEBITING_E), // containing a Requested Action AVP
                                {(mdw_multiple_Services_Credit_Control_ReqServUnit_ServId(?,?),
                                mdw_multiple_Services_Credit_Control_ReqServUnit_ServId(?,*),
                                mdw_multiple_Services_Credit_Control_ReqServUnit_ServId(*,?))}  // containing a Multiple-Services-Credit-Control AVP
                                mdw_multiple_Services_Credit_Control_ReqServUnit_ServId(*,?))}
                                                                        // containing a Multiple-Services-Credit-Control AVP
                            )
                        )
                    );
@@ -9272,8 +9273,385 @@ module DiameterRfRo_TCFunctions {
                    log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                    
                } // End of function f_TC_RO_CTF_OP_10
                
                /**
                 * @desc    Verify that the IUT can successfully terminate sessions on a CCR, CCA [Update] exchange.
                 * @verdict pass on success, fail on error or inconc on timeout only 
                 */
                function f_TC_RO_CTF_OP_11() runs on DiameterRfRo {
                    // Local variables
                    
                    // Preamble
                    f_preamble_Ro_OCF();

                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
                    log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                    
                    f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point sync1
                    
                    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(INITIAL_REQUEST_E),// containing a CC-Request-Type AVP
                                mw_cC_Request_Number(vc_recv_cC_Request_Number),// containing a CC-Request-Number AVP
                                ?,                                      // containing a Service-Context-Id AVP
                                *,                                      // not containing a Requested Action AVP due to Request-Type is not EVENT-REQUEST
                                {mdw_multiple_Services_Credit_Control_UsedServUnit // containing a Multiple-Services-Credit-Control AVP
                                    (
                                        {mw_used_Service_Unit_AVP_dummy}
                                    )
                                } 
                            )
                        )
                    );

                    f_send_CCA(
                        md_cCA( 
                            vc_sessionId,                       // containing a Session-ID AVP
                            md_ccaBodyAvps_MultipleServiceCreditControl(
                                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),
                                m_cC_Request_Number(vc_recv_cC_Request_Number),
                                {
                                    md_multiple_Services_Credit_Control_grantedServUnit_quotaConsumTime(
                                       m_granted_Service_Unit_Volume(m_cC_Time(32)),
                                       m_quota_Consumption_Time(5)//indicating a period equal to the Quota Consumption Time
                                       
                                    )
                                }
                                
                        ))
                    );

                    f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point sync1
                    
                    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(UPDATE_REQUEST_E),// containing a CC-Request-Type AVP
                                mw_cC_Request_Number(vc_recv_cC_Request_Number),// containing a CC-Request-Number AVP
                                ?,                                      // containing a Service-Context-Id AVP
                                *,                                      // not containing a Requested Action AVP due to Request-Type is not EVENT-REQUEST
                                {mdw_multiple_Services_Credit_Control_UsedServUnit // containing a Multiple-Services-Credit-Control AVP
                                    (
                                        {mw_used_Service_Unit_AVP_dummy}
                                    )
                                }      
                            )
                        )
                    );

                    f_send_CCA(
                        md_cCA( 
                            vc_sessionId,                       // containing a Session-ID AVP
                            md_ccaBodyAvps_ReqNumber(
                                m_resultCode(                   // containing a Result-Code AVP
                                    DIAMETER_AUTHORIZATION_REJECTED_E
                                                                //     indicating DIAMETER-AUTHORIZATION-REJECTED
                                ),
                                vc_originHost,                  // containing an Origin-Host AVP
                                vc_originRealm,                 // containing an Origin-Realm AVP
                                m_cC_Request_Type(UPDATE_REQUEST_E),
                                m_cC_Request_Number(vc_recv_cC_Request_Number)// containing a CC-Request-Number AVP
                        ))
                    );

                    f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());// sync point sync2

                    f_awaitCCR_sendCCA_(
                                        TERMINATION_REQUEST_E, 
                                        vc_recv_cC_Request_Number
                                        );

                    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_OP_11
                
                /**
                 * @desc    Verify that the IUT can successfully terminate session on an ASR, ASA exchange.
                 * @verdict pass on success, fail on error or inconc on timeout only 
                 */
                function f_TC_RO_CTF_OP_12() 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(INITIAL_REQUEST_E),// containing a CC-Request-Type AVP
                                mw_cC_Request_Number(vc_recv_cC_Request_Number),// containing a CC-Request-Number AVP
                                ?,                                      // containing a Service-Context-Id AVP
                                *,                                      // not containing a Requested Action AVP due to Request-Type is not EVENT-REQUEST
                                {mdw_multiple_Services_Credit_Control_UsedServUnit // containing a Multiple-Services-Credit-Control AVP
                                    (
                                        {mw_used_Service_Unit_AVP_dummy}
                                    )
                                } 
                            )
                        )
                    );

                    f_send_CCA(
                        md_cCA( 
                            vc_sessionId,                       // containing a Session-ID AVP
                            md_ccaBodyAvps_MultipleServiceCreditControl(
                                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),
                                m_cC_Request_Number(vc_recv_cC_Request_Number),
                                {
                                    md_multiple_Services_Credit_Control_grantedServUnit_quotaConsumTime(
                                       m_granted_Service_Unit_Volume(m_cC_Time(32)),
                                       m_quota_Consumption_Time(5)//indicating a period equal to the Quota Consumption Time
                                       
                                    )
                                }
                                
                        ))
                    );

                    f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point sync1
                    
                    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(UPDATE_REQUEST_E),// containing a CC-Request-Type AVP
                                mw_cC_Request_Number(vc_recv_cC_Request_Number),// containing a CC-Request-Number AVP
                                ?,                                      // containing a Service-Context-Id AVP
                                *,                                      // not containing a Requested Action AVP due to Request-Type is not EVENT-REQUEST
                                {mdw_multiple_Services_Credit_Control_UsedServUnit // containing a Multiple-Services-Credit-Control AVP
                                    (
                                        {mw_used_Service_Unit_AVP_dummy}
                                    )
                                }      
                            )
                        )
                    );

                    f_send_CCA(
                        md_cCA( 
                            vc_sessionId,                       // containing a Session-ID AVP
                            md_ccaBodyAvps_ReqNumber(
                                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(UPDATE_REQUEST_E),
                                m_cC_Request_Number(vc_recv_cC_Request_Number)// containing a CC-Request-Number AVP
                        ))
                    );

                    f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());// sync point sync2

                    f_awaiting_ASR(                            // the IUT sends an AS-Request
                        mdw_aSR(
                            vc_sessionId,                      // containing a Session-ID AVP
                            mdw_asrBodyAvps(
                                vc_originHost,                 // containing an Origin-Host AVP
                                vc_originRealm,                // containing an Origin-Realm AVP
                                vc_destinationRealm,           // containing a Destination-Realm AVP
                                vc_destinationHost             // containing a Destination-Host AVP
                                                               // containing an Auth-Application-Id AVP
                            )
                        )
                    );
                    f_send_ASA(                                 // the IUT receives an AS-Answer
                        md_aSA(
                            vc_sessionId,                       // containing a Session-ID AVP
                            md_asaBodyAvps(
                                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
                            )
                        )
                    );

                    f_awaitCCR_sendCCA_(
                                        TERMINATION_REQUEST_E, 
                                        vc_recv_cC_Request_Number
                                        );

                    f_send_CCA(
                        md_cCA( 
                            vc_sessionId,                       // containing a Session-ID AVP
                            md_ccaBodyAvps(
                                m_resultCode(                   // containing a Result-Code AVP
                                    DIAMETER_AUTHORIZATION_REJECTED_E
                                                                //     indicating DIAMETER-AUTHORIZATION-REJECTED
                                ),
                                vc_originHost,                  // containing an Origin-Host AVP
                                vc_originRealm,                 // containing an Origin-Realm AVP
                                m_cC_Request_Type(TERMINATION_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_OP_12
                
                /**
                 * @desc    Verify that the IUT can process quota consumption time.
                 * @verdict pass on success, fail on error or inconc on timeout only 
                 */
                function f_TC_RO_CTF_OP_13() runs on DiameterRfRo {
                    // Local variables
                    var integer v_counter;
                    
                    // 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(INITIAL_REQUEST_E),// containing a CC-Request-Type AVP
                                mw_cC_Request_Number(vc_recv_cC_Request_Number),// containing a CC-Request-Number AVP
                                ?,                                      // containing a Service-Context-Id AVP
                                *,                                      // not containing a Requested Action AVP due to Request-Type is not EVENT-REQUEST
                                {mdw_multiple_Services_Credit_Control_UsedServUnit // containing a Multiple-Services-Credit-Control AVP
                                    (
                                        {mw_used_Service_Unit_AVP_dummy}
                                    )
                                } 
                            )
                        )
                    );

                    f_send_CCA(
                        md_cCA( 
                            vc_sessionId,                       // containing a Session-ID AVP
                            md_ccaBodyAvps_MultipleServiceCreditControl(
                                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),
                                m_cC_Request_Number(vc_recv_cC_Request_Number),
                                {
                                    md_multiple_Services_Credit_Control_granted_Service_Unit_Envelope_Reporting(
                                       m_granted_Service_Unit_Volume(m_cC_Time(32)),
                                       m_envelope_Reporting(    // containing an Envelope-Reporting AVP
                                           DO_NOT_REPORT_ENVELOPES_E
                                                                //     indicating DO_NOT_REPORT_ENVELOPES
                                       )
                                    )
                                }
                                
                        ))
                    );

                    f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point sync1
                    
                    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(UPDATE_REQUEST_E),// containing a CC-Request-Type AVP
                                mw_cC_Request_Number(vc_recv_cC_Request_Number),// containing a CC-Request-Number AVP
                                ?,                                      // containing a Service-Context-Id AVP
                                *,                                      // not containing a Requested Action AVP due to Request-Type is not EVENT-REQUEST
                                {
                                    mdw_multiple_Services_Credit_Control_UsedServUnit 
                                                                        // containing a Multiple-Services-Credit-Control AVP
                                                                        //     containing a Used-Service-Unit AVP
                                } 
                            )
                        )
                    );
                    for (v_counter := 0; v_counter < lengthof(vc_recvDiamMsg.cCR.cCR_Body.multiple_Services_Indicator.Multiple_Services_Credit_Control_AVP); v_counter := v_counter + 1) {
                        if (
                            ispresent(
                                vc_recvDiamMsg.cCR.cCR_Body.multiple_Services_Indicator.multiple_Services_Credit_Control[v_counter].multiple_Services_Credit_Control
                            ) 
                        ) {                                             //         not containing an Envelope AVP
                            f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());// sync point sync2
                            f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // Error
                        }
                        
                    } // end of 'for' statement

                    f_send_CCA(
                        md_cCA( 
                            vc_sessionId,                       // containing a Session-ID AVP
                            md_ccaBodyAvps_ReqNumber(
                                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(UPDATE_REQUEST_E),
                                m_cC_Request_Number(vc_recv_cC_Request_Number)
                        ))
                    );

                    f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());// sync point sync2

                    f_awaitCCR_sendCCA_(
                                        TERMINATION_REQUEST_E, 
                                        vc_recv_cC_Request_Number
                                        );

                    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_OP_13
                
            } // End of group TP_RO_CTF_OP
            
        } //End of group TP_RO_CTF_Role
        
    } // End of group TP_RO_Role
    
} // End of module DiameterRfRo_Rf_TCFunctions
 No newline at end of file
+53 −44

File changed.

Preview size limit exceeded, changes collapsed.