Commit cdf9e109 authored by Bostjan Pintar's avatar Bostjan Pintar
Browse files

TPs for PU groups added.

parent 84277b59
Loading
Loading
Loading
Loading
+125 −4
Original line number Original line Diff line number Diff line
@@ -907,7 +907,9 @@ module DiameterShDh_TCFunctions {
                                                     vc_destinationRealm,           // containing a Destination-Realm AVP
                                                     vc_destinationRealm,           // containing a Destination-Realm AVP
                                                     m_msisdn_user_Identity (
                                                     m_msisdn_user_Identity (
                                                                             m_MSISDN_user_identity(char2oct(PX_PublicUser_MSISDN))
                                                                             m_MSISDN_user_identity(char2oct(PX_PublicUser_MSISDN))
                    ))));
                                                     ),
                                                     m_data_Reference(REPOSITORY_DATA_E)
                    )));


                    f_awaiting_PUA(
                    f_awaiting_PUA(
                                   mdw_pUA( 
                                   mdw_pUA( 
@@ -2210,10 +2212,31 @@ module DiameterShDh_TCFunctions {
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                    log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                    log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");


                    //TODO TestBody
                    // TestBody
                    // to indicate a profile update procedure
                    action("The IUT is requested to indicate a profile update procedure");
                    // Clause 'then': the IUT sends an PU-Request and receives an PU-Answer
                    f_awaiting_PUR(
                                   mdw_pUR_Header_PURBody(
                                                          ?,
                                                          ?,                                  // containing a Session-ID AVP
                                                          mdw_purBodyAvps(
                                                              vc_originHost_IUT,              // containing an Origin-Host AVP
                                                              vc_originRealm_IUT,             // containing an Origin-Realm AVP
                                                              vc_destinationRealm_IUT                       //     indicating RepositoryData (0)
                    )));


                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 


                    f_send_PUA(
                               md_pUA(
                                      vc_sessionId,                                           // Set in f_awaiting_PUR
                                      md_udaBodyAvps(
                                                     m_resultCode(DIAMETER_SUCCESS_E),
                                                     vc_originHost,
                                                     vc_originRealm
                              )));

                    f_postamble_Sh_HSS();
                    f_postamble_Sh_HSS();
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                    log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                    log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
@@ -2336,7 +2359,39 @@ module DiameterShDh_TCFunctions {
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                    log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                    log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
    
    
                    //TODO TestBody
                    //TestBody
                    f_send_PUR(
                               md_pUR(
                                      vc_sessionId,
                                      md_purBodyAvps(
                                                     m_auth_Session_State,
                                                     vc_originHost,                 // containing an Origin-Host AVP
                                                     vc_originRealm,                // containing an Origin-Realm AVP
                                                     vc_destinationHost,            // containing an Destination-Host AVP
                                                     vc_destinationRealm,           // containing a Destination-Realm AVP
                                                     m_specific_user_Identity(
                                                                              m_public_user_identity(PX_PublicUserIdentity)
                                                                )
                                                    )
                                     )
                    );

                    f_awaiting_PUA(
                                   mdw_pUA(
                                           ?,                                  // containing a Session-ID AVP
                                           mdw_puaBodyAvps_redirect(
                                                                    m_resultCode(                   // containing containing a Result-Code AVP
                                                                                 DIAMETER_REDIRECT_INDICATION_E
                                                                                                    //     indicating DIAMETER_REDIRECT_INDICATION (3006).
                                                                    ),
                                                                    *,
                                                                    vc_originHost_IUT,              // containing an Origin-Host AVP
                                                                    vc_originRealm_IUT,             // containing an Origin-Realm AVP
                                                                                                    // containing a User-Identity AVP
                                                                                                    // containing a Data-Reference AVP
                                                                    mw_redirect_host(               // containing a Redirect-Host AVP
                                                                                     PX_HSS_IDENTITY//     indicating the HSS identity to be used
                     ))));


                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 


@@ -2476,7 +2531,30 @@ module DiameterShDh_TCFunctions {
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                    log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                    log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");


                    //TODO TestBody
                    // TestBody
                    f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());

                    f_awaiting_PUR(
                                   mdw_pUR_Header_PURBody(
                                                          ?,
                                                          ?,                                  // containing a Session-ID AVP
                                                          mdw_purBodyAvps(
                                                              vc_originHost_IUT,              // containing an Origin-Host AVP
                                                              vc_originRealm_IUT,             // containing an Origin-Realm AVP
                                                              vc_destinationRealm_IUT                       //     indicating RepositoryData (0)
                    )));

                    f_send_PUA(
                               md_pUA(
                                      vc_sessionId,                                           // Set in f_awaiting_PUR
                                      md_udaBodyAvps_redirect(
                                                     m_resultCode(DIAMETER_REDIRECT_INDICATION_E),
                                                     vc_originHost,
                                                     vc_originRealm,
                                                     m_redirect_host(               // containing a Redirect-Host AVP
                                                                     PX_HSS_IDENTITY//     indicating the HSS identity to be used
                                                     )
                              ))); 


                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 


@@ -2486,6 +2564,49 @@ module DiameterShDh_TCFunctions {


                } // End of function f_TC_DH_AS_PU_01()
                } // End of function f_TC_DH_AS_PU_01()


                function f_TC_DH_AS_PU_01_HSS() runs on DiameterShDh { 
                    // Local variables

                    // Preamble
                    f_preamble_Dh_SLF();
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                    log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");


                    // TestBody
                    // to indicate a profile update procedure
                    action("The IUT is requested to indicate a profile update procedure");
                    // Clause 'then': the IUT sends an PU-Request and receives an PU-Answer
                    f_awaiting_PUR(
                                   mdw_pUR_Header_PURBody(
                                                          ?,
                                                          ?,                                  // containing a Session-ID AVP
                                                          mdw_purBodyAvps(
                                                              vc_originHost_IUT,              // containing an Origin-Host AVP
                                                              vc_originRealm_IUT,             // containing an Origin-Realm AVP
                                                              vc_destinationRealm_IUT                       //     indicating RepositoryData (0)
                    )));
 

                    f_send_PUA(
                               md_pUA(
                                      vc_sessionId,                                           // Set in f_awaiting_PUR
                                      md_udaBodyAvps(
                                                     m_resultCode(DIAMETER_SUCCESS_E),
                                                     vc_originHost,
                                                     vc_originRealm
                              )));

                    f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); 

                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 

                    f_postamble_Dh_SLF();
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                    log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");

                } // End of function f_TC_DH_AS_PU_01_HSS()
                                
            } // End of group TP_ASRole_ProfileUpdate
            } // End of group TP_ASRole_ProfileUpdate
            
            
            group TP_ASRole_SubscriptionNotification{
            group TP_ASRole_SubscriptionNotification{
+34 −3
Original line number Original line Diff line number Diff line
@@ -554,9 +554,14 @@ module DiameterShDh_Templates {
                                                      template (present) Origin_Realm_AVP             p_originRealm := ?,
                                                      template (present) Origin_Realm_AVP             p_originRealm := ?,
                                                      template (present) Destination_Realm_AVP        p_destinationRealm := ?
                                                      template (present) Destination_Realm_AVP        p_destinationRealm := ?
                ) modifies mw_PUR_Body_dummy := {
                ) modifies mw_PUR_Body_dummy := {
                        vendor_Specific_Application_Id := ?,
                        auth_Session_State             := ?,
                        origin_Host                    := p_originHost,
                        origin_Host                    := p_originHost,
                        origin_Realm                   := p_originRealm,
                        origin_Realm                   := p_originRealm,
                        destination_Realm           := p_destinationRealm
                        destination_Realm              := p_destinationRealm,
                        user_Identity                  := ?,
                        data_Reference                 := ?,
                        user_Data                      := ?
                } // End of template mdw_purBodyAvps
                } // End of template mdw_purBodyAvps
    
    
            } // End of group pur_msg
            } // End of group pur_msg
@@ -703,6 +708,18 @@ module DiameterShDh_Templates {
                    origin_Realm                := p_originRealm
                    origin_Realm                := p_originRealm
                } // End of template md_puaBodyAvps 
                } // End of template md_puaBodyAvps 
    
    
                template (omit) PUA_Body_AVP md_puaBodyAvps_redirect(
                                                            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) Redirect_Host_AVP            p_redirect_host
                ) modifies m_PUA_Body_dummy := {
                    result_Code                 := p_resultCode,
                    origin_Host                 := p_originHost,
                    origin_Realm                := p_originRealm,
                    redirect_Host               := p_redirect_host
                } // End of template md_puaBodyAvps 
    
            } // End of group pua_msg
            } // End of group pua_msg
            
            
            group sna_msg {
            group sna_msg {
@@ -889,6 +906,20 @@ module DiameterShDh_Templates {
                    repository_Data_Id          := p_repositoryDataId
                    repository_Data_Id          := p_repositoryDataId
                } // End of template mdw_puaBodyAvps
                } // End of template mdw_puaBodyAvps
    
    
                template (present) PUA_Body_AVP mdw_puaBodyAvps_redirect(
                                                                template Result_Code_AVP              p_resultCode,
                                                                template Experimental_Result_AVP      p_exp_rescode,
                                                                template (present) Origin_Host_AVP    p_originHost,
                                                                template (present) Origin_Realm_AVP   p_originRealm,
                                                                template Redirect_Host_AVP            p_redirect_Host_AVP
                ) modifies mw_PUA_Body_dummy := {
                    result_Code                 := p_resultCode,
                    experimental_Result         := p_exp_rescode,
                    origin_Host                 := p_originHost,
                    origin_Realm                := p_originRealm,
                    redirect_Host               := p_redirect_Host_AVP
                } // End of template mdw_puaBodyAvps
    
            } // End of group pua_msg
            } // End of group pua_msg
            
            
            group sna_msg {
            group sna_msg {
+185 −2
Original line number Original line Diff line number Diff line
@@ -3000,6 +3000,65 @@ module DiameterShDh_TestCases {
            } // End of group TP_ASRole_UserData
            } // End of group TP_ASRole_UserData
            
            
            group TP_ASRole_ProfileUpdate{
            group TP_ASRole_ProfileUpdate{
                
                /**
                 * @desc    Verify that the IUT sends a PU-Request to update transparent data.
                 * <pre>
                 * Pics Selection: PICS_AS_IUT
                 * Initial conditions: 
                 *     with {
                 *        
                 *     }
                 * Expected behaviour:
                 *     ensure that {
                 *        when {
                 *            to indicate a user data update procedure
                 *        }
                 *        then {
                 *            the IUT sends a PU-Request
                 *                containing a Session-ID AVP
                 *                containing a Vendor-Specific-Application-Id AVP
                 *                containing an Auth-Session-State AVP
                 *                containing an Origin-Host AVP
                 *                containing an Origin-Realm AVP
                 *                containing a Destination-Realm AVP
                 *                containing a User-Identity AVP
                 *                containing a Data-Reference AVP
                 *                containing a User-Data AVP
                 *        }
                 *     }
                 * </pre>
                 * 
                 * @version    0.0.7
                 * @see        ETSI TS 103 571-2 TP_SH_AS_PU_01
                 */
                testcase TC_SH_AS_PU_01() runs on DiameterShDh system TestAdapter { 
                    // Local variables
                    var DiameterShDh v_diameterSh_hss; 
                    var ImsComponent v_imsComponent_scsf;
                    var CSeq p_cSeq_s := {fieldName := CSEQ_E, seqNumber := 1000, method := "REGISTER"};
                    
                    // Test control
                    if (not PICS_AS_IUT) {
                        log("*** " & __SCOPE__ & ": ERROR: 'PICS_AS_IUT' required for executing the TC. ***"); 
                        stop;
                    }
                    
                    // Test component configuration
                    f_cf_1Sh1Isc_hssUp(v_diameterSh_hss, v_imsComponent_scsf);
                    
                    // Start
                    v_diameterSh_hss.start(f_TC_SH_AS_PU_01()); 
                    if (PX_SIPsupport) {
                        v_imsComponent_scsf.start(f_TC_SH_AS_PU_01_CSCF(p_cSeq_s));
                    }
                        
                    // synchronize PTC on 1 sychronization points
                    f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone});
                        
                    f_cf_1Sh1Isc_hssDown(v_diameterSh_hss, v_imsComponent_scsf);
                        
                } // End of testcase TC_SH_AS_PU_01 
            } // End of group TP_ASRole_UserData
            } // End of group TP_ASRole_UserData
            
            
            group TP_ASRole_SubscriptionNotification{
            group TP_ASRole_SubscriptionNotification{
@@ -3087,7 +3146,71 @@ module DiameterShDh_TestCases {
            } // End of group TP_SLFRole_UserData
            } // End of group TP_SLFRole_UserData


            group TP_SLFRole_ProfileUpdate{
            group TP_SLFRole_ProfileUpdate{
            } // End of group TP_SLFRole_UserData
                
                /**
                 * @desc    Verify that the IUT processes a PU-Request and sends corresponding PU-Answer.
                 * <pre>
                 * Pics Selection: PICS_SLF_IUT
                 * Initial conditions: 
                 *     with {
                 *        
                 *     }
                 * Expected behaviour:
                 *     ensure that {
                 *        when {
                 *            the IUT receives a PU-Request
                 *                containing a Session-ID AVP
                 *                containing a Vendor-Specific-Application-Id AVP
                 *                containing an Auth-Session-State AVP
                 *                containing an Origin-Host AVP
                 *                containing an Origin-Realm AVP
                 *                containing a Destination-Realm AVP
                 *                containing a User-Identity AVP
                 *                containing a Data-Reference AVP
                 *                containing a User-Data AVP
                 *        }
                 *        then {
                 *            the IUT sends a PU-Answer 
                 *                containing a Session-ID AVP
                 *                containing a Vendor-Specific-Application-Id AVP
                 *                containing an Auth-Session-State AVP
                 *                containing an Origin-Host AVP
                 *                containing an Origin-Realm AVP
                 *                containing an Redirect-Host AVP
                 *                    indicating the HSS identity to be used
                 *                not containing an Experimental-Result AVP
                 *                containing a Result-Code AVP
                 *                    indicating DIAMETER_REDIRECT_INDICATION (3006).
                 *        }
                 *     }
                 * </pre>
                 * 
                 * @version    0.0.7
                 * @see        ETSI TS 103 571-2 TP_DH_SLF_PU_01
                 */
                testcase TC_DH_SLF_PU_01() runs on DiameterShDh system TestAdapter { 
                    // Local variables
                    var DiameterShDh v_diameterDh_as; 
                        
                    // Test control
                    if (not PICS_SLF_IUT) {
                        log("*** " & __SCOPE__ & ": ERROR: 'PICS_SLF_IUT' required for executing the TC. ***"); 
                        stop;
                    }
                    
                    // Test component configuration
                    f_cf_1Dh_asUp(v_diameterDh_as);
                    
                    // Start
                    v_diameterDh_as.start(f_TC_DH_SLF_PU_01()); 
                        
                    // synchronize PTC on 1 sychronization points
                    f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone});
                        
                    f_cf_1Dh_asDown(v_diameterDh_as);
                        
                } // End of testcase TC_DH_SLF_PU_01 
            } // End of group TP_SLFRole_ProfileUpdate


            group TP_SLFRole_SubscriptionNotification{
            group TP_SLFRole_SubscriptionNotification{
            } // End of group TP_SLFRole_SubscriptionNotification
            } // End of group TP_SLFRole_SubscriptionNotification
