Commit 2a78d57e authored by pintar's avatar pintar
Browse files

New tests for RO_CTF_TC group

parent cc187011
Loading
Loading
Loading
Loading
+229 −6
Original line number Original line Diff line number Diff line
@@ -2181,6 +2181,8 @@ module DiameterRfRo_TCFunctions {
                        )
                        )
                    );
                    );


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

                    f_send_CCA(
                    f_send_CCA(
                        md_cCA( 
                        md_cCA( 
                            vc_sessionId,                       // containing a Session-ID AVP
                            vc_sessionId,                       // containing a Session-ID AVP
@@ -2194,8 +2196,6 @@ module DiameterRfRo_TCFunctions {
                        ))
                        ))
                    );
                    );


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

                    f_postamble_Ro_OCF();
                    f_postamble_Ro_OCF();
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
                    log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                    log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
@@ -2219,6 +2219,8 @@ module DiameterRfRo_TCFunctions {
                        mw_CCR_CmdFlags_PET(mw_diameterHeaderReq_CmdFlags(CCR_E, ?, mw_cmdFlagsReq_PET('0'B,'0'B,'0'B)))
                        mw_CCR_CmdFlags_PET(mw_diameterHeaderReq_CmdFlags(CCR_E, ?, mw_cmdFlagsReq_PET('0'B,'0'B,'0'B)))
                    );
                    );


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

                    f_send_CCA(
                    f_send_CCA(
                        md_cCA( 
                        md_cCA( 
                            vc_sessionId,                       // containing a Session-ID AVP
                            vc_sessionId,                       // containing a Session-ID AVP
@@ -2233,8 +2235,6 @@ module DiameterRfRo_TCFunctions {
                        ))
                        ))
                    );
                    );


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

                    f_postamble_Ro_OCF();
                    f_postamble_Ro_OCF();
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
                    log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                    log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