@@ -3165,7 +3288,67 @@ module DiameterShDh_TestCases {
            } // End of group TP_ASRole_UserData
            } // End of group TP_ASRole_UserData


            group TP_ASRole_ProfileUpdate{
            group TP_ASRole_ProfileUpdate{
            } // End of group TP_ASRole_UserData
                
                /**
                 * @desc    Verify that the IUT for user data update procedure sends a PU-Request to the SLF and after reception of a PU-Answer forwards the PU-Request to the HSS.
                 * <pre>
                 * Pics Selection: PICS_AS_IUT
                 * Initial conditions: 
                 *     with {
                 *        
                 *     }
                 * Expected behaviour:
                 *     ensure that {
                 *        when {
                 *            to indicate a user data update procedure
                 *        }
                 *        then {
                 *            the IUT sends a PU-Request to the SLF
                 *            on receipt of a PU-Answer from the SLF
                 *                containing a Redirect-Host AVP
                 *                    indicating the HSS identity to be used
                 *                not containing an Experimental-Result AVP
                 *                containing a Result-Code AVP
                 *                    indicating DIAMETER_REDIRECT_INDICATION (3006)
                 *            sends a PU-Request to the HSS
                 *                containing a Destination-Host AVP
                 *                containing a Destination-Realm AVP.
                 *        }
                 *     }
                 * </pre>
                 * 
                 * @version    0.0.7
                 * @see        ETSI TS 103 571-2 TP_DH_AS_PU_01
                 */
                testcase TC_DH_AS_PU_01() runs on DiameterShDh system TestAdapter { 
                    // Local variables
                    var DiameterShDh v_diameterSh_hss, v_diameterDh_slf; 
                    var ImsComponent v_imsComponent_scsf;
                    var CSeq p_cSeq_s := {fieldName := CSEQ_E, seqNumber := 1000, method := "REGISTER"};
                        
                    // Test control
                    if (not PICS_AS_IUT) {
                        log("*** " & __SCOPE__ & ": ERROR: 'PICS_AS_IUT' required for executing the TC. ***"); 
                        stop;
                    }
                    
                    // Test component configuration
                    f_cf_1Dh1Sh1Isc_slfUp(v_diameterDh_slf, v_diameterSh_hss, v_imsComponent_scsf);
                    
                    // Start
                    v_diameterDh_slf.start(f_TC_DH_AS_PU_01()); 
                    v_diameterSh_hss.start(f_TC_DH_AS_PU_01_HSS());
                    if (PX_SIPsupport) {
                        v_imsComponent_scsf.start(f_TC_DH_AS_PU_01_CSCF(p_cSeq_s));
                    }
                    
                    // synchronize PTC on 2 sychronization points
                    f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, LibDiameter_TypesAndValues.c_sync1, c_tbDone, c_poDone});
                        
                    f_cf_1Dh1Sh1Isc_slfDown(v_diameterDh_slf, v_diameterSh_hss, v_imsComponent_scsf);
                        
                } // End of testcase TC_DH_AS_PU_01 
            } // End of group TP_ASRole_ProfileUpdate


            group TP_ASRole_SubscriptionNotification{
            group TP_ASRole_SubscriptionNotification{
            } // End of group TP_ASRole_SubscriptionNotification
            } // End of group TP_ASRole_SubscriptionNotification