@@ -2268,11 +2268,15 @@ module DiameterRfRo_TCFunctions {
                                ?,                                      // containing a CC-Request-Number AVP
                                ?,                                      // containing a CC-Request-Number AVP
                                ?,                                      // containing a Service-Context-Id AVP
                                ?,                                      // containing a Service-Context-Id AVP
                                mw_requested_Action(DIRECT_DEBITING_E), // containing a Requested Action 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
                                {(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
                            )
                            )
                        )
                        )
                    );
                    );


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

                    f_send_CCA(
                    f_send_CCA(
                        md_cCA( 
                        md_cCA( 
                            vc_sessionId,                       // containing a Session-ID AVP
                            vc_sessionId,                       // containing a Session-ID AVP
@@ -2286,13 +2290,232 @@ module DiameterRfRo_TCFunctions {
                        ))
                        ))
                    );
                    );


                    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
                
                /**
                 * @desc    Verify that the IUT sends a CC-Request [Event] 
                 *          with price enquiry due to Immediate Event Charging.
                 * @verdict pass on success, fail on error or inconc on timeout only 
                 */
                function f_TC_RO_CTF_TC_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(
                        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(PRICE_ENQUIRY_E), // containing a Requested Action AVP
                                {mdw_multiple_Services_Credit_Control_ReqServUnit_ServId(*,?)}  // containing a Multiple-Services-Credit-Control AVP
                            )
                        )
                    );

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


                    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_postamble_Ro_OCF();
                    f_postamble_Ro_OCF();
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
                    log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                    log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                    
                    
                } // End of function f_TC_RO_CTF_TC_01
                } // End of function f_TC_RO_CTF_TC_02
                
                /**
                 * @desc    Verify that the IUT sends a CC-Request [Event] 
                 *          with check balance due to Immediate Event Charging.
                 * @verdict pass on success, fail on error or inconc on timeout only 
                 */
                function f_TC_RO_CTF_TC_03() 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(CHECK_BALANCE_E),   // containing a Requested Action AVP
                                *  // containing a Multiple-Services-Credit-Control AVP
                            )
                        )
                    );

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

                    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_postamble_Ro_OCF();
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
                    log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                    
                } // End of function f_TC_RO_CTF_TC_03
                
                /**
                 * @desc    Verify that the IUT sends a CC-Request [Event] 
                 *          with check balance due to Immediate Event Charging.
                 * @verdict pass on success, fail on error or inconc on timeout only 
                 */
                function f_TC_RO_CTF_TC_04() 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(REFUND_ACCOUNT_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
                            )
                        )
                    );

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

                    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_postamble_Ro_OCF();
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
                    log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                    
                } // End of function f_TC_RO_CTF_TC_04
                
                /**
                 * @desc    Verify that the IUT sends a second CC-Request [Event] with refund
                 *  account due to Immediate Event Charging with Refund-Information AVP 
                 * if it was received in the previous CC-Answer.
                 * @verdict pass on success, fail on error or inconc on timeout only 
                 */
                function f_TC_RO_CTF_TC_05() 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
                                *  // containing a Multiple-Services-Credit-Control AVP
                            )
                        )
                    );

                    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(EVENT_REQUEST_E),
                                m_cC_Request_Number ( 1 ),
                                {m_multiple_Services_Credit_Control_RefundInfo(m_refund_Information_AVP('11'O))}
                        ))
                    );

                    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(REFUND_ACCOUNT_E),  // containing a Requested Action AVP
                                {mdw_multiple_Services_Credit_Control_RefundInfo(?)}  // containing a Multiple-Services-Credit-Control AVP
                            )
                        )
                    );

                    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_05
            } // End of group TP_RO_CTF_TC
            } // End of group TP_RO_CTF_TC
            // 5.2.3.2.4 Error Casses 
            // 5.2.3.2.4 Error Casses 
            group TP_RO_CTF_EC {
            group TP_RO_CTF_EC {
+26 −1
Original line number Original line Diff line number Diff line
@@ -5073,6 +5073,18 @@ module DiameterRfRo_Templates {
                cC_Request_Number           := p_cC_Request_Number
                cC_Request_Number           := p_cC_Request_Number
            } // End of template md_ccaBodyAvps_Update
            } // End of template md_ccaBodyAvps_Update
            
            
            template (value) CCA_Body_AVP md_ccaBodyAvps_MultipleServiceCreditControl(
                                                         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_cCRequestNumber,
                                                         in template (omit)  CCA_Body_AVP.multiple_Services_Credit_Control  p_multiple_Services_Credit_Control := omit
            ) modifies md_ccaBodyAvps := {
                cC_Request_Number           := p_cCRequestNumber,
                multiple_Services_Credit_Control :=  p_multiple_Services_Credit_Control
            } // End of template md_ccaBodyAvps 
            
        } // End of group Ro_answer_message_templates_send 
        } // End of group Ro_answer_message_templates_send 
        
        
        group Ro_request_message_templates_receive {
        group Ro_request_message_templates_receive {
@@ -5354,10 +5366,18 @@ module DiameterRfRo_Templates {
                                                                                                        in template (omit) Used_Service_Unit_AVP      p_used_Service_Unit := omit,
                                                                                                        in template (omit) Used_Service_Unit_AVP      p_used_Service_Unit := omit,
                                                                                                        in template (omit) Service_Identifier_AVP     p_service_Identifier := omit
                                                                                                        in template (omit) Service_Identifier_AVP     p_service_Identifier := omit
            ) modifies m_multiple_Services_Credit_Control_AVP_dummy := {
            ) modifies m_multiple_Services_Credit_Control_AVP_dummy := {
                // TODO set headers length
                requested_Service_Unit          := p_requested_Service_Unit ifpresent,
                requested_Service_Unit          := p_requested_Service_Unit ifpresent,
                service_Identifier              := { p_service_Identifier } ifpresent
                service_Identifier              := { p_service_Identifier } ifpresent
            } // End of template m_multiple_Services_Credit_Control_AVP
            } // End of template m_multiple_Services_Credit_Control_AVP
            
            
            template (omit) Multiple_Services_Credit_Control_AVP m_multiple_Services_Credit_Control_RefundInfo(
                                                                                                        in template (value) Refund_Information_AVP     p_refund_Information
            ) modifies m_multiple_Services_Credit_Control_AVP_dummy := {
                // TODO set headers length
                refund_Information          := p_refund_Information
            } // End of template m_multiple_Services_Credit_Control_RefundInfo
            
            template (value) Requested_Service_Unit_AVP m_requested_Service_Unit_cC_Time_AVP(
            template (value) Requested_Service_Unit_AVP m_requested_Service_Unit_cC_Time_AVP(
                                                                                             in template (value) CC_Time_AVP p_cC_Time
                                                                                             in template (value) CC_Time_AVP p_cC_Time
            ) modifies m_requested_Service_Unit_AVP_dummy := {
            ) modifies m_requested_Service_Unit_AVP_dummy := {
@@ -5538,12 +5558,17 @@ module DiameterRfRo_Templates {
            template (present) Multiple_Services_Credit_Control_AVP mdw_multiple_Services_Credit_Control_ReqServUnit_ServId(
            template (present) Multiple_Services_Credit_Control_AVP mdw_multiple_Services_Credit_Control_ReqServUnit_ServId(
                                                  template Requested_Service_Unit_AVP p_requested_Service_Unit,
                                                  template Requested_Service_Unit_AVP p_requested_Service_Unit,
                                                  template Multiple_Services_Credit_Control_AVP.service_Identifier p_service_Identifier
                                                  template Multiple_Services_Credit_Control_AVP.service_Identifier p_service_Identifier
                                                  
            ) modifies mw_multiple_Services_Credit_Control_dummy := {
            ) modifies mw_multiple_Services_Credit_Control_dummy := {
                requested_Service_Unit          := p_requested_Service_Unit,
                requested_Service_Unit          := p_requested_Service_Unit,
                service_Identifier              := p_service_Identifier
                service_Identifier              := p_service_Identifier
            } // End of template mdw_multiple_Services_Credit_Control_ReqServUnit_ServId
            } // End of template mdw_multiple_Services_Credit_Control_ReqServUnit_ServId
            
            
            template (present) Multiple_Services_Credit_Control_AVP mdw_multiple_Services_Credit_Control_RefundInfo(
                                                  template Refund_Information_AVP p_refund_Information
            ) modifies mw_multiple_Services_Credit_Control_dummy := {
                refund_Information          := p_refund_Information
            } // End of template mdw_multiple_Services_Credit_Control_ReqServUnit_ServId
            
            template (present) Granted_Service_Unit_AVP mdw_granted_Service_Unit_Time(
            template (present) Granted_Service_Unit_AVP mdw_granted_Service_Unit_Time(
                                                                                      template (present) CC_Time_AVP p_cC_Time := ?
                                                                                      template (present) CC_Time_AVP p_cC_Time := ?
            ) modifies mw_granted_Service_Unit_dummy := {
            ) modifies mw_granted_Service_Unit_dummy := {
+596 −49

File changed.

Preview size limit exceeded, changes collapsed.