From 89ce99d5a6a3e1fceb125045c7940cc9f8b4165a Mon Sep 17 00:00:00 2001 From: Steven Ulrich Date: Wed, 13 Feb 2019 10:24:02 +0100 Subject: [PATCH 01/24] added test case description f_TC_SH_HSS_SN_02 --- ttcn/DiameterShDh_TestCases.ttcn3 | 6769 +++++++++++++++-------------- 1 file changed, 3411 insertions(+), 3358 deletions(-) diff --git a/ttcn/DiameterShDh_TestCases.ttcn3 b/ttcn/DiameterShDh_TestCases.ttcn3 index e79d982..a92e912 100644 --- a/ttcn/DiameterShDh_TestCases.ttcn3 +++ b/ttcn/DiameterShDh_TestCases.ttcn3 @@ -1,3359 +1,3412 @@ -/** - * @author STF 480 - * @version $Id$ - * @desc This module provides test cases - * for SIP-CxDx-DIAMETER tests. - */ -module DiameterShDh_TestCases { - - //LibCommon - import from LibCommon_Sync all ; - import from LibCommon_VerdictControl all; - - //LibDiameter - import from LibDiameter_Interface all; - import from LibDiameter_TypesAndValues all; - - //LibSip - import from LibSip_Interface all; - import from LibSip_SIPTypesAndValues all; - - //LibIms - import from LibIms_SIPTypesAndValues all; - import from LibIms_Interface all; - - //AtsShDh - import from DiameterShDh_TestConfiguration all; - import from DiameterShDh_TestSystem all; - import from DiameterShDh_TCFunctions all; - import from DiameterShDh_SIP_TCFunctions all; - import from DiameterShDh_PICS all; - import from DiameterShDh_PIXITS all; - import from DiameterShDh_Steps all; - import from DiameterShDh_TestSystem all; - - group TP_Sh { //Sh Test cases - - group TP_HSS_Role { // §5.2.2.1 - - group TP_HSSRole_MessageSyntax { - - /** - * @desc Verify that the IUT sends the appropriate Result-Code AVP when mandatory User-Identity AVP is absent. - *
-                 * Pics Selection: PICS_HSS_IUT
-                 * Initial conditions: 
-                 *     with {
-                 *        
-                 *     }
-                 * Expected behaviour:
-                 *     ensure that {
-                 *        when {
-                 *            the IUT receives a UD-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
-                 *                not containing a User-Identity AVP
-                 *                containing a Data-Reference AVP
-                 *        }
-                 *        then {
-                 *            the IUT sends a UD-Answer 
-                 *                containing a Session-ID AVP
-                 *                containing a Result-Code AVP
-                 *                    indicating DIAMETER_MISSING_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 Failed AVP
-                 *                    indicating missing Information Element
-                 *        }
-                 *     }
-                 * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_MS_01 - */ - testcase TC_SH_HSS_MS_01() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - // Test control - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_MS_01()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TC_SH_HSS_MS_01 - - } // End of group TP_HSS_Role_MS - - - group TP_HSSRole_UserData { - - /** - * @desc Verify that the IUT successfully process all mandatory AVPs in a UD-Request in case if requested data exists or there are valid empty data elements and return UD-Answer containing Result-Code AVP with DIAMETER_SUCCESS. - *
-                 * Pics Selection: PICS_HSS_IUT
-                 * Initial conditions: 
-                 *     with {
-                 *        
-                 *     }
-                 * Expected behaviour:
-                 *     Ensure that the IUT
-                 *          on receipt of a UD-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
-                 *          sends a UD-Answer
-                 *              containing a Session-ID AVP
-                 *              containing a Result-Code AVP
-                 *                  indicating DIAMETER_SUCCESS
-                 *              containing a Vendor-Specific-Application-Id AVP
-                 *              containing an Auth-Session-State AVP
-                 *              containing an Origin-Host AVP
-                 *              containing an Origin-Realm AVP.
-                 * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_UD_01 - */ - testcase TC_SH_HSS_UD_01() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - // Test control - PICS - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_UD_01()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TC_SH_HSS_UD_01 - - /** - * @desc Verify that the IUT checks in AS permission list if the requested user data is allowed to be read and if one or more Data Reference in the request are not allowed the IUT returns UD-Answer with appropriate experimental result code. - *
-                 * Pics Selection: PICS_HSS_IUT
-                 * Initial conditions: 
-                 *     with {
-                 *        
-                 *     }
-                 * Expected behaviour:
-                 *     Ensure that the IUT
-                 *         on receipt of a UD-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
-                 *          sends a UD-Answer
-                 *              containing a Session-ID AVP
-                 *              containing an Experimental-Result AVP
-                 *                  indicating DIAMETER_ERROR_USER_DATA_CANNOT_BE_READ
-                 *              containing a Vendor-Specific-Application-Id AVP
-                 *              containing an Auth-Session-State AVP
-                 *              containing an Origin-Host AVP
-                 *              containing an Origin-Realm AVP.
-                 * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_UD_02 - */ - testcase TC_SH_HSS_UD_02() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - // Test control - PICS - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_UD_02()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TC_SH_HSS_UD_02 - - /** - * @desc Verify that the IUT checks if User Identity for whom data is asked does not exist the IUT returns UD-Answer with appropriate experimental result code. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                 *            on receipt of a UD-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
-                 *                  indicating not existing user
-                 *              containing a Data-Reference AVP
-                 *          sends a UD-Answer
-                 *              containing a Session-ID AVP
-                 *              containing an Experimental-Result AVP
-                 *                  indicating DIAMETER_ERROR_USER_UNKNOWN
-                 *              containing a Vendor-Specific-Application-Id AVP
-                 *              containing an Auth-Session-State AVP
-                 *              containing an Origin-Host AVP
-                 *              containing an Origin-Realm AVP.
-                 * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_UD_03 - */ - testcase TC_SH_HSS_UD_03() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - // Test control - PICS - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_UD_03()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TC_SH_HSS_UD_03 - - /** - * @desc Verify that the IUT checks if Private Identity corresponds to IMPU/MSISDN and if not the IUT returns UD-Answer with appropriate experimental result code. - *
-                 * Pics Selection: PICS_HSS_IUT
-                 * Initial conditions: 
-                 *     with {
-                 *        
-                 *     }
-                 * Expected behaviour:
-                 *     Ensure that the IUT
-                 *          on receipt of a UD-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
-                 *                  indicating not related Private Identity
-                 *              containing a Data-Reference AVP
-                 *          sends a UD-Answer
-                 *              containing a Session-ID AVP
-                 *              containing an Experimental-Result AVP
-                 *                  indicating DIAMETER_ERROR_IDENTITIES_DONT_MATCH
-                 *              containing a Vendor-Specific-Application-Id AVP
-                 *              containing an Auth-Session-State AVP
-                 *              containing an Origin-Host AVP
-                 *              containing an Origin-Realm AVP.
-                 * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_UD_04 - */ - testcase TC_SH_HSS_UD_04() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - // Test control - PICS - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_UD_04()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TC_SH_HSS_UD_04 - - /** - * @desc Verify that the IUT checks if type of User Identity does not apply according to the Table 7.6.1 due to the Data-Reference indicated in the request the IUT returns UD-Answer with appropriate experimental result code. - *
-                 * Pics Selection: PICS_HSS_IUT
-                 * Initial conditions: 
-                 *     with {
-                 *        
-                 *     }
-                 * Expected behaviour:
-                 *     Ensure that the IUT
-                 *          on receipt of a UD-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
-                 *                  indicating MSISDN
-                 *              containing a Data-Reference AVP
-                 *                  indicating RepositoryData (0)
-                 *              containing a Service-Indication AVP
-                 *          sends a UD-Answer
-                 *              containing a Session-ID AVP
-                 *              containing an Experimental-Result AVP
-                 *                  indicating DIAMETER_ERROR_OPERATION_NOT_ALLOWED
-                 *              containing a Vendor-Specific-Application-Id AVP
-                 *              containing an Auth-Session-State AVP
-                 *              containing an Origin-Host AVP
-                 *              containing an Origin-Realm AVP.
-                 * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_UD_05 - */ - testcase TC_SH_HSS_UD_05() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - // Test control - PICS - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_UD_05()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TC_SH_HSS_UD_05 - - /** - * @desc Verify that the IUT checks if data-reference is IPAddressSecureBindingInformation (22) and the User Identity is an IMS Public User Identity that is shared between multiple Private User Identities the IUT returns UD-Answer with appropriate experimental result code. - *
-                 * Pics Selection: PICS_HSS_IUT
-                 * Initial conditions: 
-                 *     with {
-                 *        
-                 *     }
-                 * Expected behaviour:
-                 *     Ensure that the IUT
-                 *      on receipt of a UD-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
-                 *              indicating IMS Public User Identity
-                 *          containing a Data-Reference AVP
-                 *              indicating IPAddressSecurityBindingInformation (22)
-                 *      sends a UD-Answer
-                 *          containing a Session-ID AVP
-                 *          containing an Experimental-Result AVP
-                 *              indicating DIAMETER_ERROR_OPERATION_NOT_ALLOWED
-                 *          containing a Vendor-Specific-Application-Id AVP
-                 *          containing an Auth-Session-State AVP
-                 *          containing an Origin-Host AVP
-                 *          containing an Origin-Realm AVP.
-
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_UD_06 - */ - testcase TC_SH_HSS_UD_06() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - // Test control - PICS - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_UD_06()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TC_SH_HSS_UD_06 - - /** - * @desc Verify that the IUT checks whether or not the data that is requested to be downloaded by the AS is currently being updated by another entity. If HSS is not able to delay the Sh-Pull-Resp message e.g. due to timeout the IUT returns UD-Answer with appropriate experimental result code. - *
-                 * Pics Selection: PICS_HSS_IUT
-                 * Initial conditions: 
-                 *     with {
-                 *        
-                 *     }
-                 * Expected behaviour:
-                 *     Ensure that the IUT
-                 *      on receipt of a UD-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
-                        sends a UD-Answer
-                 *          containing a Session-ID AVP
-                 *          containing an Experimental-Result AVP
-                 *              indicating DIAMETER_USER_DATA_NOT_AVAILABLE
-                 *          containing a Vendor-Specific-Application-Id AVP
-                 *          containing an Auth-Session-State AVP
-                 *          containing an Origin-Host AVP
-                 *          containing an Origin-Realm AVP.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_UD_07 - */ - testcase TC_SH_HSS_UD_07() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - // Test control - PICS - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_UD_07()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TC_SH_HSS_UD_07 - - /** - * @desc Verify that the IUT in case if T-ADS Information is requested provides the most recent IMS Voice over PS Sessions support indication. - *
-                 * Pics Selection: PICS_HSS_IUT
-                 * Initial conditions: 
-                 *     with {
-                 *        
-                 *     }
-                 * Expected behaviour:
-                 *     Ensure that the IUT
-                 *       on receipt of a UD-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
-                 *              indicating IMS Public User Identity
-                 *          containing a Data-Reference AVP
-                 *              indicating TADSinformation (26)
-                 *      sends a UD-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 User-Data AVP
-                 *              indicating TADS information.
-                 * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_UD_08 - */ - testcase TC_SH_HSS_UD_08() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //TODO Test control - PICS - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_UD_08()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TC_SH_HSS_UD_08 - - /** - * @desc Verify that the IUT includes the data pertinent to the requested Data Reference in the User-Data AVP due to the Table 3. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                        on receipt of a UD-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
-                 *              indicating IMS Public User Identity
-                 *          containing a Data-Reference AVP
-                 *              indicating variant value from Table 3
-                        sends a UD-Answer
-                 *          containing a Session-ID AVP
-                 *          containing a Result-Code AVP
-                 *              indicating DIAMETER_SUCCESS
-                 *          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 User-Data AVP
-                 *              containing variant value from Table 3
-                 *          may containing a Supported-Features AVP
-                 *              containing Vendor-Id AVP
-                 *              containing Feature-List-ID AVP
-                 *              containing Feature-List AVP
-                 *                  indicating Notif-Eff bit set to 1.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_UD_09 - */ - testcase TC_SH_HSS_UD_09() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //TODO Test control - PICS - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_UD_09()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TC_SH_HSS_UD_09 - - /** - * @desc Verify that the IUT does not include the User-Data AVP within UD-Answer if both AS and the IUT have determined via mutual feature evaluation to not support the Notif-Eff feature and in the case that requested data is not available to the HSS. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                        on receipt of a UD-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
-                 *              indicating IMS Public User Identity
-                 *          containing a Data-Reference AVP
-                 *              indicating variant value from Table 3
-                        sends a UD-Answer
-                 *          containing a Session-ID AVP
-                 *          containing a Result-Code AVP
-                 *              indicating DIAMETER_SUCCESS
-                 *          containing a Vendor-Specific-Application-Id AVP
-                 *          containing an Auth-Session-State AVP
-                 *          containing an Origin-Host AVP
-                 *          containing an Origin-Realm AVP
-                 *          not containing an User-Data AVP.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_UD_10 - */ - testcase TC_SH_HSS_UD_10() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //TODO Test control - PICS - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_UD_10()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TC_SH_HSS_UD_10 - - /** - * @desc Verify that the IUT does not include the User-Data AVP within UD-Answer if both the AS and the HSS support the Notif-Eff feature and none of the requested data is available to the IUT. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                        on receipt of a UD-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
-                 *              indicating IMS Public User Identity
-                 *          containing a Data-Reference AVP
-                 *              indicating variant value from Table 3
-                        sends a UD-Answer
-                 *          containing a Session-ID AVP
-                 *          containing a Result-Code AVP
-                 *              indicating DIAMETER_SUCCESS
-                 *          containing a Vendor-Specific-Application-Id AVP
-                 *          containing an Auth-Session-State AVP
-                 *          containing an Origin-Host AVP
-                 *          containing an Origin-Realm AVP
-                 *          not containing an User-Data AVP.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_UD_11 - */ - testcase TC_SH_HSS_UD_11() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //TODO Test control - PICS - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_UD_11()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TC_SH_HSS_UD_11 - - /** - * @desc Verify that the IUT sends User Data AVP with RepositoryData element which contains a Service Indication and a Sequence Number but does not contain a ServiceData element in case if both the AS and the HSS support the Notif-Eff feature and repository data is not available to the HSS. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                        on receipt of a UD-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
-                 *              indicating IMS Public User Identity
-                 *          containing a Data-Reference AVP
-                 *              indicating RepositoryData (0)
-                 *          containing a Service-Indication AVP
-                        sends a UD-Answer
-                 *          containing a Session-ID AVP
-                 *          containing a Result-Code AVP
-                 *              indicating DIAMETER_SUCCESS
-                 *          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 User-Data AVP
-                 *              containing Sh-Data element
-                 *                  containing RepositoryData element
-                 *                      containing ServiceIndication element
-                 *                      containing SequenceNumber element
-                 *                      not containing ServiceData element.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_UD_12 - */ - testcase TC_SH_HSS_UD_12() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //TODO Test control - PICS - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_UD_12()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TC_SH_HSS_UD_12 - - /** - * @desc Verify that the IUT sends User Data AVP with empty PublicIdentifiers element in case if both the AS and the HSS support the Notif-Eff feature and public identifiers are not available to the HSS. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                        on receipt of a UD-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
-                 *              indicating IMS Public User Identity
-                 *          containing a Data-Reference AVP
-                 *              indicating IMSPublicIdentity (10)
-                        sends a UD-Answer
-                 *          containing a Session-ID AVP
-                 *          containing a Result-Code AVP
-                 *              indicating DIAMETER_SUCCESS
-                 *          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 User-Data AVP
-                 *              containing Sh-Data element
-                 *                  containing empty tPublicIdentity element.
-
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_UD_13 - */ - testcase TC_SH_HSS_UD_13() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //TODO Test control - PICS - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_UD_13()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TC_SH_HSS_UD_13 - - /** - * @desc Verify that the IUT sends User Data AVP with empty CSLocationInformation and/or empty PSLocationInformation element in case if both the AS and the HSS support the Notif-Eff feature and location information is not available to the HSS. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                        on receipt of a UD-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
-                 *              indicating IMS Public User Identity
-                 *          containing a Data-Reference AVP
-                 *              indicating LocationInformation (14)
-                        sends a UD-Answer
-                 *          containing a Session-ID AVP
-                 *          containing a Result-Code AVP
-                 *              indicating DIAMETER_SUCCESS
-                 *          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 User-Data AVP
-                 *              containing Sh-Data element
-                 *                  containing empty CSLocationInformation element and/or
-                 *                  containing empty PSLocationInformation element.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_UD_14 - */ - testcase TC_SH_HSS_UD_14() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //TODO Test control - PICS - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_UD_14()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TC_SH_HSS_UD_14 - - /** - * @desc Verify that the IUT sends User Data AVP with missing CSUserState element in case if both the AS and the HSS support the Notif-Eff feature and CS-UserState is not available to the HSS. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                        on receipt of a UD-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
-                 *              indicating IMS Public User Identity
-                 *          containing a Data-Reference AVP
-                 *              indicating UserState (15)
-                        sends a UD-Answer
-                 *          containing a Session-ID AVP
-                 *          containing a Result-Code AVP
-                 *              indicating DIAMETER_SUCCESS
-                 *          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 User-Data AVP
-                 *              containing Sh-Data element
-                 *                  not containing CSUserState element.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_UD_15 - */ - testcase TC_SH_HSS_UD_15() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //TODO Test control - PICS - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_UD_15()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TC_SH_HSS_UD_15 - - /** - * @desc Verify that the IUT sends User Data AVP with missing PSUserState element in case if both the AS and the HSS support the Notif-Eff feature and PS-UserState is not available to the HSS. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                        on receipt of a UD-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
-                 *              indicating IMS Public User Identity
-                 *          containing a Data-Reference AVP
-                 *              indicating UserState (15)
-                        sends a UD-Answer
-                 *          containing a Session-ID AVP
-                 *          containing a Result-Code AVP
-                 *              indicating DIAMETER_SUCCESS
-                 *          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 User-Data AVP
-                 *              containing Sh-Data element
-                 *                  not containing PSUserState element.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_UD_16 - */ - testcase TC_SH_HSS_UD_16() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //TODO Test control - PICS - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_UD_16()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TC_SH_HSS_UD_16 - - /** - * @desc Verify that the IUT sends User Data AVP with empty SCSCFName element in case if both the AS and the HSS support the Notif-Eff feature and S-CSCF name is not available to the HSS. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                        on receipt of a UD-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
-                 *              indicating IMS Public User Identity
-                 *          containing a Data-Reference AVP
-                 *              indicating S-CSCFName (12)
-                        sends a UD-Answer
-                 *          containing a Session-ID AVP
-                 *          containing a Result-Code AVP
-                 *              indicating DIAMETER_SUCCESS
-                 *          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 User-Data AVP
-                 *              containing Sh-IMS-Data element
-                 *                  containing empty SCSCFName element.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_UD_17 - */ - testcase TC_SH_HSS_UD_17() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //TODO Test control - PICS - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_UD_17()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TC_SH_HSS_UD_17 - - /** - * @desc Verify that the IUT sends User Data AVP with empty IPv4Address element or IPv6Prefix element in case if both the AS and the HSS support the Notif-Eff feature and IP address Security Binding Information is not available to the HSS. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                        on receipt of a UD-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
-                 *              indicating IMS Public User Identity
-                 *          containing a Data-Reference AVP
-                 *              indicating IPAddressSecureBindingInformation (22)
-                        sends a UD-Answer
-                 *          containing a Session-ID AVP
-                 *          containing a Result-Code AVP
-                 *              indicating DIAMETER_SUCCESS
-                 *          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 User-Data AVP
-                 *              containing Sh-IMS-Data element
-                 *                  containing Sh-IMS-DataExtension3
-                 *                      containing empty IPv4Address element or
-                 *                      containing empty IPv6Prefix element.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_UD_18 - */ - testcase TC_SH_HSS_UD_18() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //TODO Test control - PICS - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_UD_18()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TC_SH_HSS_UD_18 - - /** - * @desc Verify that the IUT sends User Data AVP with empty IFCs element in case if both the AS and the HSS support the Notif-Eff feature and iFCs for the user that are relevant for the AS is not available to the HSS. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                        on receipt of a UD-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
-                 *              indicating IMS Public User Identity
-                 *          containing a Data-Reference AVP
-                 *              indicating InitialFilterCriteria (13)
-                 *          containing a Server-Name AVP
-                 *              indicating SIP URL of the IUT
-                        sends a UD-Answer
-                 *          containing a Session-ID AVP
-                 *          containing a Result-Code AVP
-                 *              indicating DIAMETER_SUCCESS
-                 *          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 User-Data AVP
-                 *              containing Sh-IMS-Data element
-                 *                  containing empty IFCs element.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_UD_19 - */ - testcase TC_SH_HSS_UD_19() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //TODO Test control - PICS - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_UD_19()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TC_SH_HSS_UD_19 - - /** - * @desc Verify that the IUT sends User Data AVP with missing UE-SRVCC-Capability element in case if both the AS and the HSS support the Notif-Eff feature and UE-SRVCC-Capability is not available to the HSS. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                        on receipt of a UD-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
-                 *              indicating IMS Public User Identity
-                 *          containing a Data-Reference AVP
-                 *              indicating UE-SRVCC-Capability (28)
-                        sends a UD-Answer
-                 *          containing a Session-ID AVP
-                 *          containing a Result-Code AVP
-                 *              indicating DIAMETER_SUCCESS
-                 *          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 User-Data AVP
-                 *              containing Sh-IMS-Data element
-                 *                  containing Sh-IMS-DataExtension4
-                 *                      not containing UE-SRVCC-Capability element.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_UD_20 - */ - testcase TC_SH_HSS_UD_20() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //TODO Test control - PICS - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_UD_20()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TC_SH_HSS_UD_20 - - /** - * @desc Verify that the IUT sends User Data AVP with empty STN-SR element in case if both the AS and the HSS support the Notif-Eff feature and STN-SR is not available to the HSS. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                        on receipt of a UD-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
-                 *              indicating IMS Public User Identity
-                 *          containing a Data-Reference AVP
-                 *              indicating STN-SR (27)
-                        sends a UD-Answer
-                 *          containing a Session-ID AVP
-                 *          containing a Result-Code AVP
-                 *              indicating DIAMETER_SUCCESS
-                 *          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 User-Data AVP
-                 *              containing Sh-IMS-Data element
-                 *                  containing Sh-IMS-DataExtension4
-                 *                      containing empty STN-SR element.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_UD_21 - */ - testcase TC_SH_HSS_UD_21() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //TODO Test control - PICS - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_UD_21()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TC_SH_HSS_UD_21 - - /** - * @desc Verify that the IUT sends User Data AVP with empty CSRN element in case if both the AS and the HSS support the Notif-Eff feature and CSRN is not available to the HSS. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                        on receipt of a UD-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
-                 *              indicating IMS Public User Identity
-                 *          containing a Data-Reference AVP
-                 *              indicating CSRN (30)
-                        sends a UD-Answer
-                 *          containing a Session-ID AVP
-                 *          containing a Result-Code AVP
-                 *              indicating DIAMETER_SUCCESS
-                 *          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 User-Data AVP
-                 *              containing Sh-IMS-Data element
-                 *                  containing Sh-IMS-DataExtension4
-                 *                      containing empty CSRN element.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_UD_22 - */ - testcase TC_SH_HSS_UD_22() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //TODO Test control - PICS - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_UD_22()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TC_SH_HSS_UD_22 - - /** - * @desc Verify that the IUT sends User Data AVP with empty IMSI element in case if both the AS and the HSS support the Notif-Eff feature and IMSI is not available to the HSS. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                 *          on receipt of a UD-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
-                 *                  indicating IMS Public User Identity
-                 *              containing a Data-Reference AVP
-                 *                  indicating IMSI (32)
-                 *          sends a UD-Answer
-                 *              containing a Session-ID AVP
-                 *              containing a Result-Code AVP
-                 *                  indicating DIAMETER_SUCCESS
-                 *              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 User-Data AVP
-                 *                  containing Sh-Data element
-                 *                      containing Sh-Data-Extension5
-                 *                          containing empty IMSI element.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_UD_23 - */ - testcase TC_SH_HSS_UD_23() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //TODO Test control - PICS - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_UD_23()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TC_SH_HSS_UD_23 - - /** - * @desc Verify that the IUT returns UD-Answer with appropriate experimental result code in case of database error. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                 *          on receipt of a UD-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
-                 *          sends a UD-Answer
-                 *              containing a Session-ID AVP
-                 *              containing a Result-Code AVP
-                 *                  indicating DIAMETER_UNABLE_TO_COMPLY
-                 *              not containing an Experimental-Result AVP
-                 *              containing a Vendor-Specific-Application-Id AVP
-                 *              containing an Auth-Session-State AVP
-                 *              containing an Origin-Host AVP
-                 *              containing an Origin-Realm AVP.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_UD_24 - */ - testcase TC_SH_HSS_UD_24() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //TODO Test control - PICS - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_UD_24()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TC_SH_HSS_UD_24 - - } // End of group TP_HSSRole_UserData - - group TP_HSSRole_ProfileUpdate { - - /** - * @desc Verify that the IUT successfully process all mandatory AVPs in a PU-Request in case if requested data exists or there are valid empty data elements and return PU-Answer containing Result-Code AVP with DIAMETER_SUCCESS. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                           on receipt of 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
-                           sends a PU-Answer
-                 *             containing a Session-ID AVP
-                 *             containing a Result-Code AVP
-                 *                 indicating DIAMETER_SUCCESS
-                 *             containing a Vendor-Specific-Application-Id AVP
-                 *             containing an Auth-Session-State AVP
-                 *             containing an Origin-Host AVP
-                 *             containing an Origin-Realm AVP.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_PU_01 - */ - testcase TC_SH_HSS_PU_01() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //Test control - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_PU_01()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TP_SH_HSS_PU_01 - - /** - * @desc Verify that the IUT checks if the data is allowed to be modified and if not the IUT returns PU-Answer with appropriate experimental result code. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                 *          on receipt of 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
-                 *          sends a PU-Answer
-                 *              containing a Session-ID AVP
-                 *              containing an Experimental-Result AVP
-                 *                  indicating DIAMETER_ERROR_USER_DATA_CANNOT_BE_MODIFIED
-                 *              containing a Vendor-Specific-Application-Id AVP
-                 *              containing an Auth-Session-State AVP
-                 *              containing an Origin-Host AVP
-                 *              containing an Origin-Realm AVP.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_PU_02 - */ - testcase TC_SH_HSS_PU_02() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //Test control - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_PU_02()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TP_SH_HSS_PU_02 - - /** - * @desc Verify that the IUT checks if User Identity for whom data is asked does not exist the IUT returns PU-Answer with appropriate experimental result code. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                 *          on receipt of a PU-Request
-                 *              containing a User-Identity AVP
-                 *                  indicating not existing user
-                 *          sends a PU-Answer
-                 *              containing an Experimental-Result AVP
-                 *                  indicating DIAMETER_ERROR_USER_UNKNOWN.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_PU_03 - */ - testcase TC_SH_HSS_PU_03() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //Test control - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_PU_03()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TP_SH_HSS_PU_03 - - /** - * @desc Verify that the IUT checks if Private Identity corresponds to IMPU/MSISDN and if not the IUT returns PU-Answer with appropriate experimental result code. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                 *          on receipt of a PU-Request
-                 *              containing a User-Identity AVP
-                 *                  indicating not related Private Identity
-                 *              containing a User-Data AVP
-                 *          sends a PU-Answer
-                 *              containing an Experimental-Result AVP
-                 *                  indicating DIAMETER_ERROR_IDENTITIES_DONT_MATCH.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_PU_04 - */ - testcase TC_SH_HSS_PU_04() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //Test control - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_PU_04()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TP_SH_HSS_PU_04 - - /** - * @desc Verify that the IUT checks if type of User Identity does not apply according to the Table 7.6.1 due to the Data-Reference indicated in the request the IUT returns PU-Answer with appropriate experimental result code - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                 *          on receipt of a PU-Request
-                 *              containing a User-Identity AVP
-                 *                  indicating MSISDN
-                 *              containing a Data-Reference AVP
-                 *                  indicating RepositoryData (0)
-                 *              containing a User-Data AVP
-                 *          sends a PU-Answer
-                 *              containing an Experimental-Result AVP
-                 *                  indicating DIAMETER_ERROR_OPERATION_NOT_ALLOWED.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_PU_05 - */ - testcase TC_SH_HSS_PU_05() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //Test control - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_PU_05()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TP_SH_HSS_PU_05 - - /** - * @desc Verify that the IUT checks if Data-Reference is PSIActivation (18) and type of User Identity contains a distinct Public Service Identity the IUT returns PU-Answer with appropriate result code. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                 *          on receipt of a PU-Request
-                 *              containing a User-Identity AVP
-                 *                  indicating distinct Public Service Identity
-                 *              containing a Data-Reference AVP
-                 *                  indicating PSIActivation (18)
-                 *              containing a User-Data AVP
-                 *          sends a PU-Answer
-                 *              containing a Result-Code AVP
-                 *                  indicating DIAMETER_SUCCESS.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_PU_06 - */ - testcase TC_SH_HSS_PU_06() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //Test control - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_PU_06()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TP_SH_HSS_PU_06 - - /** - * @desc Verify that the IUT checks if Data-Reference is PSIActivation (18) and type of User Identity does not contain a distinct Public Service Identity the IUT returns PU-Answer with appropriate experimental result code. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                 *          on receipt of a PU-Request
-                 *              containing a User-Identity AVP
-                 *                  indicating MSISDN
-                 *              containing a Data-Reference AVP
-                 *                  indicating PSIActivation (18)
-                 *              containing a User-Data AVP
-                 *          sends a PU-Answer
-                 *              containing an Experimental-Result AVP
-                 *                  indicating DIAMETER_ERROR_OPERATION_NOT_ALLOWED.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_PU_07 - */ - testcase TC_SH_HSS_PU_07() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //Test control - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_PU_07()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TP_SH_HSS_PU_07 - - /** - * @desc Verify that the IUT checks if Data-Reference is DSAI (19) for the Public Identity and there is an instance of DSAI matching the DSAI-Tag contained in the Sh-Update command the IUT returns PU-Answer with appropriate result code. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                 *          on receipt of a PU-Request
-                 *              containing a User-Identity AVP
-                 *                  indicating Public Identity
-                 *              containing a Data-Reference AVP
-                 *                  indicating DSAI (19)
-                 *              containing a User-Data AVP
-                 *                  containing Sh-IMS-Data element
-                 *                      containing Sh-IMS-DataExtension2 element
-                 *                          containing DSAI element
-                 *          sends a PU-Answer
-                 *              containing a Result-Code AVP
-                 *                  indicating DIAMETER_SUCCESS.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_PU_08 - */ - testcase TC_SH_HSS_PU_08() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //Test control - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_PU_08()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TP_SH_HSS_PU_08 - - /** - * @desc Verify that the IUT checks if Data-Reference is DSAI (19) for the Public Identity and there is not an instance of DSAI matching the DSAI-Tag contained in the Sh-Update command the IUT returns PU-Answer with appropriate experimental result code. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                 *          on receipt of a PU-Request
-                 *              containing a User-Identity AVP
-                 *                  indicating Public Identity
-                 *              containing a Data-Reference AVP
-                 *                  indicating DSAI (19)
-                 *              containing a User-Data AVP
-                 *          sends a PU-Answer
-                 *              containing an Experimental-Result AVP
-                 *                  indicating DIAMETER_ERROR_DSAI_NOT_AVAILABLE.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_PU_09 - */ - testcase TC_SH_HSS_PU_09() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //Test control - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_PU_09()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TP_SH_HSS_PU_09 - - /** - * @desc Verify that the IUT checks if Data-Reference is SMSRegistrationInfo (24) for the IMS Public User Identity and IP-SM-GW number element contained in the Sh-Update command is empty the IUT returns PU-Answer with appropriate result code. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                 *          on receipt of a PU-Request
-                 *              containing a User-Identity AVP
-                 *                  indicating Public Identity
-                 *              containing a Data-Reference AVP
-                 *                  indicating SMSRegistrationInfo (24)
-                 *              containing a User-Data AVP
-                 *                  containing Sh-IMS-Data element
-                 *                      containing Sh-IMS-DataExtension3 element
-                 *                          containing empty IP-SM-GW element
-                 *          sends a PU-Answer
-                 *              containing a Session-ID AVP
-                 *              containing a Result-Code AVP
-                 *                  indicating DIAMETER_SUCCESS.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_PU_10 - */ - testcase TC_SH_HSS_PU_10() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //Test control - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_PU_10()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TP_SH_HSS_PU_10 - - /** - * @desc Verify that the IUT checks if Data-Reference is SMSRegistrationInfo (24) for the MSISDN and IP-SM-GW number element contained in the Sh-Update command is empty the IUT returns PU-Answer with appropriate result code. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                 *          on receipt of a PU-Request
-                 *              containing a User-Identity AVP
-                 *                  indicating MSISDN
-                 *              containing a Data-Reference AVP
-                 *                  indicating SMSRegistrationInfo (24)
-                 *              containing a User-Data AVP
-                 *                  containing Sh-IMS-Data element
-                 *                      containing Sh-IMS-DataExtension3 element
-                 *                          containing empty IP-SM-GW element
-                 *          sends a PU-Answer
-                 *              containing a Result-Code AVP
-                 *                  indicating DIAMETER_SUCCESS.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_PU_11 - */ - testcase TC_SH_HSS_PU_11() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //Test control - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_PU_11()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TP_SH_HSS_PU_11 - - /** - * @desc Verify that the IUT checks if Data-Reference is STN-SR (27) and if the STN-SR is different from the one previously stored or provisioned, the IUT overwrite the STN-SR and returns PU-Answer with appropriate result code. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                 *          on receipt of a PU-Request
-                 *              containing a User-Identity AVP
-                 *                  indicating Public Identity
-                 *              containing a Data-Reference AVP
-                 *                  indicating STN-SR (27)
-                 *              containing a User-Data AVP
-                 *                  containing Sh-IMS-Data element
-                 *                      containing Sh-IMS-DataExtension4 element
-                 *                          containing STN-SR element
-                 *          sends a PU-Answer
-                 *              containing a Result-Code AVP
-                 *                  indicating DIAMETER_SUCCESS.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_PU_12 - */ - testcase TC_SH_HSS_PU_12() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //Test control - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_PU_12()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TP_SH_HSS_PU_12 - - /** - * @desc Verify that the IUT checks if Data-Reference is STN-SR (27) and if in IUT is no stored STN-SR, the IUT returns PU-Answer with appropriate experimental result code. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                 *          on receipt of a PU-Request
-                 *              containing a User-Identity AVP
-                 *                  indicating Public Identity
-                 *              containing a Data-Reference AVP
-                 *                  indicating STN-SR (27)
-                 *              containing a User-Data AVP
-                 *                  containing Sh-IMS-Data element
-                 *                      containing Sh-IMS-DataExtension4 element
-                 *                          containing STN-SR element
-                 *          sends a PU-Answer
-                 *              containing an Experimental-Result AVP
-                 *                  indicating DIAMETER_ERROR_OPERATION_NOT_ALLOWED.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_PU_13 - */ - testcase TC_SH_HSS_PU_13() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //Test control - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_PU_13()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TP_SH_HSS_PU_13 - - /** - * @desc Verify that the IUT checks whether or not the data that is requested to be updated by the AS, as identified by the Service-Indication, is currently being updated by another entity. If there is an update of the data in progress the IUT returns PU-Answer with appropriate experimental result code. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                 *          on receipt of a PU-Request
-                 *              containing a Data-Reference AVP
-                 *                  indicating RepositoryData (0)
-                 *              containing an User-Data AVP
-                 *                  containing Sh-Data element
-                 *                      containing RepositoryData element
-                 *                          containing ServiceIndication element
-                 *                          containing SequenceNumber element
-                 *          sends a PU-Answer
-                 *              containing an Experimental-Result AVP
-                 *                  indicating DIAMETER_PRIOR_UPDATE_IN_PROGRESS.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_PU_14 - */ - testcase TC_SH_HSS_PU_14() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //Test control - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_PU_14()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TP_SH_HSS_PU_14 - - /** - * @desc Verify that the IUT checks if repository data identified by the Service-Indication is stored and Sequence_Number_in_Sh_Update is equal to 0 then the IUT returns PU-Answer with appropriate experimental result code. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                 *          on receipt of a PU-Request
-                 *              containing a User-Identity AVP
-                 *                  indicating IMS Public User Identity
-                 *              containing a Data-Reference AVP
-                 *                  indicating RepositoryData (0)
-                 *              containing an User-Data AVP
-                 *                  containing Sh-Data element
-                 *                      containing RepositoryData element
-                 *                          containing ServiceIndication element
-                 *                          containing SequenceNumber element
-                 *                              indicating 0
-                 *          sends a PU-Answer
-                 *              containing an Experimental-Result AVP
-                 *                  indicating DIAMETER_ERROR_TRANSPARENT_DATA_OUT_OF_SYNC.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_PU_15 - */ - testcase TC_SH_HSS_PU_15() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //Test control - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_PU_15()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TP_SH_HSS_PU_15 - - /** - * @desc Verify that the IUT checks if repository data identified by the Service-Indication is stored and Service Data element is greater than the HSS is prepared to accept then the IUT returns PU-Answer with appropriate experimental result code. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                 *          on receipt of a PU-Request
-                 *              containing a User-Identity AVP
-                 *                  indicating IMS Public User Identity
-                 *              containing a Data-Reference AVP
-                 *                  indicating RepositoryData (0)
-                 *              containing an User-Data AVP
-                 *                  containing Sh-Data element
-                 *                      containing RepositoryData element
-                 *                          containing ServiceIndication element
-                 *                          containing SequenceNumber element
-                 *                          containing ServiceData element
-                 *                              indicating grater value than expected
-                 *          sends a PU-Answer
-                 *              containing an Experimental-Result AVP
-                 *                  indicating DIAMETER_ERROR_TOO_MUCH_DATA.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_PU_16 - */ - testcase TC_SH_HSS_PU_16() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //Test control - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_PU_16()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TP_SH_HSS_PU_16 - - /** - * @desc Verify that the IUT checks if repository data identified by the Service-Indication is not stored and Sequence_Number_in_Sh_Update is not equal to 0 then the IUT returns PU-Answer with appropriate experimental result code. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                 *          on receipt of a PU-Request
-                 *              containing a User-Identity AVP
-                 *                  indicating IMS Public User Identity
-                 *              containing a Data-Reference AVP
-                 *                  indicating RepositoryData (0)
-                 *              containing an User-Data AVP
-                 *                  containing Sh-Data element
-                 *                      containing RepositoryData element
-                 *                          containing ServiceIndication element
-                 *                          containing SequenceNumber element
-                 *                              indicating not 0
-                 *          sends a PU-Answer
-                 *              containing an Experimental-Result AVP
-                 *                  indicating DIAMETER_ERROR_TRANSPARENT_DATA_OUT_OF_SYNC.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_PU_17 - */ - testcase TC_SH_HSS_PU_17() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //Test control - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_PU_17()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TP_SH_HSS_PU_17 - - /** - * @desc Verify that the IUT checks if repository data identified by the Service-Indication is not stored and Service Data element is not present then the IUT returns PU-Answer with appropriate experimental result code. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                 *          on receipt of a PU-Request
-                 *              containing a User-Identity AVP
-                 *                  indicating IMS Public User Identity
-                 *              containing a Data-Reference AVP
-                 *                  indicating RepositoryData (0)
-                 *              containing an User-Data AVP
-                 *                  containing Sh-Data element
-                 *                      containing RepositoryData element
-                 *                          containing ServiceIndication element
-                 *                          containing SequenceNumber element
-                 *                          containing ServiceData element
-                 *                              indicating empty value
-                 *          sends a PU-Answer
-                 *              containing an Experimental-Result AVP
-                 *                  indicating DIAMETER_ERROR_OPERATION_NOT_ALLOWED.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_PU_18 - */ - testcase TC_SH_HSS_PU_18() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //Test control - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_PU_18()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TP_SH_HSS_PU_18 - - /** - * @desc Verify that the IUT checks if repository data identified by the Service-Indication is not stored and Service Data element is greater than the HSS is prepared to accept then the IUT returns PU-Answer with appropriate experimental result code. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                 *          on receipt of a PU-Request
-                 *              containing a User-Identity AVP
-                 *                  indicating IMS Public User Identity
-                 *              containing a Data-Reference AVP
-                 *                  indicating RepositoryData (0)
-                 *              containing an User-Data AVP
-                 *                  containing Sh-Data element
-                 *                      containing RepositoryData element
-                 *                          containing ServiceIndication element
-                 *                          containing SequenceNumber element
-                 *                          containing ServiceData element
-                 *                              indicating grater value than expected
-                 *          sends a PU-Answer
-                 *              containing an Experimental-Result AVP
-                 *                  indicating DIAMETER_ERROR_TOO_MUCH_DATA.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_PU_19 - */ - testcase TC_SH_HSS_PU_19() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //Test control - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_PU_19()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TP_SH_HSS_PU_19 - - /** - * @desc Verify that the IUT returns PU-Answer with appropriate experimental result code in case of database error. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                 *          on receipt of 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
-                 *          sends a PU-Answer
-                 *              containing a Result-Code AVP
-                 *                  indicating DIAMETER_UNABLE_TO_COMPLY.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_PU_20 - */ - testcase TC_SH_HSS_PU_20() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //Test control - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_PU_20()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TP_SH_HSS_PU_20 - - /** - * @desc Verify that the IUT checks if there are several repository data identified and the Service-Indication is not stored and Service Data element is not present for one of them then the IUT returns PU-Answer with appropriate experimental result code and Repository_Data_ID AVP indicating the service indication and the sequence number of (one of) the repository data instance for which an error occurred. - *
-                * Pics Selection: PICS_HSS_IUT
-                * Initial conditions: 
-                *     with {
-                *        
-                *     }
-                * Expected behaviour:
-                *     Ensure that the IUT
-                 *          on receipt of a PU-Request
-                 *              containing a User-Identity AVP
-                 *                  indicating IMS Public User Identity
-                 *              containing a Data-Reference AVP
-                 *                  indicating RepositoryData (0)
-                 *              containing an User-Data AVP
-                 *                  containing Sh-Data element
-                 *                      containing RepositoryData element (0)
-                 *                          containing ServiceIndication element
-                 *                          containing SequenceNumber element
-                 *                          containing ServiceData element
-                 *                              indicating empty value
-                 *                      containing RepositoryData element (1)
-                 *                          containing ServiceIndication element
-                 *                          containing SequenceNumber element
-                 *                          containing ServiceData element
-                 *                              indicating empty value
-                 *          sends a PU-Answer
-                 *              containing an Experimental-Result AVP
-                 *                  indicating DIAMETER_ERROR_OPERATION_NOT_ALLOWED
-                 *              containing a Repository-Data-ID AVP
-                 *                  containing a Service-Indication AVP
-                 *                  containing a Sequence-Number AVP.
-                * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_PU_21 - */ - testcase TC_SH_HSS_PU_21() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //Test control - if (not PICS_HSS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_PU_21()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TP_SH_HSS_PU_21 - - } // End of group TP_HSSRole_ProfileUpdate - - - - group TP_HSSRole_SubscriptionNofification { //Sh Messages - - /** - * @desc Verify that the IUT processes an SN-Request and sends corresponding SN-Answer. - *
-                 * Pics Selection: PICS_HSS_IUT
-                 * Initial conditions: 
-                 *     with {
-                 *        
-                 *     }
-                 * Expected behaviour:
-                 *     Ensure that the IUT
-                        on receipt of an SN-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 Subs-Req-Type AVP
-                 *          containing a Data-Reference AVP
-                        sends an SN-Answer
-                 *          containing a Session-ID AVP
-                 *          containing a Result-Code AVP
-                 *              indicating DIAMETER_SUCCESS
-                 *          containing a Vendor-Specific-Application-Id AVP
-                 *          containing an Auth-Session-State AVP
-                 *          containing an Origin-Host AVP
-                 *          containing an Origin-Realm AVP.
-                 * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_SN_01 - */ - testcase TP_SH_HSS_SN_01() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - // Test control - if (not PICS_AS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_SN_01()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TP_SH_HSS_SN_01 - - } // End of group TP_HSSRole_SubscriptionNofification - - group TP_HSSRole_PushNofification { - - /** - * @desc Verify that the IUT sends a PN-Request to indicate a Notification procedure. - *
-                 * Pics Selection: PICS_HSS_IUT
-                 * Initial conditions: 
-                 *     with {
-                 *        
-                 *     }
-                 * Expected behaviour:
-                 *     Ensure that the IUT
-                 *          to indicate a Notification procedure
-                 *          sends a PN-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 User-Data AVP.
-                 * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_PN_01 - */ - testcase TP_SH_HSS_PN_01() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - // Test control - if (not PICS_AS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_PN_01()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TP_SH_HSS_PN_01 - - /** - * @desc Verify that the IUT when repository data have to be updated sends a PN-Request with information element User-Data containing the Service-Indication and Sequence Number. - *
-                 * Pics Selection: PICS_HSS_IUT
-                 * Initial conditions: 
-                 *     with {
-                 *        
-                 *     }
-                 * Expected behaviour:
-                 *     Ensure that the IUT
-                 *          on receipt of an SN-Request
-                 *              containing a Data-Reference AVP
-                 *                  indicating RepositoryData (0)
-                 *          sends a PN-Request
-                 *              containing an User-Data AVP
-                 *                  containing Sh-Data element
-                 *                      containing RepositoryData element
-                 *                          containing ServiceIndication element
-                 *                          containing SequenceNumber element.
-                 * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_HSS_PN_02 - */ - testcase TP_SH_HSS_PN_02() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - //TODO Test control - PICS - - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); - - // Start - v_diameterSh_as.start(f_TC_SH_HSS_PN_02()); - - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - - f_cf_1Sh_asDown(v_diameterSh_as); - - } // End of testcase TP_SH_HSS_PN_02 - - } // End of group TP_HSSRole_PushNofification - - } // End of group TP_HSSRole - group TP_AS_Role { // §5.2.2.2 - - group TP_ASRole_MessageSyntax { - - /** - * @desc Verify that the IUT sends the appropriate Result-Code AVP when mandatory User-Identity AVP is absent. - *
-                 * Pics Selection: PICS_AS_IUT
-                 * Initial conditions: 
-                 *     with {
-                 *        
-                 *     }
-                 * Expected behaviour:
-                 *     ensure that {
-                 *        when {
-                 *            the IUT receives a PN-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-Host AVP
-                 *                containing a Destination-Realm AVP
-                 *                not containing a User-Identity AVP
-                 *                containing a User-Data AVP
-                 *        }
-                 *        then {
-                 *            the IUT sends a PN-Answer 
-                 *                containing a Session-ID AVP
-                 *                containing a Result-Code AVP
-                 *                    indicating DIAMETER_MISSING_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 Failed AVP
-                 *                    indicating missing Information Element
-                 *        }
-                 *     }
-                 * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_AS_MS_01 - */ - testcase TC_SH_AS_MS_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_MS_01()); - if (PX_SIPsupport) { - v_imsComponent_scsf.start(f_TC_SH_AS_MS_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_MS_01 - - } // End of group TP_ASRole_MessageSyntax - - group TP_ASRole_UserData{ - - /** - * @desc Verify that the IUT sends a UD-Request read user data for a specified user. - *
-                 * Pics Selection: PICS_AS_IUT
-                 * Initial conditions: 
-                 *     with {
-                 *        
-                 *     }
-                 * Expected behaviour:
-                 *     ensure that {
-                 *        when {
-                 *            to indicate a user data handling procedure
-                 *        }
-                 *        then {
-                 *            the IUT sends a UD-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
-                 *        }
-                 *     }
-                 * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_AS_UD_01 - */ - testcase TC_SH_AS_UD_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_UD_01()); - if (PX_SIPsupport) { - v_imsComponent_scsf.start(f_TC_SH_AS_UD_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_UD_01 - - /** - * @desc Verify that the IUT to indicate repository data sends a UD-Request with Service-Indication AVP. - *
-                 * Pics Selection: PICS_AS_IUT
-                 * Initial conditions: 
-                 *     with {
-                 *        
-                 *     }
-                 * Expected behaviour:
-                 *     ensure that {
-                 *        when {
-                 *            to indicate repository data within user data handling procedure
-                 *        }
-                 *        then {
-                 *            the IUT sends a UD-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
-                 *                    indicating RepositoryData (0)
-                 *                containing a Service-Indication AVP
-                 *        }
-                 *     }
-                 * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_AS_UD_02 - */ - testcase TC_SH_AS_UD_02() 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_UD_02()); - if (PX_SIPsupport) { - v_imsComponent_scsf.start(f_TC_SH_AS_UD_02_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_UD_02 - - /** - * @desc Verify that the IUT to indicate initial filter criteria sends a UD-Request with Server-Name AVP with SIP URL. - *
-                 * Pics Selection: PICS_AS_IUT
-                 * Initial conditions: 
-                 *     with {
-                 *        
-                 *     }
-                 * Expected behaviour:
-                 *     ensure that {
-                 *        when {
-                 *            to indicate initial filter criteria within user data handling procedure
-                 *        }
-                 *        then {
-                 *            the IUT sends a UD-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
-                 *                    indicating RepositoryData (13)
-                 *                containing a Server-Name AVP
-                 *                    indicating SIP URL of the IUT
-                 *        }
-                 *     }
-                 * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_AS_UD_03 - */ - testcase TC_SH_AS_UD_03() 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_UD_03()); - if (PX_SIPsupport) { - v_imsComponent_scsf.start(f_TC_SH_AS_UD_03_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_UD_03 - - /** - * @desc Verify that the IUT to indicate DSAI sends a UD-Request with DSAI-Tag AVP. - *
-                 * Pics Selection: PICS_AS_IUT
-                 * Initial conditions: 
-                 *     with {
-                 *        
-                 *     }
-                 * Expected behaviour:
-                 *     ensure that {
-                 *        when {
-                 *            to indicate DSAI within user data handling procedure
-                 *        }
-                 *        then {
-                 *            the IUT sends a UD-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
-                 *                    indicating RepositoryData (19)
-                 *                containing a DSAI-Tag AVP
-                 *        }
-                 *     }
-                 * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_SH_AS_UD_04 - */ - testcase TC_SH_AS_UD_04() 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); - - // Start - v_diameterSh_hss.start(f_TC_SH_AS_UD_04()); - if (PX_SIPsupport) { - v_imsComponent_scsf.start(f_TC_SH_AS_UD_04_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_UD_04 - - } // End of group TP_ASRole_UserData - - group TP_ASRole_ProfileUpdate{ - - /** - * @desc Verify that the IUT sends a PU-Request to update transparent data. - *
-                 * 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
-                 *        }
-                 *     }
-                 * 
- * - * @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 - - group TP_ASRole_SubscriptionNotification{ - } // End of group TP_ASRole_SubscriptionNotification - - group TP_ASRole_PushNotification{ - } // End of group TP_ASRole_PushNotification - - } // End of group TP_AS_Role - - } // End of group TP_Sh - - group TP_Dh { //Dh Test cases - - group TP_SLF_Role { // §5.2.3.1 - - //group TP_SLFRole_MessageSyntax{ - //} // End of group TP_SLFRole_MessageSyntax - - group TP_SLFRole_UserData{ - - /** - * @desc Verify that the IUT processes a UD-Request and sends corresponding UD-Answer. - *
-                 * Pics Selection: PICS_SLF_IUT
-                 * Initial conditions: 
-                 *     with {
-                 *        
-                 *     }
-                 * Expected behaviour:
-                 *     ensure that {
-                 *        when {
-                 *            the IUT receives a UD-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
-                 *                not containing a User-Identity AVP
-                 *                containing a Data-Reference AVP
-                 *        }
-                 *        then {
-                 *            the IUT sends a UD-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).
-                 *        }
-                 *     }
-                 * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_DH_SLF_UD_01 - */ - testcase TC_DH_SLF_UD_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_UD_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_UD_01 - - } // End of group TP_SLFRole_UserData - - group TP_SLFRole_ProfileUpdate{ - - /** - * @desc Verify that the IUT processes a PU-Request and sends corresponding PU-Answer. - *
-                 * 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).
-                 *        }
-                 *     }
-                 * 
- * - * @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{ - } // End of group TP_SLFRole_SubscriptionNotification - - } // End of group TP_SLF_Role - - group TP_AS_Role { // §5.2.3.2 - - //group TP_ASRole_MessageSyntax{ - //} // End of group TP_ASRole_MessageSyntax - - group TP_ASRole_UserData{ - - /** - * @desc Verify that the IUT for user data handling procedure sends a UD-Request to the SLF and after reception of a UD-Answer forwards a UD-Request to the HSS. - *
-                 * Pics Selection: PICS_AS_IUT
-                 * Initial conditions: 
-                 *     with {
-                 *        
-                 *     }
-                 * Expected behaviour:
-                 *     ensure that {
-                 *        when {
-                 *            to indicate a user data handling procedure
-                 *        }
-                 *        then {
-                 *            the IUT sends a UD-Request to the SLF
-                 *            on receipt of a UD-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 UD-Request to the HSS
-                 *                containing a Destination-Host AVP
-                 *                containing a Destination-Realm AVP.
-                 *        }
-                 *     }
-                 * 
- * - * @version 0.0.6 - * @see ETSI TS 103 571-2 TP_DH_AS_UD_01 - */ - testcase TC_DH_AS_UD_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_UD_01()); - v_diameterSh_hss.start(f_TC_DH_AS_UD_01_HSS()); - if (PX_SIPsupport) { - v_imsComponent_scsf.start(f_TC_DH_AS_UD_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_UD_01 - - - } // End of group TP_ASRole_UserData - - group TP_ASRole_ProfileUpdate{ - - /** - * @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. - *
-                 * 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.
-                 *        }
-                 *     }
-                 * 
- * - * @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{ - } // End of group TP_ASRole_SubscriptionNotification - } // End of group TP_AS_OSARole - - } // End of group TP_Dh - +/** + * @author STF 480 + * @version $Id$ + * @desc This module provides test cases + * for SIP-CxDx-DIAMETER tests. + */ +module DiameterShDh_TestCases { + + //LibCommon + import from LibCommon_Sync all ; + import from LibCommon_VerdictControl all; + + //LibDiameter + import from LibDiameter_Interface all; + import from LibDiameter_TypesAndValues all; + + //LibSip + import from LibSip_Interface all; + import from LibSip_SIPTypesAndValues all; + + //LibIms + import from LibIms_SIPTypesAndValues all; + import from LibIms_Interface all; + + //AtsShDh + import from DiameterShDh_TestConfiguration all; + import from DiameterShDh_TestSystem all; + import from DiameterShDh_TCFunctions all; + import from DiameterShDh_SIP_TCFunctions all; + import from DiameterShDh_PICS all; + import from DiameterShDh_PIXITS all; + import from DiameterShDh_Steps all; + import from DiameterShDh_TestSystem all; + + group TP_Sh { //Sh Test cases + + group TP_HSS_Role { // §5.2.2.1 + + group TP_HSSRole_MessageSyntax { + + /** + * @desc Verify that the IUT sends the appropriate Result-Code AVP when mandatory User-Identity AVP is absent. + *
+                 * Pics Selection: PICS_HSS_IUT
+                 * Initial conditions: 
+                 *     with {
+                 *        
+                 *     }
+                 * Expected behaviour:
+                 *     ensure that {
+                 *        when {
+                 *            the IUT receives a UD-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
+                 *                not containing a User-Identity AVP
+                 *                containing a Data-Reference AVP
+                 *        }
+                 *        then {
+                 *            the IUT sends a UD-Answer 
+                 *                containing a Session-ID AVP
+                 *                containing a Result-Code AVP
+                 *                    indicating DIAMETER_MISSING_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 Failed AVP
+                 *                    indicating missing Information Element
+                 *        }
+                 *     }
+                 * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_MS_01 + */ + testcase TC_SH_HSS_MS_01() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + // Test control + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_MS_01()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TC_SH_HSS_MS_01 + + } // End of group TP_HSS_Role_MS + + + group TP_HSSRole_UserData { + + /** + * @desc Verify that the IUT successfully process all mandatory AVPs in a UD-Request in case if requested data exists or there are valid empty data elements and return UD-Answer containing Result-Code AVP with DIAMETER_SUCCESS. + *
+                 * Pics Selection: PICS_HSS_IUT
+                 * Initial conditions: 
+                 *     with {
+                 *        
+                 *     }
+                 * Expected behaviour:
+                 *     Ensure that the IUT
+                 *          on receipt of a UD-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
+                 *          sends a UD-Answer
+                 *              containing a Session-ID AVP
+                 *              containing a Result-Code AVP
+                 *                  indicating DIAMETER_SUCCESS
+                 *              containing a Vendor-Specific-Application-Id AVP
+                 *              containing an Auth-Session-State AVP
+                 *              containing an Origin-Host AVP
+                 *              containing an Origin-Realm AVP.
+                 * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_UD_01 + */ + testcase TC_SH_HSS_UD_01() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + // Test control - PICS + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_UD_01()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TC_SH_HSS_UD_01 + + /** + * @desc Verify that the IUT checks in AS permission list if the requested user data is allowed to be read and if one or more Data Reference in the request are not allowed the IUT returns UD-Answer with appropriate experimental result code. + *
+                 * Pics Selection: PICS_HSS_IUT
+                 * Initial conditions: 
+                 *     with {
+                 *        
+                 *     }
+                 * Expected behaviour:
+                 *     Ensure that the IUT
+                 *         on receipt of a UD-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
+                 *          sends a UD-Answer
+                 *              containing a Session-ID AVP
+                 *              containing an Experimental-Result AVP
+                 *                  indicating DIAMETER_ERROR_USER_DATA_CANNOT_BE_READ
+                 *              containing a Vendor-Specific-Application-Id AVP
+                 *              containing an Auth-Session-State AVP
+                 *              containing an Origin-Host AVP
+                 *              containing an Origin-Realm AVP.
+                 * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_UD_02 + */ + testcase TC_SH_HSS_UD_02() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + // Test control - PICS + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_UD_02()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TC_SH_HSS_UD_02 + + /** + * @desc Verify that the IUT checks if User Identity for whom data is asked does not exist the IUT returns UD-Answer with appropriate experimental result code. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                 *            on receipt of a UD-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
+                 *                  indicating not existing user
+                 *              containing a Data-Reference AVP
+                 *          sends a UD-Answer
+                 *              containing a Session-ID AVP
+                 *              containing an Experimental-Result AVP
+                 *                  indicating DIAMETER_ERROR_USER_UNKNOWN
+                 *              containing a Vendor-Specific-Application-Id AVP
+                 *              containing an Auth-Session-State AVP
+                 *              containing an Origin-Host AVP
+                 *              containing an Origin-Realm AVP.
+                 * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_UD_03 + */ + testcase TC_SH_HSS_UD_03() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + // Test control - PICS + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_UD_03()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TC_SH_HSS_UD_03 + + /** + * @desc Verify that the IUT checks if Private Identity corresponds to IMPU/MSISDN and if not the IUT returns UD-Answer with appropriate experimental result code. + *
+                 * Pics Selection: PICS_HSS_IUT
+                 * Initial conditions: 
+                 *     with {
+                 *        
+                 *     }
+                 * Expected behaviour:
+                 *     Ensure that the IUT
+                 *          on receipt of a UD-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
+                 *                  indicating not related Private Identity
+                 *              containing a Data-Reference AVP
+                 *          sends a UD-Answer
+                 *              containing a Session-ID AVP
+                 *              containing an Experimental-Result AVP
+                 *                  indicating DIAMETER_ERROR_IDENTITIES_DONT_MATCH
+                 *              containing a Vendor-Specific-Application-Id AVP
+                 *              containing an Auth-Session-State AVP
+                 *              containing an Origin-Host AVP
+                 *              containing an Origin-Realm AVP.
+                 * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_UD_04 + */ + testcase TC_SH_HSS_UD_04() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + // Test control - PICS + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_UD_04()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TC_SH_HSS_UD_04 + + /** + * @desc Verify that the IUT checks if type of User Identity does not apply according to the Table 7.6.1 due to the Data-Reference indicated in the request the IUT returns UD-Answer with appropriate experimental result code. + *
+                 * Pics Selection: PICS_HSS_IUT
+                 * Initial conditions: 
+                 *     with {
+                 *        
+                 *     }
+                 * Expected behaviour:
+                 *     Ensure that the IUT
+                 *          on receipt of a UD-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
+                 *                  indicating MSISDN
+                 *              containing a Data-Reference AVP
+                 *                  indicating RepositoryData (0)
+                 *              containing a Service-Indication AVP
+                 *          sends a UD-Answer
+                 *              containing a Session-ID AVP
+                 *              containing an Experimental-Result AVP
+                 *                  indicating DIAMETER_ERROR_OPERATION_NOT_ALLOWED
+                 *              containing a Vendor-Specific-Application-Id AVP
+                 *              containing an Auth-Session-State AVP
+                 *              containing an Origin-Host AVP
+                 *              containing an Origin-Realm AVP.
+                 * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_UD_05 + */ + testcase TC_SH_HSS_UD_05() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + // Test control - PICS + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_UD_05()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TC_SH_HSS_UD_05 + + /** + * @desc Verify that the IUT checks if data-reference is IPAddressSecureBindingInformation (22) and the User Identity is an IMS Public User Identity that is shared between multiple Private User Identities the IUT returns UD-Answer with appropriate experimental result code. + *
+                 * Pics Selection: PICS_HSS_IUT
+                 * Initial conditions: 
+                 *     with {
+                 *        
+                 *     }
+                 * Expected behaviour:
+                 *     Ensure that the IUT
+                 *      on receipt of a UD-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
+                 *              indicating IMS Public User Identity
+                 *          containing a Data-Reference AVP
+                 *              indicating IPAddressSecurityBindingInformation (22)
+                 *      sends a UD-Answer
+                 *          containing a Session-ID AVP
+                 *          containing an Experimental-Result AVP
+                 *              indicating DIAMETER_ERROR_OPERATION_NOT_ALLOWED
+                 *          containing a Vendor-Specific-Application-Id AVP
+                 *          containing an Auth-Session-State AVP
+                 *          containing an Origin-Host AVP
+                 *          containing an Origin-Realm AVP.
+
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_UD_06 + */ + testcase TC_SH_HSS_UD_06() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + // Test control - PICS + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_UD_06()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TC_SH_HSS_UD_06 + + /** + * @desc Verify that the IUT checks whether or not the data that is requested to be downloaded by the AS is currently being updated by another entity. If HSS is not able to delay the Sh-Pull-Resp message e.g. due to timeout the IUT returns UD-Answer with appropriate experimental result code. + *
+                 * Pics Selection: PICS_HSS_IUT
+                 * Initial conditions: 
+                 *     with {
+                 *        
+                 *     }
+                 * Expected behaviour:
+                 *     Ensure that the IUT
+                 *      on receipt of a UD-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
+                        sends a UD-Answer
+                 *          containing a Session-ID AVP
+                 *          containing an Experimental-Result AVP
+                 *              indicating DIAMETER_USER_DATA_NOT_AVAILABLE
+                 *          containing a Vendor-Specific-Application-Id AVP
+                 *          containing an Auth-Session-State AVP
+                 *          containing an Origin-Host AVP
+                 *          containing an Origin-Realm AVP.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_UD_07 + */ + testcase TC_SH_HSS_UD_07() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + // Test control - PICS + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_UD_07()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TC_SH_HSS_UD_07 + + /** + * @desc Verify that the IUT in case if T-ADS Information is requested provides the most recent IMS Voice over PS Sessions support indication. + *
+                 * Pics Selection: PICS_HSS_IUT
+                 * Initial conditions: 
+                 *     with {
+                 *        
+                 *     }
+                 * Expected behaviour:
+                 *     Ensure that the IUT
+                 *       on receipt of a UD-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
+                 *              indicating IMS Public User Identity
+                 *          containing a Data-Reference AVP
+                 *              indicating TADSinformation (26)
+                 *      sends a UD-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 User-Data AVP
+                 *              indicating TADS information.
+                 * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_UD_08 + */ + testcase TC_SH_HSS_UD_08() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //TODO Test control - PICS + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_UD_08()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TC_SH_HSS_UD_08 + + /** + * @desc Verify that the IUT includes the data pertinent to the requested Data Reference in the User-Data AVP due to the Table 3. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                        on receipt of a UD-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
+                 *              indicating IMS Public User Identity
+                 *          containing a Data-Reference AVP
+                 *              indicating variant value from Table 3
+                        sends a UD-Answer
+                 *          containing a Session-ID AVP
+                 *          containing a Result-Code AVP
+                 *              indicating DIAMETER_SUCCESS
+                 *          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 User-Data AVP
+                 *              containing variant value from Table 3
+                 *          may containing a Supported-Features AVP
+                 *              containing Vendor-Id AVP
+                 *              containing Feature-List-ID AVP
+                 *              containing Feature-List AVP
+                 *                  indicating Notif-Eff bit set to 1.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_UD_09 + */ + testcase TC_SH_HSS_UD_09() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //TODO Test control - PICS + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_UD_09()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TC_SH_HSS_UD_09 + + /** + * @desc Verify that the IUT does not include the User-Data AVP within UD-Answer if both AS and the IUT have determined via mutual feature evaluation to not support the Notif-Eff feature and in the case that requested data is not available to the HSS. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                        on receipt of a UD-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
+                 *              indicating IMS Public User Identity
+                 *          containing a Data-Reference AVP
+                 *              indicating variant value from Table 3
+                        sends a UD-Answer
+                 *          containing a Session-ID AVP
+                 *          containing a Result-Code AVP
+                 *              indicating DIAMETER_SUCCESS
+                 *          containing a Vendor-Specific-Application-Id AVP
+                 *          containing an Auth-Session-State AVP
+                 *          containing an Origin-Host AVP
+                 *          containing an Origin-Realm AVP
+                 *          not containing an User-Data AVP.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_UD_10 + */ + testcase TC_SH_HSS_UD_10() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //TODO Test control - PICS + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_UD_10()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TC_SH_HSS_UD_10 + + /** + * @desc Verify that the IUT does not include the User-Data AVP within UD-Answer if both the AS and the HSS support the Notif-Eff feature and none of the requested data is available to the IUT. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                        on receipt of a UD-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
+                 *              indicating IMS Public User Identity
+                 *          containing a Data-Reference AVP
+                 *              indicating variant value from Table 3
+                        sends a UD-Answer
+                 *          containing a Session-ID AVP
+                 *          containing a Result-Code AVP
+                 *              indicating DIAMETER_SUCCESS
+                 *          containing a Vendor-Specific-Application-Id AVP
+                 *          containing an Auth-Session-State AVP
+                 *          containing an Origin-Host AVP
+                 *          containing an Origin-Realm AVP
+                 *          not containing an User-Data AVP.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_UD_11 + */ + testcase TC_SH_HSS_UD_11() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //TODO Test control - PICS + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_UD_11()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TC_SH_HSS_UD_11 + + /** + * @desc Verify that the IUT sends User Data AVP with RepositoryData element which contains a Service Indication and a Sequence Number but does not contain a ServiceData element in case if both the AS and the HSS support the Notif-Eff feature and repository data is not available to the HSS. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                        on receipt of a UD-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
+                 *              indicating IMS Public User Identity
+                 *          containing a Data-Reference AVP
+                 *              indicating RepositoryData (0)
+                 *          containing a Service-Indication AVP
+                        sends a UD-Answer
+                 *          containing a Session-ID AVP
+                 *          containing a Result-Code AVP
+                 *              indicating DIAMETER_SUCCESS
+                 *          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 User-Data AVP
+                 *              containing Sh-Data element
+                 *                  containing RepositoryData element
+                 *                      containing ServiceIndication element
+                 *                      containing SequenceNumber element
+                 *                      not containing ServiceData element.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_UD_12 + */ + testcase TC_SH_HSS_UD_12() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //TODO Test control - PICS + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_UD_12()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TC_SH_HSS_UD_12 + + /** + * @desc Verify that the IUT sends User Data AVP with empty PublicIdentifiers element in case if both the AS and the HSS support the Notif-Eff feature and public identifiers are not available to the HSS. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                        on receipt of a UD-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
+                 *              indicating IMS Public User Identity
+                 *          containing a Data-Reference AVP
+                 *              indicating IMSPublicIdentity (10)
+                        sends a UD-Answer
+                 *          containing a Session-ID AVP
+                 *          containing a Result-Code AVP
+                 *              indicating DIAMETER_SUCCESS
+                 *          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 User-Data AVP
+                 *              containing Sh-Data element
+                 *                  containing empty tPublicIdentity element.
+
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_UD_13 + */ + testcase TC_SH_HSS_UD_13() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //TODO Test control - PICS + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_UD_13()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TC_SH_HSS_UD_13 + + /** + * @desc Verify that the IUT sends User Data AVP with empty CSLocationInformation and/or empty PSLocationInformation element in case if both the AS and the HSS support the Notif-Eff feature and location information is not available to the HSS. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                        on receipt of a UD-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
+                 *              indicating IMS Public User Identity
+                 *          containing a Data-Reference AVP
+                 *              indicating LocationInformation (14)
+                        sends a UD-Answer
+                 *          containing a Session-ID AVP
+                 *          containing a Result-Code AVP
+                 *              indicating DIAMETER_SUCCESS
+                 *          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 User-Data AVP
+                 *              containing Sh-Data element
+                 *                  containing empty CSLocationInformation element and/or
+                 *                  containing empty PSLocationInformation element.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_UD_14 + */ + testcase TC_SH_HSS_UD_14() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //TODO Test control - PICS + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_UD_14()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TC_SH_HSS_UD_14 + + /** + * @desc Verify that the IUT sends User Data AVP with missing CSUserState element in case if both the AS and the HSS support the Notif-Eff feature and CS-UserState is not available to the HSS. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                        on receipt of a UD-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
+                 *              indicating IMS Public User Identity
+                 *          containing a Data-Reference AVP
+                 *              indicating UserState (15)
+                        sends a UD-Answer
+                 *          containing a Session-ID AVP
+                 *          containing a Result-Code AVP
+                 *              indicating DIAMETER_SUCCESS
+                 *          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 User-Data AVP
+                 *              containing Sh-Data element
+                 *                  not containing CSUserState element.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_UD_15 + */ + testcase TC_SH_HSS_UD_15() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //TODO Test control - PICS + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_UD_15()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TC_SH_HSS_UD_15 + + /** + * @desc Verify that the IUT sends User Data AVP with missing PSUserState element in case if both the AS and the HSS support the Notif-Eff feature and PS-UserState is not available to the HSS. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                        on receipt of a UD-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
+                 *              indicating IMS Public User Identity
+                 *          containing a Data-Reference AVP
+                 *              indicating UserState (15)
+                        sends a UD-Answer
+                 *          containing a Session-ID AVP
+                 *          containing a Result-Code AVP
+                 *              indicating DIAMETER_SUCCESS
+                 *          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 User-Data AVP
+                 *              containing Sh-Data element
+                 *                  not containing PSUserState element.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_UD_16 + */ + testcase TC_SH_HSS_UD_16() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //TODO Test control - PICS + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_UD_16()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TC_SH_HSS_UD_16 + + /** + * @desc Verify that the IUT sends User Data AVP with empty SCSCFName element in case if both the AS and the HSS support the Notif-Eff feature and S-CSCF name is not available to the HSS. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                        on receipt of a UD-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
+                 *              indicating IMS Public User Identity
+                 *          containing a Data-Reference AVP
+                 *              indicating S-CSCFName (12)
+                        sends a UD-Answer
+                 *          containing a Session-ID AVP
+                 *          containing a Result-Code AVP
+                 *              indicating DIAMETER_SUCCESS
+                 *          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 User-Data AVP
+                 *              containing Sh-IMS-Data element
+                 *                  containing empty SCSCFName element.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_UD_17 + */ + testcase TC_SH_HSS_UD_17() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //TODO Test control - PICS + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_UD_17()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TC_SH_HSS_UD_17 + + /** + * @desc Verify that the IUT sends User Data AVP with empty IPv4Address element or IPv6Prefix element in case if both the AS and the HSS support the Notif-Eff feature and IP address Security Binding Information is not available to the HSS. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                        on receipt of a UD-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
+                 *              indicating IMS Public User Identity
+                 *          containing a Data-Reference AVP
+                 *              indicating IPAddressSecureBindingInformation (22)
+                        sends a UD-Answer
+                 *          containing a Session-ID AVP
+                 *          containing a Result-Code AVP
+                 *              indicating DIAMETER_SUCCESS
+                 *          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 User-Data AVP
+                 *              containing Sh-IMS-Data element
+                 *                  containing Sh-IMS-DataExtension3
+                 *                      containing empty IPv4Address element or
+                 *                      containing empty IPv6Prefix element.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_UD_18 + */ + testcase TC_SH_HSS_UD_18() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //TODO Test control - PICS + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_UD_18()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TC_SH_HSS_UD_18 + + /** + * @desc Verify that the IUT sends User Data AVP with empty IFCs element in case if both the AS and the HSS support the Notif-Eff feature and iFCs for the user that are relevant for the AS is not available to the HSS. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                        on receipt of a UD-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
+                 *              indicating IMS Public User Identity
+                 *          containing a Data-Reference AVP
+                 *              indicating InitialFilterCriteria (13)
+                 *          containing a Server-Name AVP
+                 *              indicating SIP URL of the IUT
+                        sends a UD-Answer
+                 *          containing a Session-ID AVP
+                 *          containing a Result-Code AVP
+                 *              indicating DIAMETER_SUCCESS
+                 *          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 User-Data AVP
+                 *              containing Sh-IMS-Data element
+                 *                  containing empty IFCs element.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_UD_19 + */ + testcase TC_SH_HSS_UD_19() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //TODO Test control - PICS + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_UD_19()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TC_SH_HSS_UD_19 + + /** + * @desc Verify that the IUT sends User Data AVP with missing UE-SRVCC-Capability element in case if both the AS and the HSS support the Notif-Eff feature and UE-SRVCC-Capability is not available to the HSS. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                        on receipt of a UD-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
+                 *              indicating IMS Public User Identity
+                 *          containing a Data-Reference AVP
+                 *              indicating UE-SRVCC-Capability (28)
+                        sends a UD-Answer
+                 *          containing a Session-ID AVP
+                 *          containing a Result-Code AVP
+                 *              indicating DIAMETER_SUCCESS
+                 *          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 User-Data AVP
+                 *              containing Sh-IMS-Data element
+                 *                  containing Sh-IMS-DataExtension4
+                 *                      not containing UE-SRVCC-Capability element.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_UD_20 + */ + testcase TC_SH_HSS_UD_20() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //TODO Test control - PICS + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_UD_20()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TC_SH_HSS_UD_20 + + /** + * @desc Verify that the IUT sends User Data AVP with empty STN-SR element in case if both the AS and the HSS support the Notif-Eff feature and STN-SR is not available to the HSS. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                        on receipt of a UD-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
+                 *              indicating IMS Public User Identity
+                 *          containing a Data-Reference AVP
+                 *              indicating STN-SR (27)
+                        sends a UD-Answer
+                 *          containing a Session-ID AVP
+                 *          containing a Result-Code AVP
+                 *              indicating DIAMETER_SUCCESS
+                 *          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 User-Data AVP
+                 *              containing Sh-IMS-Data element
+                 *                  containing Sh-IMS-DataExtension4
+                 *                      containing empty STN-SR element.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_UD_21 + */ + testcase TC_SH_HSS_UD_21() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //TODO Test control - PICS + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_UD_21()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TC_SH_HSS_UD_21 + + /** + * @desc Verify that the IUT sends User Data AVP with empty CSRN element in case if both the AS and the HSS support the Notif-Eff feature and CSRN is not available to the HSS. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                        on receipt of a UD-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
+                 *              indicating IMS Public User Identity
+                 *          containing a Data-Reference AVP
+                 *              indicating CSRN (30)
+                        sends a UD-Answer
+                 *          containing a Session-ID AVP
+                 *          containing a Result-Code AVP
+                 *              indicating DIAMETER_SUCCESS
+                 *          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 User-Data AVP
+                 *              containing Sh-IMS-Data element
+                 *                  containing Sh-IMS-DataExtension4
+                 *                      containing empty CSRN element.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_UD_22 + */ + testcase TC_SH_HSS_UD_22() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //TODO Test control - PICS + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_UD_22()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TC_SH_HSS_UD_22 + + /** + * @desc Verify that the IUT sends User Data AVP with empty IMSI element in case if both the AS and the HSS support the Notif-Eff feature and IMSI is not available to the HSS. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                 *          on receipt of a UD-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
+                 *                  indicating IMS Public User Identity
+                 *              containing a Data-Reference AVP
+                 *                  indicating IMSI (32)
+                 *          sends a UD-Answer
+                 *              containing a Session-ID AVP
+                 *              containing a Result-Code AVP
+                 *                  indicating DIAMETER_SUCCESS
+                 *              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 User-Data AVP
+                 *                  containing Sh-Data element
+                 *                      containing Sh-Data-Extension5
+                 *                          containing empty IMSI element.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_UD_23 + */ + testcase TC_SH_HSS_UD_23() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //TODO Test control - PICS + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_UD_23()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TC_SH_HSS_UD_23 + + /** + * @desc Verify that the IUT returns UD-Answer with appropriate experimental result code in case of database error. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                 *          on receipt of a UD-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
+                 *          sends a UD-Answer
+                 *              containing a Session-ID AVP
+                 *              containing a Result-Code AVP
+                 *                  indicating DIAMETER_UNABLE_TO_COMPLY
+                 *              not containing an Experimental-Result AVP
+                 *              containing a Vendor-Specific-Application-Id AVP
+                 *              containing an Auth-Session-State AVP
+                 *              containing an Origin-Host AVP
+                 *              containing an Origin-Realm AVP.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_UD_24 + */ + testcase TC_SH_HSS_UD_24() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //TODO Test control - PICS + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_UD_24()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TC_SH_HSS_UD_24 + + } // End of group TP_HSSRole_UserData + + group TP_HSSRole_ProfileUpdate { + + /** + * @desc Verify that the IUT successfully process all mandatory AVPs in a PU-Request in case if requested data exists or there are valid empty data elements and return PU-Answer containing Result-Code AVP with DIAMETER_SUCCESS. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                           on receipt of 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
+                           sends a PU-Answer
+                 *             containing a Session-ID AVP
+                 *             containing a Result-Code AVP
+                 *                 indicating DIAMETER_SUCCESS
+                 *             containing a Vendor-Specific-Application-Id AVP
+                 *             containing an Auth-Session-State AVP
+                 *             containing an Origin-Host AVP
+                 *             containing an Origin-Realm AVP.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_PU_01 + */ + testcase TC_SH_HSS_PU_01() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //Test control + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_PU_01()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_PU_01 + + /** + * @desc Verify that the IUT checks if the data is allowed to be modified and if not the IUT returns PU-Answer with appropriate experimental result code. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                 *          on receipt of 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
+                 *          sends a PU-Answer
+                 *              containing a Session-ID AVP
+                 *              containing an Experimental-Result AVP
+                 *                  indicating DIAMETER_ERROR_USER_DATA_CANNOT_BE_MODIFIED
+                 *              containing a Vendor-Specific-Application-Id AVP
+                 *              containing an Auth-Session-State AVP
+                 *              containing an Origin-Host AVP
+                 *              containing an Origin-Realm AVP.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_PU_02 + */ + testcase TC_SH_HSS_PU_02() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //Test control + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_PU_02()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_PU_02 + + /** + * @desc Verify that the IUT checks if User Identity for whom data is asked does not exist the IUT returns PU-Answer with appropriate experimental result code. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                 *          on receipt of a PU-Request
+                 *              containing a User-Identity AVP
+                 *                  indicating not existing user
+                 *          sends a PU-Answer
+                 *              containing an Experimental-Result AVP
+                 *                  indicating DIAMETER_ERROR_USER_UNKNOWN.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_PU_03 + */ + testcase TC_SH_HSS_PU_03() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //Test control + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_PU_03()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_PU_03 + + /** + * @desc Verify that the IUT checks if Private Identity corresponds to IMPU/MSISDN and if not the IUT returns PU-Answer with appropriate experimental result code. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                 *          on receipt of a PU-Request
+                 *              containing a User-Identity AVP
+                 *                  indicating not related Private Identity
+                 *              containing a User-Data AVP
+                 *          sends a PU-Answer
+                 *              containing an Experimental-Result AVP
+                 *                  indicating DIAMETER_ERROR_IDENTITIES_DONT_MATCH.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_PU_04 + */ + testcase TC_SH_HSS_PU_04() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //Test control + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_PU_04()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_PU_04 + + /** + * @desc Verify that the IUT checks if type of User Identity does not apply according to the Table 7.6.1 due to the Data-Reference indicated in the request the IUT returns PU-Answer with appropriate experimental result code + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                 *          on receipt of a PU-Request
+                 *              containing a User-Identity AVP
+                 *                  indicating MSISDN
+                 *              containing a Data-Reference AVP
+                 *                  indicating RepositoryData (0)
+                 *              containing a User-Data AVP
+                 *          sends a PU-Answer
+                 *              containing an Experimental-Result AVP
+                 *                  indicating DIAMETER_ERROR_OPERATION_NOT_ALLOWED.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_PU_05 + */ + testcase TC_SH_HSS_PU_05() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //Test control + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_PU_05()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_PU_05 + + /** + * @desc Verify that the IUT checks if Data-Reference is PSIActivation (18) and type of User Identity contains a distinct Public Service Identity the IUT returns PU-Answer with appropriate result code. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                 *          on receipt of a PU-Request
+                 *              containing a User-Identity AVP
+                 *                  indicating distinct Public Service Identity
+                 *              containing a Data-Reference AVP
+                 *                  indicating PSIActivation (18)
+                 *              containing a User-Data AVP
+                 *          sends a PU-Answer
+                 *              containing a Result-Code AVP
+                 *                  indicating DIAMETER_SUCCESS.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_PU_06 + */ + testcase TC_SH_HSS_PU_06() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //Test control + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_PU_06()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_PU_06 + + /** + * @desc Verify that the IUT checks if Data-Reference is PSIActivation (18) and type of User Identity does not contain a distinct Public Service Identity the IUT returns PU-Answer with appropriate experimental result code. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                 *          on receipt of a PU-Request
+                 *              containing a User-Identity AVP
+                 *                  indicating MSISDN
+                 *              containing a Data-Reference AVP
+                 *                  indicating PSIActivation (18)
+                 *              containing a User-Data AVP
+                 *          sends a PU-Answer
+                 *              containing an Experimental-Result AVP
+                 *                  indicating DIAMETER_ERROR_OPERATION_NOT_ALLOWED.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_PU_07 + */ + testcase TC_SH_HSS_PU_07() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //Test control + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_PU_07()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_PU_07 + + /** + * @desc Verify that the IUT checks if Data-Reference is DSAI (19) for the Public Identity and there is an instance of DSAI matching the DSAI-Tag contained in the Sh-Update command the IUT returns PU-Answer with appropriate result code. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                 *          on receipt of a PU-Request
+                 *              containing a User-Identity AVP
+                 *                  indicating Public Identity
+                 *              containing a Data-Reference AVP
+                 *                  indicating DSAI (19)
+                 *              containing a User-Data AVP
+                 *                  containing Sh-IMS-Data element
+                 *                      containing Sh-IMS-DataExtension2 element
+                 *                          containing DSAI element
+                 *          sends a PU-Answer
+                 *              containing a Result-Code AVP
+                 *                  indicating DIAMETER_SUCCESS.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_PU_08 + */ + testcase TC_SH_HSS_PU_08() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //Test control + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_PU_08()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_PU_08 + + /** + * @desc Verify that the IUT checks if Data-Reference is DSAI (19) for the Public Identity and there is not an instance of DSAI matching the DSAI-Tag contained in the Sh-Update command the IUT returns PU-Answer with appropriate experimental result code. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                 *          on receipt of a PU-Request
+                 *              containing a User-Identity AVP
+                 *                  indicating Public Identity
+                 *              containing a Data-Reference AVP
+                 *                  indicating DSAI (19)
+                 *              containing a User-Data AVP
+                 *          sends a PU-Answer
+                 *              containing an Experimental-Result AVP
+                 *                  indicating DIAMETER_ERROR_DSAI_NOT_AVAILABLE.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_PU_09 + */ + testcase TC_SH_HSS_PU_09() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //Test control + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_PU_09()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_PU_09 + + /** + * @desc Verify that the IUT checks if Data-Reference is SMSRegistrationInfo (24) for the IMS Public User Identity and IP-SM-GW number element contained in the Sh-Update command is empty the IUT returns PU-Answer with appropriate result code. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                 *          on receipt of a PU-Request
+                 *              containing a User-Identity AVP
+                 *                  indicating Public Identity
+                 *              containing a Data-Reference AVP
+                 *                  indicating SMSRegistrationInfo (24)
+                 *              containing a User-Data AVP
+                 *                  containing Sh-IMS-Data element
+                 *                      containing Sh-IMS-DataExtension3 element
+                 *                          containing empty IP-SM-GW element
+                 *          sends a PU-Answer
+                 *              containing a Session-ID AVP
+                 *              containing a Result-Code AVP
+                 *                  indicating DIAMETER_SUCCESS.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_PU_10 + */ + testcase TC_SH_HSS_PU_10() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //Test control + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_PU_10()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_PU_10 + + /** + * @desc Verify that the IUT checks if Data-Reference is SMSRegistrationInfo (24) for the MSISDN and IP-SM-GW number element contained in the Sh-Update command is empty the IUT returns PU-Answer with appropriate result code. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                 *          on receipt of a PU-Request
+                 *              containing a User-Identity AVP
+                 *                  indicating MSISDN
+                 *              containing a Data-Reference AVP
+                 *                  indicating SMSRegistrationInfo (24)
+                 *              containing a User-Data AVP
+                 *                  containing Sh-IMS-Data element
+                 *                      containing Sh-IMS-DataExtension3 element
+                 *                          containing empty IP-SM-GW element
+                 *          sends a PU-Answer
+                 *              containing a Result-Code AVP
+                 *                  indicating DIAMETER_SUCCESS.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_PU_11 + */ + testcase TC_SH_HSS_PU_11() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //Test control + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_PU_11()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_PU_11 + + /** + * @desc Verify that the IUT checks if Data-Reference is STN-SR (27) and if the STN-SR is different from the one previously stored or provisioned, the IUT overwrite the STN-SR and returns PU-Answer with appropriate result code. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                 *          on receipt of a PU-Request
+                 *              containing a User-Identity AVP
+                 *                  indicating Public Identity
+                 *              containing a Data-Reference AVP
+                 *                  indicating STN-SR (27)
+                 *              containing a User-Data AVP
+                 *                  containing Sh-IMS-Data element
+                 *                      containing Sh-IMS-DataExtension4 element
+                 *                          containing STN-SR element
+                 *          sends a PU-Answer
+                 *              containing a Result-Code AVP
+                 *                  indicating DIAMETER_SUCCESS.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_PU_12 + */ + testcase TC_SH_HSS_PU_12() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //Test control + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_PU_12()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_PU_12 + + /** + * @desc Verify that the IUT checks if Data-Reference is STN-SR (27) and if in IUT is no stored STN-SR, the IUT returns PU-Answer with appropriate experimental result code. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                 *          on receipt of a PU-Request
+                 *              containing a User-Identity AVP
+                 *                  indicating Public Identity
+                 *              containing a Data-Reference AVP
+                 *                  indicating STN-SR (27)
+                 *              containing a User-Data AVP
+                 *                  containing Sh-IMS-Data element
+                 *                      containing Sh-IMS-DataExtension4 element
+                 *                          containing STN-SR element
+                 *          sends a PU-Answer
+                 *              containing an Experimental-Result AVP
+                 *                  indicating DIAMETER_ERROR_OPERATION_NOT_ALLOWED.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_PU_13 + */ + testcase TC_SH_HSS_PU_13() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //Test control + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_PU_13()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_PU_13 + + /** + * @desc Verify that the IUT checks whether or not the data that is requested to be updated by the AS, as identified by the Service-Indication, is currently being updated by another entity. If there is an update of the data in progress the IUT returns PU-Answer with appropriate experimental result code. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                 *          on receipt of a PU-Request
+                 *              containing a Data-Reference AVP
+                 *                  indicating RepositoryData (0)
+                 *              containing an User-Data AVP
+                 *                  containing Sh-Data element
+                 *                      containing RepositoryData element
+                 *                          containing ServiceIndication element
+                 *                          containing SequenceNumber element
+                 *          sends a PU-Answer
+                 *              containing an Experimental-Result AVP
+                 *                  indicating DIAMETER_PRIOR_UPDATE_IN_PROGRESS.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_PU_14 + */ + testcase TC_SH_HSS_PU_14() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //Test control + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_PU_14()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_PU_14 + + /** + * @desc Verify that the IUT checks if repository data identified by the Service-Indication is stored and Sequence_Number_in_Sh_Update is equal to 0 then the IUT returns PU-Answer with appropriate experimental result code. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                 *          on receipt of a PU-Request
+                 *              containing a User-Identity AVP
+                 *                  indicating IMS Public User Identity
+                 *              containing a Data-Reference AVP
+                 *                  indicating RepositoryData (0)
+                 *              containing an User-Data AVP
+                 *                  containing Sh-Data element
+                 *                      containing RepositoryData element
+                 *                          containing ServiceIndication element
+                 *                          containing SequenceNumber element
+                 *                              indicating 0
+                 *          sends a PU-Answer
+                 *              containing an Experimental-Result AVP
+                 *                  indicating DIAMETER_ERROR_TRANSPARENT_DATA_OUT_OF_SYNC.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_PU_15 + */ + testcase TC_SH_HSS_PU_15() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //Test control + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_PU_15()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_PU_15 + + /** + * @desc Verify that the IUT checks if repository data identified by the Service-Indication is stored and Service Data element is greater than the HSS is prepared to accept then the IUT returns PU-Answer with appropriate experimental result code. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                 *          on receipt of a PU-Request
+                 *              containing a User-Identity AVP
+                 *                  indicating IMS Public User Identity
+                 *              containing a Data-Reference AVP
+                 *                  indicating RepositoryData (0)
+                 *              containing an User-Data AVP
+                 *                  containing Sh-Data element
+                 *                      containing RepositoryData element
+                 *                          containing ServiceIndication element
+                 *                          containing SequenceNumber element
+                 *                          containing ServiceData element
+                 *                              indicating grater value than expected
+                 *          sends a PU-Answer
+                 *              containing an Experimental-Result AVP
+                 *                  indicating DIAMETER_ERROR_TOO_MUCH_DATA.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_PU_16 + */ + testcase TC_SH_HSS_PU_16() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //Test control + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_PU_16()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_PU_16 + + /** + * @desc Verify that the IUT checks if repository data identified by the Service-Indication is not stored and Sequence_Number_in_Sh_Update is not equal to 0 then the IUT returns PU-Answer with appropriate experimental result code. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                 *          on receipt of a PU-Request
+                 *              containing a User-Identity AVP
+                 *                  indicating IMS Public User Identity
+                 *              containing a Data-Reference AVP
+                 *                  indicating RepositoryData (0)
+                 *              containing an User-Data AVP
+                 *                  containing Sh-Data element
+                 *                      containing RepositoryData element
+                 *                          containing ServiceIndication element
+                 *                          containing SequenceNumber element
+                 *                              indicating not 0
+                 *          sends a PU-Answer
+                 *              containing an Experimental-Result AVP
+                 *                  indicating DIAMETER_ERROR_TRANSPARENT_DATA_OUT_OF_SYNC.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_PU_17 + */ + testcase TC_SH_HSS_PU_17() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //Test control + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_PU_17()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_PU_17 + + /** + * @desc Verify that the IUT checks if repository data identified by the Service-Indication is not stored and Service Data element is not present then the IUT returns PU-Answer with appropriate experimental result code. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                 *          on receipt of a PU-Request
+                 *              containing a User-Identity AVP
+                 *                  indicating IMS Public User Identity
+                 *              containing a Data-Reference AVP
+                 *                  indicating RepositoryData (0)
+                 *              containing an User-Data AVP
+                 *                  containing Sh-Data element
+                 *                      containing RepositoryData element
+                 *                          containing ServiceIndication element
+                 *                          containing SequenceNumber element
+                 *                          containing ServiceData element
+                 *                              indicating empty value
+                 *          sends a PU-Answer
+                 *              containing an Experimental-Result AVP
+                 *                  indicating DIAMETER_ERROR_OPERATION_NOT_ALLOWED.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_PU_18 + */ + testcase TC_SH_HSS_PU_18() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //Test control + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_PU_18()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_PU_18 + + /** + * @desc Verify that the IUT checks if repository data identified by the Service-Indication is not stored and Service Data element is greater than the HSS is prepared to accept then the IUT returns PU-Answer with appropriate experimental result code. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                 *          on receipt of a PU-Request
+                 *              containing a User-Identity AVP
+                 *                  indicating IMS Public User Identity
+                 *              containing a Data-Reference AVP
+                 *                  indicating RepositoryData (0)
+                 *              containing an User-Data AVP
+                 *                  containing Sh-Data element
+                 *                      containing RepositoryData element
+                 *                          containing ServiceIndication element
+                 *                          containing SequenceNumber element
+                 *                          containing ServiceData element
+                 *                              indicating grater value than expected
+                 *          sends a PU-Answer
+                 *              containing an Experimental-Result AVP
+                 *                  indicating DIAMETER_ERROR_TOO_MUCH_DATA.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_PU_19 + */ + testcase TC_SH_HSS_PU_19() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //Test control + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_PU_19()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_PU_19 + + /** + * @desc Verify that the IUT returns PU-Answer with appropriate experimental result code in case of database error. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                 *          on receipt of 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
+                 *          sends a PU-Answer
+                 *              containing a Result-Code AVP
+                 *                  indicating DIAMETER_UNABLE_TO_COMPLY.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_PU_20 + */ + testcase TC_SH_HSS_PU_20() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //Test control + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_PU_20()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_PU_20 + + /** + * @desc Verify that the IUT checks if there are several repository data identified and the Service-Indication is not stored and Service Data element is not present for one of them then the IUT returns PU-Answer with appropriate experimental result code and Repository_Data_ID AVP indicating the service indication and the sequence number of (one of) the repository data instance for which an error occurred. + *
+                * Pics Selection: PICS_HSS_IUT
+                * Initial conditions: 
+                *     with {
+                *        
+                *     }
+                * Expected behaviour:
+                *     Ensure that the IUT
+                 *          on receipt of a PU-Request
+                 *              containing a User-Identity AVP
+                 *                  indicating IMS Public User Identity
+                 *              containing a Data-Reference AVP
+                 *                  indicating RepositoryData (0)
+                 *              containing an User-Data AVP
+                 *                  containing Sh-Data element
+                 *                      containing RepositoryData element (0)
+                 *                          containing ServiceIndication element
+                 *                          containing SequenceNumber element
+                 *                          containing ServiceData element
+                 *                              indicating empty value
+                 *                      containing RepositoryData element (1)
+                 *                          containing ServiceIndication element
+                 *                          containing SequenceNumber element
+                 *                          containing ServiceData element
+                 *                              indicating empty value
+                 *          sends a PU-Answer
+                 *              containing an Experimental-Result AVP
+                 *                  indicating DIAMETER_ERROR_OPERATION_NOT_ALLOWED
+                 *              containing a Repository-Data-ID AVP
+                 *                  containing a Service-Indication AVP
+                 *                  containing a Sequence-Number AVP.
+                * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_PU_21 + */ + testcase TC_SH_HSS_PU_21() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //Test control + if (not PICS_HSS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_PU_21()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_PU_21 + + } // End of group TP_HSSRole_ProfileUpdate + + + + group TP_HSSRole_SubscriptionNofification { //Sh Messages + + /** + * @desc Verify that the IUT processes an SN-Request and sends corresponding SN-Answer. + *
+                 * Pics Selection: PICS_HSS_IUT
+                 * Initial conditions: 
+                 *     with {
+                 *        
+                 *     }
+                 * Expected behaviour:
+                 *     Ensure that the IUT
+                        on receipt of an SN-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 Subs-Req-Type AVP
+                 *          containing a Data-Reference AVP
+                        sends an SN-Answer
+                 *          containing a Session-ID AVP
+                 *          containing a Result-Code AVP
+                 *              indicating DIAMETER_SUCCESS
+                 *          containing a Vendor-Specific-Application-Id AVP
+                 *          containing an Auth-Session-State AVP
+                 *          containing an Origin-Host AVP
+                 *          containing an Origin-Realm AVP.
+                 * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_SN_01 + */ + testcase TP_SH_HSS_SN_01() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + // Test control + if (not PICS_AS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_SN_01()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_SN_01 + + /** + * @desc Verify that the IUT replies with an SN-Answer with the appropriate experimental result + * code when the AS does not have the Sh-Subs-Notif permission. + *
+				 * Pics Selection: PICS_HSS_IUT
+				 * Initial conditions: 
+				 *     with {
+				 *        
+				 *     }
+				 * Expected behaviour:
+				 *     Ensure that the IUT
+                 *          on receipt of an SN-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 Subs-Req-Type AVP
+                 *              containing a Data-Reference AVP
+                 *          sends an SN-Answer
+                 *              containing an Experimental-Result AVP
+                 *              indicating DIAMETER_ERROR_USER_DATA_CANNOT_BE_NOTIFIED
+
+				 * 
+ * + * @version 0.0.7 + * @see ETSI TS 103 571-2 TP_SH_HSS_SN_01 + */ + testcase TP_SH_HSS_SN_02() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + // Test control + if (not PICS_AS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_SN_02()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_SN_02 + + } // End of group TP_HSSRole_SubscriptionNofification + + group TP_HSSRole_PushNofification { + + /** + * @desc Verify that the IUT sends a PN-Request to indicate a Notification procedure. + *
+                 * Pics Selection: PICS_HSS_IUT
+                 * Initial conditions: 
+                 *     with {
+                 *        
+                 *     }
+                 * Expected behaviour:
+                 *     Ensure that the IUT
+                 *          to indicate a Notification procedure
+                 *          sends a PN-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 User-Data AVP.
+                 * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_PN_01 + */ + testcase TP_SH_HSS_PN_01() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + // Test control + if (not PICS_AS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_PN_01()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_PN_01 + + /** + * @desc Verify that the IUT when repository data have to be updated sends a PN-Request with information element User-Data containing the Service-Indication and Sequence Number. + *
+                 * Pics Selection: PICS_HSS_IUT
+                 * Initial conditions: 
+                 *     with {
+                 *        
+                 *     }
+                 * Expected behaviour:
+                 *     Ensure that the IUT
+                 *          on receipt of an SN-Request
+                 *              containing a Data-Reference AVP
+                 *                  indicating RepositoryData (0)
+                 *          sends a PN-Request
+                 *              containing an User-Data AVP
+                 *                  containing Sh-Data element
+                 *                      containing RepositoryData element
+                 *                          containing ServiceIndication element
+                 *                          containing SequenceNumber element.
+                 * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_HSS_PN_02 + */ + testcase TP_SH_HSS_PN_02() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + //TODO Test control - PICS + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_PN_02()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_PN_02 + + } // End of group TP_HSSRole_PushNofification + + } // End of group TP_HSSRole + group TP_AS_Role { // §5.2.2.2 + + group TP_ASRole_MessageSyntax { + + /** + * @desc Verify that the IUT sends the appropriate Result-Code AVP when mandatory User-Identity AVP is absent. + *
+                 * Pics Selection: PICS_AS_IUT
+                 * Initial conditions: 
+                 *     with {
+                 *        
+                 *     }
+                 * Expected behaviour:
+                 *     ensure that {
+                 *        when {
+                 *            the IUT receives a PN-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-Host AVP
+                 *                containing a Destination-Realm AVP
+                 *                not containing a User-Identity AVP
+                 *                containing a User-Data AVP
+                 *        }
+                 *        then {
+                 *            the IUT sends a PN-Answer 
+                 *                containing a Session-ID AVP
+                 *                containing a Result-Code AVP
+                 *                    indicating DIAMETER_MISSING_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 Failed AVP
+                 *                    indicating missing Information Element
+                 *        }
+                 *     }
+                 * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_AS_MS_01 + */ + testcase TC_SH_AS_MS_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_MS_01()); + if (PX_SIPsupport) { + v_imsComponent_scsf.start(f_TC_SH_AS_MS_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_MS_01 + + } // End of group TP_ASRole_MessageSyntax + + group TP_ASRole_UserData{ + + /** + * @desc Verify that the IUT sends a UD-Request read user data for a specified user. + *
+                 * Pics Selection: PICS_AS_IUT
+                 * Initial conditions: 
+                 *     with {
+                 *        
+                 *     }
+                 * Expected behaviour:
+                 *     ensure that {
+                 *        when {
+                 *            to indicate a user data handling procedure
+                 *        }
+                 *        then {
+                 *            the IUT sends a UD-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
+                 *        }
+                 *     }
+                 * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_AS_UD_01 + */ + testcase TC_SH_AS_UD_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_UD_01()); + if (PX_SIPsupport) { + v_imsComponent_scsf.start(f_TC_SH_AS_UD_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_UD_01 + + /** + * @desc Verify that the IUT to indicate repository data sends a UD-Request with Service-Indication AVP. + *
+                 * Pics Selection: PICS_AS_IUT
+                 * Initial conditions: 
+                 *     with {
+                 *        
+                 *     }
+                 * Expected behaviour:
+                 *     ensure that {
+                 *        when {
+                 *            to indicate repository data within user data handling procedure
+                 *        }
+                 *        then {
+                 *            the IUT sends a UD-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
+                 *                    indicating RepositoryData (0)
+                 *                containing a Service-Indication AVP
+                 *        }
+                 *     }
+                 * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_AS_UD_02 + */ + testcase TC_SH_AS_UD_02() 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_UD_02()); + if (PX_SIPsupport) { + v_imsComponent_scsf.start(f_TC_SH_AS_UD_02_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_UD_02 + + /** + * @desc Verify that the IUT to indicate initial filter criteria sends a UD-Request with Server-Name AVP with SIP URL. + *
+                 * Pics Selection: PICS_AS_IUT
+                 * Initial conditions: 
+                 *     with {
+                 *        
+                 *     }
+                 * Expected behaviour:
+                 *     ensure that {
+                 *        when {
+                 *            to indicate initial filter criteria within user data handling procedure
+                 *        }
+                 *        then {
+                 *            the IUT sends a UD-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
+                 *                    indicating RepositoryData (13)
+                 *                containing a Server-Name AVP
+                 *                    indicating SIP URL of the IUT
+                 *        }
+                 *     }
+                 * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_AS_UD_03 + */ + testcase TC_SH_AS_UD_03() 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_UD_03()); + if (PX_SIPsupport) { + v_imsComponent_scsf.start(f_TC_SH_AS_UD_03_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_UD_03 + + /** + * @desc Verify that the IUT to indicate DSAI sends a UD-Request with DSAI-Tag AVP. + *
+                 * Pics Selection: PICS_AS_IUT
+                 * Initial conditions: 
+                 *     with {
+                 *        
+                 *     }
+                 * Expected behaviour:
+                 *     ensure that {
+                 *        when {
+                 *            to indicate DSAI within user data handling procedure
+                 *        }
+                 *        then {
+                 *            the IUT sends a UD-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
+                 *                    indicating RepositoryData (19)
+                 *                containing a DSAI-Tag AVP
+                 *        }
+                 *     }
+                 * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_SH_AS_UD_04 + */ + testcase TC_SH_AS_UD_04() 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); + + // Start + v_diameterSh_hss.start(f_TC_SH_AS_UD_04()); + if (PX_SIPsupport) { + v_imsComponent_scsf.start(f_TC_SH_AS_UD_04_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_UD_04 + + } // End of group TP_ASRole_UserData + + group TP_ASRole_ProfileUpdate{ + + /** + * @desc Verify that the IUT sends a PU-Request to update transparent data. + *
+                 * 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
+                 *        }
+                 *     }
+                 * 
+ * + * @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 + + group TP_ASRole_SubscriptionNotification{ + } // End of group TP_ASRole_SubscriptionNotification + + group TP_ASRole_PushNotification{ + } // End of group TP_ASRole_PushNotification + + } // End of group TP_AS_Role + + } // End of group TP_Sh + + group TP_Dh { //Dh Test cases + + group TP_SLF_Role { // §5.2.3.1 + + //group TP_SLFRole_MessageSyntax{ + //} // End of group TP_SLFRole_MessageSyntax + + group TP_SLFRole_UserData{ + + /** + * @desc Verify that the IUT processes a UD-Request and sends corresponding UD-Answer. + *
+                 * Pics Selection: PICS_SLF_IUT
+                 * Initial conditions: 
+                 *     with {
+                 *        
+                 *     }
+                 * Expected behaviour:
+                 *     ensure that {
+                 *        when {
+                 *            the IUT receives a UD-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
+                 *                not containing a User-Identity AVP
+                 *                containing a Data-Reference AVP
+                 *        }
+                 *        then {
+                 *            the IUT sends a UD-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).
+                 *        }
+                 *     }
+                 * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_DH_SLF_UD_01 + */ + testcase TC_DH_SLF_UD_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_UD_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_UD_01 + + } // End of group TP_SLFRole_UserData + + group TP_SLFRole_ProfileUpdate{ + + /** + * @desc Verify that the IUT processes a PU-Request and sends corresponding PU-Answer. + *
+                 * 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).
+                 *        }
+                 *     }
+                 * 
+ * + * @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{ + } // End of group TP_SLFRole_SubscriptionNotification + + } // End of group TP_SLF_Role + + group TP_AS_Role { // §5.2.3.2 + + //group TP_ASRole_MessageSyntax{ + //} // End of group TP_ASRole_MessageSyntax + + group TP_ASRole_UserData{ + + /** + * @desc Verify that the IUT for user data handling procedure sends a UD-Request to the SLF and after reception of a UD-Answer forwards a UD-Request to the HSS. + *
+                 * Pics Selection: PICS_AS_IUT
+                 * Initial conditions: 
+                 *     with {
+                 *        
+                 *     }
+                 * Expected behaviour:
+                 *     ensure that {
+                 *        when {
+                 *            to indicate a user data handling procedure
+                 *        }
+                 *        then {
+                 *            the IUT sends a UD-Request to the SLF
+                 *            on receipt of a UD-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 UD-Request to the HSS
+                 *                containing a Destination-Host AVP
+                 *                containing a Destination-Realm AVP.
+                 *        }
+                 *     }
+                 * 
+ * + * @version 0.0.6 + * @see ETSI TS 103 571-2 TP_DH_AS_UD_01 + */ + testcase TC_DH_AS_UD_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_UD_01()); + v_diameterSh_hss.start(f_TC_DH_AS_UD_01_HSS()); + if (PX_SIPsupport) { + v_imsComponent_scsf.start(f_TC_DH_AS_UD_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_UD_01 + + + } // End of group TP_ASRole_UserData + + group TP_ASRole_ProfileUpdate{ + + /** + * @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. + *
+                 * 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.
+                 *        }
+                 *     }
+                 * 
+ * + * @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{ + } // End of group TP_ASRole_SubscriptionNotification + } // End of group TP_AS_OSARole + + } // End of group TP_Dh + } // End of module DiameterShDh_TestCases \ No newline at end of file -- GitLab From 2977fea312416eba55cd38973ab1ecabb854cf0d Mon Sep 17 00:00:00 2001 From: Steven Ulrich Date: Thu, 14 Feb 2019 13:32:04 +0100 Subject: [PATCH 02/24] added new template mdw_snaBodyAvps_experimental_result --- ttcn/DiameterShDh_Templates.ttcn3 | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ttcn/DiameterShDh_Templates.ttcn3 b/ttcn/DiameterShDh_Templates.ttcn3 index 166b353..174d87a 100644 --- a/ttcn/DiameterShDh_Templates.ttcn3 +++ b/ttcn/DiameterShDh_Templates.ttcn3 @@ -947,7 +947,13 @@ module DiameterShDh_Templates { origin_Host := p_originHost, origin_Realm := p_originRealm } // End of template mdw_snaBodyAvps - + + template (present) SNA_Body_AVP mdw_snaBodyAvps_experimental_result( + template Experimental_Result_AVP p_experimentalResult + ) modifies mw_SNA_Body_dummy := { + experimental_Result := p_experimentalResult + } // End of template mdw_snaBodyAvps_experimental_result + } // End of group sna_msg } // End of group Sh_answer_message_templates_receive -- GitLab From ebe8c1697d971ba6f49454da690e83c33fa702dc Mon Sep 17 00:00:00 2001 From: Steven Ulrich Date: Thu, 14 Feb 2019 13:37:57 +0100 Subject: [PATCH 03/24] Implementation of TC TP_SH_HSS_SN_02 finalized --- ttcn/DiameterShDh_TCFunctions.ttcn3 | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/ttcn/DiameterShDh_TCFunctions.ttcn3 b/ttcn/DiameterShDh_TCFunctions.ttcn3 index 9c0c01b..242bcfb 100644 --- a/ttcn/DiameterShDh_TCFunctions.ttcn3 +++ b/ttcn/DiameterShDh_TCFunctions.ttcn3 @@ -1721,7 +1721,30 @@ module DiameterShDh_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - //TODO TestBody + // TestBody + f_send_SNR( + md_sNR( + vc_sessionId, + md_snrBodyAvps( + vc_originHost, // containing an Origin-Host AVP + vc_originRealm, // containing an Origin-Realm AVP + vc_destinationRealm, // containing a Destination-Realm AVP + m_msisdn_user_Identity ( + m_MSISDN_user_identity(char2oct(PX_NotRelatedPrivateIdentity)) + ), + m_subs_Req_Type(SUBSCRIBE_E), + m_data_Reference(LOCATION_INFORMATION_E) + )) + ); + + f_awaiting_SNA( + mdw_sNA( + vc_sessionId, // containing a Session-ID AVP + mdw_snaBodyAvps_experimental_result( + mw_experimentalResult(DIAMETER_ERROR_USER_DATA_CANNOT_BE_NOTIFIED_E) + )) + + ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); -- GitLab From 21e8481f5e32c233904418ac8c361c06e0fce8f1 Mon Sep 17 00:00:00 2001 From: Steven Ulrich Date: Thu, 14 Feb 2019 14:18:26 +0100 Subject: [PATCH 04/24] replace tabs with spaces --- ttcn/DiameterShDh_TestCases.ttcn3 | 41 ++++++++++++++++--------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/ttcn/DiameterShDh_TestCases.ttcn3 b/ttcn/DiameterShDh_TestCases.ttcn3 index a92e912..ec04ae5 100644 --- a/ttcn/DiameterShDh_TestCases.ttcn3 +++ b/ttcn/DiameterShDh_TestCases.ttcn3 @@ -2584,7 +2584,7 @@ module DiameterShDh_TestCases { } // End of testcase TP_SH_HSS_SN_01 - /** + /** * @desc Verify that the IUT replies with an SN-Answer with the appropriate experimental result * code when the AS does not have the Sh-Subs-Notif permission. *
@@ -2605,37 +2605,38 @@ module DiameterShDh_TestCases {
                  *              containing a User-Identity AVP
                  *              containing a Subs-Req-Type AVP
                  *              containing a Data-Reference AVP
+                 *                      indicating LocationInformation (14)
                  *          sends an SN-Answer
                  *              containing an Experimental-Result AVP
-                 *              indicating DIAMETER_ERROR_USER_DATA_CANNOT_BE_NOTIFIED
+                 *                      indicating DIAMETER_ERROR_USER_DATA_CANNOT_BE_NOTIFIED
 
 				 * 
* * @version 0.0.7 - * @see ETSI TS 103 571-2 TP_SH_HSS_SN_01 + * @see ETSI TS 103 571-2 TP_SH_HSS_SN_02 */ - testcase TP_SH_HSS_SN_02() runs on DiameterShDh system TestAdapter { - // Local variables - var DiameterShDh v_diameterSh_as; - - // Test control - if (not PICS_AS_IUT) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); - stop; - } + testcase TP_SH_HSS_SN_02() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + // Test control + if (not PICS_AS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } - // Test component configuration - f_cf_1Sh_asUp(v_diameterSh_as); + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); - // Start - v_diameterSh_as.start(f_TC_SH_HSS_SN_02()); + // Start + v_diameterSh_as.start(f_TC_SH_HSS_SN_02()); - // synchronize PTC on 1 sychronization points - f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); - f_cf_1Sh_asDown(v_diameterSh_as); + f_cf_1Sh_asDown(v_diameterSh_as); - } // End of testcase TP_SH_HSS_SN_02 + } // End of testcase TP_SH_HSS_SN_02 } // End of group TP_HSSRole_SubscriptionNofification -- GitLab From 0823ddc3504b27693af0b7cb560159bd94f6dfb7 Mon Sep 17 00:00:00 2001 From: Steven Ulrich Date: Thu, 14 Feb 2019 14:43:50 +0100 Subject: [PATCH 05/24] added TC TP_SH_HSS_SN_03 --- ttcn/DiameterShDh_TestCases.ttcn3 | 47 +++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/ttcn/DiameterShDh_TestCases.ttcn3 b/ttcn/DiameterShDh_TestCases.ttcn3 index ec04ae5..35b4684 100644 --- a/ttcn/DiameterShDh_TestCases.ttcn3 +++ b/ttcn/DiameterShDh_TestCases.ttcn3 @@ -2637,6 +2637,53 @@ module DiameterShDh_TestCases { f_cf_1Sh_asDown(v_diameterSh_as); } // End of testcase TP_SH_HSS_SN_02 + + /** + * @desc Verify that the IUT sends an SN-Answer with the appropriate experimental result code + * when a User Identity does not exist. + *
+                 * Pics Selection: PICS_HSS_IUT
+                 * Initial conditions: 
+                 *     with {
+                 *        
+                 *     }
+                 * Expected behaviour:
+                 *     Ensure that the IUT
+	             *       on receipt of an SN-Request
+		         *          containing a User-Identity AVP
+			     *              indicating not existing user
+	             *       sends an SN-Answer
+		         *          containing an Experimental-Result AVP
+			     *              indicating DIAMETER_ERROR_USER_UNKNOWN
+
+
+                 * 
+ * + * @version 0.0.7 + * @see ETSI TS 103 571-2 TP_SH_HSS_SN_03 + */ + testcase TP_SH_HSS_SN_03() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + // Test control + if (not PICS_AS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_SN_03()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_SN_02 } // End of group TP_HSSRole_SubscriptionNofification -- GitLab From 21c5f5523e748e26bd7d594cace3cce90503bef7 Mon Sep 17 00:00:00 2001 From: Steven Ulrich Date: Fri, 15 Feb 2019 10:06:05 +0100 Subject: [PATCH 06/24] Implementation of TC TP_SH_HSS_SN_03 finalized --- ttcn/DiameterShDh_TCFunctions.ttcn3 | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/ttcn/DiameterShDh_TCFunctions.ttcn3 b/ttcn/DiameterShDh_TCFunctions.ttcn3 index 242bcfb..400020d 100644 --- a/ttcn/DiameterShDh_TCFunctions.ttcn3 +++ b/ttcn/DiameterShDh_TCFunctions.ttcn3 @@ -1762,7 +1762,29 @@ module DiameterShDh_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - //TODO TestBody + // TestBody + f_send_SNR( + md_sNR( + vc_sessionId, + md_snrBodyAvps( + vc_originHost, // containing an Origin-Host AVP + vc_originRealm, // containing an Origin-Realm AVP + vc_destinationRealm, // containing a Destination-Realm AVP + m_msisdn_user_Identity ( + m_MSISDN_user_identity(char2oct(PX_NotExistingUserIdentity)) + ) + )) + ); + + f_awaiting_SNA( + mdw_sNA( + vc_sessionId, // containing a Session-ID AVP + mdw_snaBodyAvps_experimental_result( + mw_experimentalResult(DIAMETER_ERROR_USER_UNKNOWN_E) + )) + + ); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); -- GitLab From 79063580d845c5abac95280ed4f335fab45460c8 Mon Sep 17 00:00:00 2001 From: Steven Ulrich Date: Fri, 15 Feb 2019 10:14:49 +0100 Subject: [PATCH 07/24] added TC TP_SH_HSS_SN_04 --- ttcn/DiameterShDh_TestCases.ttcn3 | 50 ++++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/ttcn/DiameterShDh_TestCases.ttcn3 b/ttcn/DiameterShDh_TestCases.ttcn3 index 35b4684..dd02427 100644 --- a/ttcn/DiameterShDh_TestCases.ttcn3 +++ b/ttcn/DiameterShDh_TestCases.ttcn3 @@ -2683,7 +2683,55 @@ module DiameterShDh_TestCases { f_cf_1Sh_asDown(v_diameterSh_as); - } // End of testcase TP_SH_HSS_SN_02 + } // End of testcase TP_SH_HSS_SN_03 + + + /** + * @desc Verify that the IUT, checks if the Private Identity does not corresponds to an IMPU/MSISDN, + * and if not the IUT returns an SN-Answer with the appropriate experimental result code. + *
+                 * Pics Selection: PICS_HSS_IUT
+                 * Initial conditions: 
+                 *     with {
+                 *        
+                 *     }
+                 * Expected behaviour:
+                 *     Ensure that the IUT
+                 *        on receipt of an SN-Request
+		         *           containing a User-Identity AVP
+			     *                indicating not related Private Identity
+		         *           containing a User-Name AVP
+			     *                indicating Private Identity
+	             *        sends an SN-Answer
+		         *           containing an Experimental-Result AVP
+			     *                indicating DIAMETER_ERROR_IDENTITIES_DONT_MATCH.
+                 * 
+ * + * @version 0.0.7 + * @see ETSI TS 103 571-2 TP_SH_HSS_SN_04 + */ + testcase TP_SH_HSS_SN_04() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + // Test control + if (not PICS_AS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_SN_04()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_SN_04 } // End of group TP_HSSRole_SubscriptionNofification -- GitLab From 42dfd23e8f0eb722639b5af0bccec566c648aa3e Mon Sep 17 00:00:00 2001 From: Steven Ulrich Date: Fri, 15 Feb 2019 17:30:56 +0100 Subject: [PATCH 08/24] update LibDiameter reference --- LibDiameter | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LibDiameter b/LibDiameter index 2972115..c376d39 160000 --- a/LibDiameter +++ b/LibDiameter @@ -1 +1 @@ -Subproject commit 29721153dc288decb1f6f29df16becd3141ce12c +Subproject commit c376d39417db95b81b4621bee877e474a1e7236a -- GitLab From 026e5faac018eb42763359f978f6df9387ad93c7 Mon Sep 17 00:00:00 2001 From: Steven Ulrich Date: Fri, 15 Feb 2019 17:31:35 +0100 Subject: [PATCH 09/24] added new UTF8String "Private Identity" --- ttcn/DiameterShDh_PIXITS.ttcn3 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ttcn/DiameterShDh_PIXITS.ttcn3 b/ttcn/DiameterShDh_PIXITS.ttcn3 index 5beab2b..d4dc8ec 100644 --- a/ttcn/DiameterShDh_PIXITS.ttcn3 +++ b/ttcn/DiameterShDh_PIXITS.ttcn3 @@ -191,6 +191,8 @@ module DiameterShDh_PIXITS { modulepar octetstring PX_DSAI_TAG := '00'O; + modulepar charstring PX_Private_Identity := "foo"; + modulepar LibDiameter_Types_Base_AVPs.Diameter_Identity PX_HSS_IDENTITY := "hss.etsi.org"; } // End of group DiameterCommonShDhData -- GitLab From 86c22ec5145e24f11cb61f96cf3bd43f2d959be7 Mon Sep 17 00:00:00 2001 From: Steven Ulrich Date: Fri, 15 Feb 2019 18:34:29 +0100 Subject: [PATCH 10/24] Implementation of TC TP_SH_HSS_SN_03 finalized --- ttcn/DiameterShDh_TCFunctions.ttcn3 | 26 +++++++++++++++++++++++++- ttcn/DiameterShDh_Templates.ttcn3 | 6 ++++-- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/ttcn/DiameterShDh_TCFunctions.ttcn3 b/ttcn/DiameterShDh_TCFunctions.ttcn3 index 400020d..86ac020 100644 --- a/ttcn/DiameterShDh_TCFunctions.ttcn3 +++ b/ttcn/DiameterShDh_TCFunctions.ttcn3 @@ -1802,7 +1802,31 @@ module DiameterShDh_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - //TODO TestBody + // TestBody + f_send_SNR( + md_sNR( + vc_sessionId, + md_snrBodyAvps( + vc_originHost, // containing an Origin-Host AVP + vc_originRealm, // containing an Origin-Realm AVP + vc_destinationRealm, // containing a Destination-Realm AVP + m_msisdn_user_Identity ( + m_MSISDN_user_identity(char2oct(PX_NotRelatedPrivateIdentity)) + ), + -, + -, + m_userName(PX_Private_Identity) + )) + ); + + f_awaiting_SNA( + mdw_sNA( + vc_sessionId, // containing a Session-ID AVP + mdw_snaBodyAvps_experimental_result( + mw_experimentalResult(DIAMETER_ERROR_IDENTITIES_DONT_MATCH_E) + )) + + ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); diff --git a/ttcn/DiameterShDh_Templates.ttcn3 b/ttcn/DiameterShDh_Templates.ttcn3 index 174d87a..84e1b80 100644 --- a/ttcn/DiameterShDh_Templates.ttcn3 +++ b/ttcn/DiameterShDh_Templates.ttcn3 @@ -364,7 +364,8 @@ module DiameterShDh_Templates { template (value) Destination_Realm_AVP p_destination_Realm, template (value) User_Identity_AVP p_user_Identity := m_user_Identity_dummy, template (value) Subs_Req_Type_AVP p_subs_Req_Type := m_subs_Req_Type_dummy, - template (value) Data_Reference_AVP p_data_Reference := m_data_Reference_dummy + template (value) Data_Reference_AVP p_data_Reference := m_data_Reference_dummy, + template (value) User_Name_AVP p_user_Name := m_user_Name_dummy ) modifies m_SNR_Body_dummy := { vendor_Specific_Application_Id := m_vendor_Specific_Appl_Id_Sh,//required only in TS129 229 auth_Session_State := m_auth_Session_State, @@ -373,7 +374,8 @@ module DiameterShDh_Templates { destination_Realm := p_destination_Realm, user_Identity := p_user_Identity, subs_Req_Type := p_subs_Req_Type, - data_Reference := {p_data_Reference} + data_Reference := {p_data_Reference}, + user_Name := p_user_Name } // End of template md_snrBodyAvps } // End of group snr_msg -- GitLab From 56b9cf91f58f335e67797ad4ccb6a39a8207c9bb Mon Sep 17 00:00:00 2001 From: Steven Ulrich Date: Mon, 18 Feb 2019 12:40:21 +0100 Subject: [PATCH 11/24] added TC TP_SH_HSS_SN_05 --- ttcn/DiameterShDh_TestCases.ttcn3 | 51 ++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/ttcn/DiameterShDh_TestCases.ttcn3 b/ttcn/DiameterShDh_TestCases.ttcn3 index dd02427..8562b4b 100644 --- a/ttcn/DiameterShDh_TestCases.ttcn3 +++ b/ttcn/DiameterShDh_TestCases.ttcn3 @@ -2731,7 +2731,56 @@ module DiameterShDh_TestCases { f_cf_1Sh_asDown(v_diameterSh_as); - } // End of testcase TP_SH_HSS_SN_04 + } // End of testcase TP_SH_HSS_SN_04 + + /** + * @desc Verify that the IUT, if the type of User Identity does not apply according to Table 7.6.1 + * due to the Data-Reference indicated in the request, returns an SN-Answer with the appropriate + * experimental result code. + *
+                 * Pics Selection: PICS_HSS_IUT
+                 * Initial conditions: 
+                 *     with {
+                 *        
+                 *     }
+                 * Expected behaviour:
+                 *     Ensure that the IUT
+	             *        on receipt of an SN-Request
+		         *           containing a User-Identity AVP
+			     *               indicating MSISDN
+		         *           containing a Data-Reference AVP
+			     *               indicating RepositoryData (0)
+	             *        sends an SN-Answer
+		         *            containing an Experimental-Result AVP
+			     *               indicating DIAMETER_ERROR_OPERATION_NOT_ALLOWED.
+
+                 * 
+ * + * @version 0.0.7 + * @see ETSI TS 103 571-2 TP_SH_HSS_SN_05 + */ + testcase TP_SH_HSS_SN_05() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + // Test control + if (not PICS_AS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_SN_05()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_SN_05 } // End of group TP_HSSRole_SubscriptionNofification -- GitLab From 1bba50e97d82f03cf491d1ac0feb5a6fe2abbd07 Mon Sep 17 00:00:00 2001 From: Steven Ulrich Date: Mon, 18 Feb 2019 12:44:45 +0100 Subject: [PATCH 12/24] Implementation of TC TP_SH_HSS_SN_05 finalized --- ttcn/DiameterShDh_TCFunctions.ttcn3 | 5435 ++++++++++++++------------- 1 file changed, 2729 insertions(+), 2706 deletions(-) diff --git a/ttcn/DiameterShDh_TCFunctions.ttcn3 b/ttcn/DiameterShDh_TCFunctions.ttcn3 index 86ac020..ee21ced 100644 --- a/ttcn/DiameterShDh_TCFunctions.ttcn3 +++ b/ttcn/DiameterShDh_TCFunctions.ttcn3 @@ -1,2707 +1,2730 @@ -module DiameterShDh_TCFunctions { - - // LibCommon - import from LibCommon_Sync all; - import from LibCommon_VerdictControl all; - - // LibDiameter - import from LibDiameter_PIXITS all; - import from LibDiameter_TypesAndValues all; - import from LibDiameter_Types_Base_AVPs all; - import from LibDiameter_Types_ShDh_AVPs all; - import from LibDiameter_Templates all; - import from LibDiameter_Interface all; - import from LibDiameter_Steps all; - - //DiameterShDh - import from DiameterShDh_Templates all; - import from DiameterShDh_Steps all; - import from DiameterShDh_PIXITS all; - import from DiameterShDh_TestSystem all; - - // 5.2.2.1. CDF Role - group TP_SH_Role { - - // 5.2.2.1 - group TP_SH_HSS_Role { - - // 5.2.2.1.2 Message Syntax - /** - * - * @desc 5.2.2.1.2 Message Syntax - */ - group TP_SH_HSS_MS { - - /** - * @desc Verify that the IUT can successfully process all mandatory AVPs in an AC-Request received due to Charging Data Transfer - * @verdict pass on success, fail on error or inconc on timeout only - */ - function f_TC_SH_HSS_MS_01() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - f_send_UDR( - md_uDR( - vc_sessionId, - md_udrBodyAvps( - vc_originHost, // containing an Origin-Host AVP - vc_originRealm, // containing an Origin-Realm AVP - vc_destinationRealm // containing a Destination-Realm AVP - // not containing a User-Identity AVP - // Containing a Data-Reference AVP - ) - ) - ); - - f_awaiting_UDA( - mdw_uDA( - vc_sessionId, // containing a Session-ID AVP - mw_UDA_ResulFaile( - mw_resultCode( - DIAMETER_MISSING_AVP_E // containing a Result-Code AVP - // indicating DIAMETER_MISSING_AVP - ), - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT, - { - mw_failed( // containing a Failed AVP - { - mw_avpType( // indicating missing Visited-Network-Identifier AVP - mw_aVP_Header_any_Code( - c_user_Identity_AVP_Code - ))}) - } - ))); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_MS_01 - - } - - group TP_HSSRole_UserData { //Sh Messages - - function f_TC_SH_HSS_UD_01() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - f_send_UDR( - md_uDR( - vc_sessionId, - md_udrBodyAvps( - vc_originHost, // containing an Origin-Host AVP - vc_originRealm, // containing an Origin-Realm AVP - vc_destinationRealm, // containing a Destination-Realm AVP - m_specific_user_Identity( - m_public_user_identity - ) - ) - ) - ); - - f_awaiting_UDA( - mdw_uDA( - vc_sessionId, // containing a Session-ID AVP - mdw_udaBodyAvps( - mw_resultCode(DIAMETER_SUCCESS_E), - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - )) - ); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_UD_01() - - function f_TC_SH_HSS_UD_02() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - f_send_UDR( - md_uDR( - vc_sessionId, - md_udrBodyAvps( - vc_originHost, // containing an Origin-Host AVP - vc_originRealm, // containing an Origin-Realm AVP - vc_destinationRealm, // containing a Destination-Realm AVP - m_specific_user_Identity ( - m_public_user_identity(PX_NotExistingUserIdentity) - ) - ) - ) - ); - - - f_awaiting_UDA( - mdw_uDA( - vc_sessionId, // containing a Session-ID AVP - mdw_udaBodyExperimentalAvps( - mw_experimentalResult(DIAMETER_ERROR_USER_DATA_CANNOT_BE_READ_E), - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - ))); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_UD_02() - - function f_TC_SH_HSS_UD_03() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - - f_send_UDR( - md_uDR( - vc_sessionId, - md_udrBodyAvps( - vc_originHost, // containing an Origin-Host AVP - vc_originRealm, // containing an Origin-Realm AVP - vc_destinationRealm, // containing a Destination-Realm AVP - m_specific_user_Identity ( - m_public_user_identity(PX_NotExistingUserIdentity) - ) - ) - ) - ); - - f_awaiting_UDA( - mdw_uDA( - vc_sessionId, // containing a Session-ID AVP - mdw_udaBodyExperimentalAvps( - mw_experimentalResult(DIAMETER_ERROR_USER_UNKNOWN_E), - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - ))); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_UD_03() - - function f_TC_SH_HSS_UD_04() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - f_send_UDR( - md_uDR( - vc_sessionId, - md_udrBodyAvps( - vc_originHost, // containing an Origin-Host AVP - vc_originRealm, // containing an Origin-Realm AVP - vc_destinationRealm, // containing a Destination-Realm AVP - m_specific_user_Identity ( - m_public_user_identity(PX_NotRelatedPrivateIdentity) - ) - ) - ) - ); - - f_awaiting_UDA( - mdw_uDA( - vc_sessionId, // containing a Session-ID AVP - mdw_udaBodyExperimentalAvps( - mw_experimentalResult(DIAMETER_ERROR_IDENTITIES_DONT_MATCH_E), - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - ))); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_UD_04() - - function f_TC_SH_HSS_UD_05() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - f_send_UDR( - md_uDR( - vc_sessionId, - md_udrBodyAvps( - vc_originHost, // containing an Origin-Host AVP - vc_originRealm, // containing an Origin-Realm AVP - vc_destinationRealm, // containing a Destination-Realm AVP - m_specific_user_Identity ( - m_public_user_identity(PX_PublicUser_MSISDN) - ) - ) - ) - ); - - f_awaiting_UDA( - mdw_uDA( - vc_sessionId, // containing a Session-ID AVP - mdw_udaBodyExperimentalAvps( - mw_experimentalResult(DIAMETER_ERROR_OPERATION_NOT_ALLOWED_E), - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - )) - ); - - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_UD_05() - - function f_TC_SH_HSS_UD_06() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - f_send_UDR( - md_uDR( - vc_sessionId, - md_udrBodyAvps( - vc_originHost, // containing an Origin-Host AVP - vc_originRealm, // containing an Origin-Realm AVP - vc_destinationRealm, // containing a Destination-Realm AVP - m_specific_user_Identity ( - m_public_user_identity(PX_PublicUser_MSISDN) - ) - ) - ) - ); - - f_awaiting_UDA( - mdw_uDA( - vc_sessionId, // containing a Session-ID AVP - mdw_udaBodyExperimentalAvps( - mw_experimentalResult(DIAMETER_ERROR_OPERATION_NOT_ALLOWED_E), - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - )) - ); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_UD_06() - - function f_TC_SH_HSS_UD_07() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - f_send_UDR( - md_uDR( - vc_sessionId, - md_udrBodyAvps( - vc_originHost, // containing an Origin-Host AVP - vc_originRealm, // containing an Origin-Realm AVP - vc_destinationRealm, // containing a Destination-Realm AVP - m_specific_user_Identity ( - m_public_user_identity(PX_PublicUser_MSISDN) - ) - ) - ) - ); - - f_awaiting_UDA( - mdw_uDA( - vc_sessionId, // containing a Session-ID AVP - mdw_udaBodyExperimentalAvps( - mw_experimentalResult( - DIAMETER_USER_DATA_NOT_AVAILABLE_E - ), - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - )) - ); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_UD_07() - - function f_TC_SH_HSS_UD_08() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - // TestBody - f_send_UDR( - md_uDR( - vc_sessionId, - md_udrBodyAvps( - vc_originHost, // containing an Origin-Host AVP - vc_originRealm, // containing an Origin-Realm AVP - vc_destinationRealm, // containing a Destination-Realm AVP - m_specific_user_Identity ( - m_public_user_identity(PX_PublicUser_MSISDN) - ), - m_data_Reference( // containing an Reference-Data AVP - TADS_INFORMATION_E - // indication TADS_INFORMATION_E - ) - ) - ) - ); - - f_awaiting_UDA( - mdw_uDA( - vc_sessionId, // containing a Session-ID AVP - mdw_udaBodyAvps_user_Data( - ?, - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT, // containing an Origin-Realm AVP - mw_user_Data( // containing an Uswr-Data AVP - '00'O // indicating TADS information - )))); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_UD_08 - - function f_TC_SH_HSS_UD_09() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_UD_09() - - function f_TC_SH_HSS_UD_10() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_UD_10() - - function f_TC_SH_HSS_UD_11() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_UD_11() - - function f_TC_SH_HSS_UD_12() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_UD_12() - - function f_TC_SH_HSS_UD_13() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_UD_13() - - function f_TC_SH_HSS_UD_14() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_UD_14() - - function f_TC_SH_HSS_UD_15() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_UD_15() - - function f_TC_SH_HSS_UD_16() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_UD_16() - - function f_TC_SH_HSS_UD_17() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_UD_17() - - function f_TC_SH_HSS_UD_18() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_UD_18() - - function f_TC_SH_HSS_UD_19() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_UD_19() - - function f_TC_SH_HSS_UD_20() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_UD_20() - - function f_TC_SH_HSS_UD_21() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_UD_21() - - function f_TC_SH_HSS_UD_22() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_UD_22() - - function f_TC_SH_HSS_UD_23() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_UD_23() - - function f_TC_SH_HSS_UD_24() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_UD_24() - - } // End of group TP_HSSRole_UserData - - group TP_HSSRole_ProfileUpdate { //Sh Messages - - function f_TC_SH_HSS_PU_01() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //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( - vc_sessionId, // containing a Session-ID AVP - mdw_puaBodyAvps( - mw_resultCode(DIAMETER_SUCCESS_E), - *, - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - )) - ); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_PU_01() - - function f_TC_SH_HSS_PU_02() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //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( - vc_sessionId, // containing a Session-ID AVP - mdw_puaBodyAvps( - ?, - mw_experimentalResult( - DIAMETER_ERROR_USER_DATA_CANNOT_BE_MODIFIED_E - ), - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - )) - ); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_PU_02() - - function f_TC_SH_HSS_PU_03() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //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_NotExistingUserIdentity) - ) - ) - ) - ); - - f_awaiting_PUA( - mdw_pUA( - vc_sessionId, // containing a Session-ID AVP - mdw_puaBodyAvps( - *, - mw_experimentalResult(DIAMETER_ERROR_USER_UNKNOWN_E), - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - )) - ); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_PU_03() - - function f_TC_SH_HSS_PU_04() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //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_msisdn_user_Identity ( - m_MSISDN_user_identity(char2oct(PX_NotRelatedPrivateIdentity)) - ) - ) - ) - ); - - f_awaiting_PUA( - mdw_pUA( - vc_sessionId, // containing a Session-ID AVP - mdw_puaBodyAvps( - *, - mw_experimentalResult(DIAMETER_ERROR_IDENTITIES_DONT_MATCH_E), - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - )) - ); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_PU_04() - - function f_TC_SH_HSS_PU_05() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //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_msisdn_user_Identity ( - m_MSISDN_user_identity(char2oct(PX_PublicUser_MSISDN)) - ), - m_data_Reference(REPOSITORY_DATA_E) - ))); - - f_awaiting_PUA( - mdw_pUA( - vc_sessionId, // containing a Session-ID AVP - mdw_puaBodyAvps( - ?, - mw_experimentalResult( - DIAMETER_ERROR_OPERATION_NOT_ALLOWED_E - ), - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - )) - ); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_PU_05() - - function f_TC_SH_HSS_PU_06() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //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_PublicPSIIdentity) //PSI? - ), - m_data_Reference(PSI_ACTIVATION_E), - m_user_Data_dummy - ) - ) - ); - - f_awaiting_PUA( - mdw_pUA( - vc_sessionId, // containing a Session-ID AVP - mdw_puaBodyAvps( - mw_resultCode(DIAMETER_SUCCESS_E), - *, - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - )) - ); - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_PU_06() - - function f_TC_SH_HSS_PU_07() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //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_msisdn_user_Identity ( - m_MSISDN_user_identity(char2oct(PX_PublicUser_MSISDN)) - ), - m_data_Reference(PSI_ACTIVATION_E), - m_user_Data_dummy - ) - ) - ); - - f_awaiting_PUA( - mdw_pUA( - vc_sessionId, // containing a Session-ID AVP - mdw_puaBodyAvps( - *, - mw_experimentalResult(DIAMETER_ERROR_OPERATION_NOT_ALLOWED_E), - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - )) - ); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_PU_07() - - function f_TC_SH_HSS_PU_08() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //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) - ), - m_data_Reference(DSAI_E), - m_user_Data_dummy//m_user_Data_shData(unichar2oct(encvalue_unichar(m_imsdata_ext2)))//TODO - Commented to avoid ERROR - ) - ) - ); - - f_awaiting_PUA( - mdw_pUA( - vc_sessionId, // containing a Session-ID AVP - mdw_puaBodyAvps( - mw_resultCode(DIAMETER_SUCCESS_E), - *, - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - )) - ); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_PU_08() - - function f_TC_SH_HSS_PU_09() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //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) - ), - m_data_Reference(DSAI_E), - m_user_Data_dummy - ) - ) - ); - - f_awaiting_PUA( - mdw_pUA( - vc_sessionId, // containing a Session-ID AVP - mdw_puaBodyAvps( - *, - mw_experimentalResult(DIAMETER_ERROR_DSAI_NOT_AVAILABLE_E), - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - )) - ); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_PU_09() - - function f_TC_SH_HSS_PU_10() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //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) - ), - m_data_Reference(SMS_REGISTRATION_INFO_E), - m_user_Data_shData(char2oct("shimsdata_extension3")) //TODO import XML Schema - ) - ) - ); - - f_awaiting_PUA( - mdw_pUA( - vc_sessionId, // containing a Session-ID AVP - mdw_puaBodyAvps( - mw_resultCode(DIAMETER_SUCCESS_E), - *, - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT, - * - )) - ); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_PU_10() - - function f_TC_SH_HSS_PU_11() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //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) - ), - m_data_Reference(SMS_REGISTRATION_INFO_E), - m_user_Data_shData(char2oct("shimsdata_extension3")) //TODO import XML Schema - ) - ) - ); - - f_awaiting_PUA( - mdw_pUA( - vc_sessionId, // containing a Session-ID AVP - mdw_puaBodyAvps( - mw_resultCode(DIAMETER_SUCCESS_E), - *, - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - )) - ); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_PU_11() - - function f_TC_SH_HSS_PU_12() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //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) - ), - m_data_Reference(STN_SR_E), - m_user_Data_shData(char2oct("shimsdata_extension4_stn-sr")) //TODO import XML Schema - ) - ) - ); - - f_awaiting_PUA( - mdw_pUA( - vc_sessionId, // containing a Session-ID AVP - mdw_puaBodyAvps( - mw_resultCode(DIAMETER_SUCCESS_E), - *, - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - )) - ); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_PU_12() - - function f_TC_SH_HSS_PU_13() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //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) - ), - m_data_Reference(STN_SR_E), - m_user_Data_shData(char2oct("shimsdata_extension4_stn-sr")) //TODO import XML Schema - ) - ) - ); - - f_awaiting_PUA( - mdw_pUA( - vc_sessionId, // containing a Session-ID AVP - mdw_puaBodyAvps( - *, - mw_experimentalResult(DIAMETER_ERROR_OPERATION_NOT_ALLOWED_E), - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - )) - ); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_PU_13() - - function f_TC_SH_HSS_PU_14() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //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) - ), - m_data_Reference(REPOSITORY_DATA_E), - m_user_Data_shData(char2oct("shdata_repositorydata_serviceinfo_seqnr")) //TODO import XML Schema - ) - ) - ); - - f_awaiting_PUA( - mdw_pUA( - vc_sessionId, // containing a Session-ID AVP - mdw_puaBodyAvps( - *, - mw_experimentalResult(DIAMETER_PRIOR_UPDATE_IN_PROGRESS_E), - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - )) - ); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_PU_14() - - function f_TC_SH_HSS_PU_15() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //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) - ), - m_data_Reference(REPOSITORY_DATA_E), - m_user_Data_shData(char2oct("shdata_repositorydata_serviceinfo_seqnr=0")) //TODO import XML Schema - ) - ) - ); - - f_awaiting_PUA( - mdw_pUA( - vc_sessionId, // containing a Session-ID AVP - mdw_puaBodyAvps( - *, - mw_experimentalResult(DIAMETER_ERROR_TRANSPARENT_DATA_OUT_OF_SYNC_E), - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - )) - ); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_PU_15() - - function f_TC_SH_HSS_PU_16() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //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) - ), - m_data_Reference(REPOSITORY_DATA_E), - m_user_Data_shData(char2oct("shdata_repositorydata_serviceinfo_seqnr_servicedata>expected")) //TODO import XML Schema - ) - ) - ); - - f_awaiting_PUA( - mdw_pUA( - vc_sessionId, // containing a Session-ID AVP - mdw_puaBodyAvps( - *, - mw_experimentalResult(DIAMETER_ERROR_TOO_MUCH_DATA_E), - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - )) - ); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_PU_16() - - function f_TC_SH_HSS_PU_17() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //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) - ), - m_data_Reference(REPOSITORY_DATA_E), - m_user_Data_shData(char2oct("shdata_repositorydata_serviceinfo_seqnr!=0")) //TODO import XML Schema - ) - ) - ); - - f_awaiting_PUA( - mdw_pUA( - vc_sessionId, // containing a Session-ID AVP - mdw_puaBodyAvps( - *, - mw_experimentalResult(DIAMETER_ERROR_TRANSPARENT_DATA_OUT_OF_SYNC_E), - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - )) - ); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_PU_17() - - function f_TC_SH_HSS_PU_18() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //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) - ), - m_data_Reference(REPOSITORY_DATA_E), - m_user_Data_shData(char2oct("shdata_repositorydata_serviceinfo_seqnr_servicedata=empty")) //TODO import XML Schema - ) - ) - ); - - f_awaiting_PUA( - mdw_pUA( - vc_sessionId, // containing a Session-ID AVP - mdw_puaBodyAvps( - *, - mw_experimentalResult(DIAMETER_ERROR_OPERATION_NOT_ALLOWED_E), - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - )) - ); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_PU_18() - - function f_TC_SH_HSS_PU_19() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //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) - ), - m_data_Reference(REPOSITORY_DATA_E), - m_user_Data_shData(char2oct("shdata_repositorydata_serviceinfo_seqnr_servicedata>expected")) //TODO import XML Schema - ) - ) - ); - - f_awaiting_PUA( - mdw_pUA( - vc_sessionId, // containing a Session-ID AVP - mdw_puaBodyAvps( - *, - mw_experimentalResult(DIAMETER_ERROR_TOO_MUCH_DATA_E), - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - )) - ); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_PU_19() - - function f_TC_SH_HSS_PU_20() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //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( - vc_sessionId, // containing a Session-ID AVP - mdw_puaBodyAvps( - mw_resultCode(DIAMETER_UNABLE_TO_COMPLY_E), - *, - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - )) - ); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_PU_20() - - function f_TC_SH_HSS_PU_21() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //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) - ), - m_data_Reference(REPOSITORY_DATA_E), - m_user_Data_shData(char2oct("shdata_repositorydata(0)_serviceinfo_seqnr_servicedata_empty-repositorydata(1)_serviceinfo_seqnr_servicedata_empty")) //TODO import XML Schema - ) - ) - ); - - f_awaiting_PUA( - mdw_pUA( - vc_sessionId, // containing a Session-ID AVP - mdw_puaBodyAvps( - *, - mw_experimentalResult(DIAMETER_ERROR_OPERATION_NOT_ALLOWED_E), - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT, - mw_repository_data_id - )) - ); - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_PU_21() - - } // End of group TP_HSSRole_ProfileUpdate - - group TP_HSSRole_SubscriptionNofification { //Sh Messages - - function f_TC_SH_HSS_SN_01() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - // TestBody - f_send_SNR( - md_sNR( - vc_sessionId, - md_snrBodyAvps( - vc_originHost, // containing an Origin-Host AVP - vc_originRealm, // containing an Origin-Realm AVP - vc_destinationRealm, // containing a Destination-Realm AVP - m_msisdn_user_Identity ( - m_MSISDN_user_identity(char2oct(PX_NotRelatedPrivateIdentity)) - ), - m_subs_Req_Type(SUBSCRIBE_E), - m_data_Reference(REPOSITORY_DATA_E) - ) - ) - ); - - f_awaiting_SNA( - mdw_sNA( - vc_sessionId, // containing a Session-ID AVP - mdw_snaBodyAvps( - mw_resultCode(DIAMETER_SUCCESS_E), - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT - )) - ); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_SN_01() - - function f_TC_SH_HSS_SN_02() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - // TestBody - f_send_SNR( - md_sNR( - vc_sessionId, - md_snrBodyAvps( - vc_originHost, // containing an Origin-Host AVP - vc_originRealm, // containing an Origin-Realm AVP - vc_destinationRealm, // containing a Destination-Realm AVP - m_msisdn_user_Identity ( - m_MSISDN_user_identity(char2oct(PX_NotRelatedPrivateIdentity)) - ), - m_subs_Req_Type(SUBSCRIBE_E), - m_data_Reference(LOCATION_INFORMATION_E) - )) - ); - - f_awaiting_SNA( - mdw_sNA( - vc_sessionId, // containing a Session-ID AVP - mdw_snaBodyAvps_experimental_result( - mw_experimentalResult(DIAMETER_ERROR_USER_DATA_CANNOT_BE_NOTIFIED_E) - )) - - ); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_SN_02() - - function f_TC_SH_HSS_SN_03() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - // TestBody - f_send_SNR( - md_sNR( - vc_sessionId, - md_snrBodyAvps( - vc_originHost, // containing an Origin-Host AVP - vc_originRealm, // containing an Origin-Realm AVP - vc_destinationRealm, // containing a Destination-Realm AVP - m_msisdn_user_Identity ( - m_MSISDN_user_identity(char2oct(PX_NotExistingUserIdentity)) - ) - )) - ); - - f_awaiting_SNA( - mdw_sNA( - vc_sessionId, // containing a Session-ID AVP - mdw_snaBodyAvps_experimental_result( - mw_experimentalResult(DIAMETER_ERROR_USER_UNKNOWN_E) - )) - - ); - - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_SN_03() - - function f_TC_SH_HSS_SN_04() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - // TestBody - f_send_SNR( - md_sNR( - vc_sessionId, - md_snrBodyAvps( - vc_originHost, // containing an Origin-Host AVP - vc_originRealm, // containing an Origin-Realm AVP - vc_destinationRealm, // containing a Destination-Realm AVP - m_msisdn_user_Identity ( - m_MSISDN_user_identity(char2oct(PX_NotRelatedPrivateIdentity)) - ), - -, - -, - m_userName(PX_Private_Identity) - )) - ); - - f_awaiting_SNA( - mdw_sNA( - vc_sessionId, // containing a Session-ID AVP - mdw_snaBodyAvps_experimental_result( - mw_experimentalResult(DIAMETER_ERROR_IDENTITIES_DONT_MATCH_E) - )) - - ); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_SN_04() - - function f_TC_SH_HSS_SN_05() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_SN_05() - - function f_TC_SH_HSS_SN_06() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_SN_06() - - function f_TC_SH_HSS_SN_07() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_SN_07() - - function f_TC_SH_HSS_SN_08() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_SN_08() - - function f_TC_SH_HSS_SN_09() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_SN_09() - - function f_TC_SH_HSS_SN_10() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_SN_10() - - function f_TC_SH_HSS_SN_11() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_SN_11() - - function f_TC_SH_HSS_SN_12() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_SN_12() - - function f_TC_SH_HSS_SN_13() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_SN_13() - - } // End of group TP_HSSRole_SubscriptionNofification - - group TP_HSSRole_PushNofification { //Sh Messages - - function f_TC_SH_HSS_PN_01() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_PN_01() - - function f_TC_SH_HSS_PN_02() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_HSS_PN_02() - - } // End of group TP_HSSRole_PushNofification - - } // End of group TP_HSSRole - - group TP_SH_AS_Role { // §5.2.2.2 - - group TP_ASRole_MessageSyntax{ - - function f_TC_SH_AS_MS_01() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_HSS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - f_send_PNR( - md_pNR( - vc_sessionId, - md_pnrBodyAvps( - 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 - // not containing a User-Identity AVP - // Containing a User-Data AVP - ) - ) - ); - - f_awaiting_PNA( - mdw_pNA( - vc_sessionId, // containing a Session-ID AVP - mw_PNA_ResulFaile( - mw_resultCode( - DIAMETER_MISSING_AVP_E // containing a Result-Code AVP - // indicating DIAMETER_MISSING_AVP - ), - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT, - { - mw_failed( // containing a Failed AVP - { - mw_avpType( // indicating missing Visited-Network-Identifier AVP - mw_aVP_Header_any_Code( - c_user_Identity_AVP_Code - ))}) - } - ))); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_HSS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_AS_MS_01() - - } // End of group TP_ASRole_MessageSyntax - - group TP_ASRole_UserData{ - - function f_TC_SH_AS_UD_01() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_HSS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - // TestBody - // to indicate a user data handling procedure - action("The IUT is requested to indicate a user data handling procedure"); - // Clause 'then': the IUT sends an UD-Request and receives an UD-Answer - f_awaiting_UDR( - mdw_uDR_Header_UDRBody( - ?, - ?, // containing a Session-ID AVP - mdw_udrBodyAvps( - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT, // containing an Origin-Realm AVP - vc_destinationRealm_IUT, // containing a Destination-Realm AVP - // containing a User-Identity AVP - m_data_Reference_dummy // containing a Data-Reference AVP - // indicating RepositoryData (0) - ))); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_send_UDA( - md_uDA( - vc_sessionId, // Set in f_awaiting_UDR - md_udaBodyAvps( - m_resultCode(DIAMETER_SUCCESS_E), - vc_originHost, - vc_originRealm - ))); - f_postamble_Sh_HSS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_AS_UD_01() - - function f_TC_SH_AS_UD_02() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_HSS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - // TestBody - // to indicate a user data handling procedure - action("The IUT is requested to indicate a repository data within user data handling procedure"); - // Clause 'then': the IUT sends an UD-Request and receives an UD-Answer - f_awaiting_UDR( - mdw_uDR_Header_UDRBody( - ?, - ?, // containing a Session-ID AVP - mdw_udrBodyAvps_handling_procedure( - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT, // containing an Origin-Realm AVP - vc_destinationRealm_IUT, // containing a Destination-Realm AVP - // containing a User-Identity AVP - m_data_Reference_dummy // containing a Data-Reference AVP - // containing a Service-Indication AVP - ))); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_send_UDA( - md_uDA( - vc_sessionId, // Set in f_awaiting_UDR - md_udaBodyAvps( - m_resultCode(DIAMETER_SUCCESS_E), - vc_originHost, - vc_originRealm - ))); - f_postamble_Sh_HSS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_AS_UD_02() - - function f_TC_SH_AS_UD_03() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_HSS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - // TestBody - // to indicate a user data handling procedure - action("The IUT is requested to indicate an initial filter criteria within user data handling procedure"); - // Clause 'then': the IUT sends an UD-Request and receives an UD-Answer - f_awaiting_UDR( - mdw_uDR_Header_UDRBody( - ?, - ?, // containing a Session-ID AVP - mdw_udrBodyAvps_initial_filter_criteria( - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT, // containing an Origin-Realm AVP - vc_destinationRealm_IUT, // containing a Destination-Realm AVP - // containing a User-Identity AVP - m_data_Reference_dummy, // containing a Data-Reference AVP - // indicating RepositoryData (0) - m_server_name( // Server-Name AVP - PX_IUT_SIP_URL // indicating SIP URL of the IUT - ) - ))); - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_send_UDA( - md_uDA( - vc_sessionId, // Set in f_awaiting_UDR - md_udaBodyAvps( - m_resultCode(DIAMETER_SUCCESS_E), - vc_originHost, - vc_originRealm - ))); - f_postamble_Sh_HSS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_AS_UD_03() - - function f_TC_SH_AS_UD_04() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_HSS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - // TestBody - // to indicate a user data handling procedure - action("The IUT is requested to indicate a DSAI sends a UD-Request with DSAI-Tag AVP"); - // Clause 'then': the IUT sends an UD-Request and receives an UD-Answer - f_awaiting_UDR( - mdw_uDR_Header_UDRBody( - ?, - ?, // containing a Session-ID AVP - mdw_udrBodyAvps_dsai( - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT, // containing an Origin-Realm AVP - vc_destinationRealm_IUT, // containing a Destination-Realm AVP - // containing a User-Identity AVP - m_data_Reference( // containing a Data-Reference AVP - DSAI_E // indicating DSAI (19) - ), - m_dSAI_Tag_AVP( // containing a DSAI-Tag AVP - PX_DSAI_TAG - ) - ))); - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_send_UDA( - md_uDA( - vc_sessionId, // Set in f_awaiting_UDR - md_udaBodyAvps( - m_resultCode(DIAMETER_SUCCESS_E), - vc_originHost, - vc_originRealm - ))); - f_postamble_Sh_HSS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_AS_UD_04() - - } // End of group TP_ASRole_UserData - - group TP_ASRole_ProfileUpdate { - - function f_TC_SH_AS_PU_01() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_HSS(); - 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_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_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_AS_PU_01() - - } // End of group TP_ASRole_UserData - - group TP_ASRole_SubscriptionNotification{ - - function f_TC_SH_AS_SN_01() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_HSS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_HSS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_AS_SN_01() - - } // End of group TP_ASRole_SubscriptionNotification - - group TP_ASRole_PushNotification{ - - function f_TC_SH_AS_PN_01() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_HSS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_HSS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_SH_AS_PN_01() - - } // End of group TP_ASRole_PushNotification - - } // End of group TP_SH_AS_Role - - } - - group TP_DH_Role { //Dh TCFunctions - - group TP_DH_SLFRole { // §5.2.3.1 - - //group TP_ASRole_MessageSyntax{ - //} // End of group TP_ASRole_MessageSyntax - group TP_SLFRole_UserData{ - - function f_TC_DH_SLF_UD_01() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Dh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - // TestBody - f_send_UDR( - md_uDR( - vc_sessionId, - md_udrBodyAvps( - vc_originHost, // containing an Origin-Host AVP - vc_originRealm, // containing an Origin-Realm AVP - vc_destinationRealm // containing a Destination-Realm AVP - // not containing a User-Identity AVP - // Containing a Data-Reference AVP - ) - ) - ); - - f_awaiting_UDA( - mdw_uDA( - ?, // containing a Session-ID AVP - mdw_udaBodyAvps_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_postamble_Dh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_DH_SLF_UD_01() - - } // End of group TP_SLFRole_UserData - - group TP_SLFRole_ProfileUpdate{ - - function f_TC_DH_SLF_PU_01() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Dh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //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_postamble_Dh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_DH_SLF_PU_01() - - } // End of group TP_SLFRole_UserData - - group TP_SLFRole_SubscriptionNotification{ - - function f_TC_DH_SLF_SN_01() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Dh_AS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Dh_AS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_DH_SLF_SN_01() - - } // End of group TP_SLFRole_SubscriptionNotification - - } // End of group TP_SLFRole - - group TP_DH_ASRole { // §5.2.3.2 - - //group TP_ASRole_MessageSyntax{ - //} // End of group TP_ASRole_MessageSyntax - group TP_ASRole_UserData{ - - function f_TC_DH_AS_UD_01() 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 user data handling procedure - action("The IUT is requested to indicate a user data handling procedure"); - // Clause 'then': the IUT sends an UD-Request to the SLF - f_awaiting_UDR( - mdw_uDR_Header_UDRBody( - ?, - ?, // containing a Session-ID AVP - mdw_udrBodyAvps( - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT, // containing an Origin-Realm AVP - vc_destinationRealm_IUT // containing a Destination-Realm AVP - ))); - // on receipt of a UD-Answer from the SLF - f_send_UDA( - md_uDA( - vc_sessionId, // Set in f_awaiting_UDR - md_udaBodyAvps_redirect( - m_resultCode(DIAMETER_REDIRECT_INDICATION_E), - vc_originHost, // containing an Origin-Host AVP - vc_originRealm, // containing an Origin-Realm AVP - m_redirect_host( // containing a Redirect-Host AVP - PX_HSS_IDENTITY// indicating the HSS identity to be used - ) - ))); - - 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_UD_01() - - function f_TC_DH_AS_UD_01_HSS() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Sh_HSS(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - // TestBody - - f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); - - f_awaiting_UDR( - mdw_uDR_Header_UDRBody( - ?, - ?, // containing a Session-ID AVP - mdw_udrBodyAvps( - vc_originHost_IUT, // containing an Origin-Host AVP - vc_originRealm_IUT, // containing an Origin-Realm AVP - vc_destinationRealm_IUT, // containing a Destination-Realm AVP - // containing a User-Identity AVP - m_data_Reference_dummy // containing a Data-Reference AVP - // indicating RepositoryData (0) - ))); - - f_send_UDA( - md_uDA( - vc_sessionId, // Set in f_awaiting_UDR - md_udaBodyAvps( - m_resultCode(DIAMETER_SUCCESS_E), - vc_originHost, - vc_originRealm - ))); - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - f_postamble_Sh_HSS(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // End of function f_TC_DH_AS_UD_01_HSS() - - } // End of group TP_ASRole_UserData - - group TP_ASRole_ProfileUpdate{ - - function f_TC_DH_AS_PU_01() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Dh_SLF(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - // 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_postamble_Dh_SLF(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); - - } // 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 - - group TP_ASRole_SubscriptionNotification{ - - function f_TC_DH_AS_SN_01() runs on DiameterShDh { - // Local variables - - // Preamble - f_preamble_Dh_SLF(); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); - log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - //TODO TestBody - - 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_SN_01() - - } // End of group TP_ASRole_SubscriptionNotification - - } // End of group TP_DH_ASRole - - } // End of group TP_Dh_Role - +module DiameterShDh_TCFunctions { + + // LibCommon + import from LibCommon_Sync all; + import from LibCommon_VerdictControl all; + + // LibDiameter + import from LibDiameter_PIXITS all; + import from LibDiameter_TypesAndValues all; + import from LibDiameter_Types_Base_AVPs all; + import from LibDiameter_Types_ShDh_AVPs all; + import from LibDiameter_Templates all; + import from LibDiameter_Interface all; + import from LibDiameter_Steps all; + + //DiameterShDh + import from DiameterShDh_Templates all; + import from DiameterShDh_Steps all; + import from DiameterShDh_PIXITS all; + import from DiameterShDh_TestSystem all; + + // 5.2.2.1. CDF Role + group TP_SH_Role { + + // 5.2.2.1 + group TP_SH_HSS_Role { + + // 5.2.2.1.2 Message Syntax + /** + * + * @desc 5.2.2.1.2 Message Syntax + */ + group TP_SH_HSS_MS { + + /** + * @desc Verify that the IUT can successfully process all mandatory AVPs in an AC-Request received due to Charging Data Transfer + * @verdict pass on success, fail on error or inconc on timeout only + */ + function f_TC_SH_HSS_MS_01() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + f_send_UDR( + md_uDR( + vc_sessionId, + md_udrBodyAvps( + vc_originHost, // containing an Origin-Host AVP + vc_originRealm, // containing an Origin-Realm AVP + vc_destinationRealm // containing a Destination-Realm AVP + // not containing a User-Identity AVP + // Containing a Data-Reference AVP + ) + ) + ); + + f_awaiting_UDA( + mdw_uDA( + vc_sessionId, // containing a Session-ID AVP + mw_UDA_ResulFaile( + mw_resultCode( + DIAMETER_MISSING_AVP_E // containing a Result-Code AVP + // indicating DIAMETER_MISSING_AVP + ), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT, + { + mw_failed( // containing a Failed AVP + { + mw_avpType( // indicating missing Visited-Network-Identifier AVP + mw_aVP_Header_any_Code( + c_user_Identity_AVP_Code + ))}) + } + ))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_MS_01 + + } + + group TP_HSSRole_UserData { //Sh Messages + + function f_TC_SH_HSS_UD_01() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + f_send_UDR( + md_uDR( + vc_sessionId, + md_udrBodyAvps( + vc_originHost, // containing an Origin-Host AVP + vc_originRealm, // containing an Origin-Realm AVP + vc_destinationRealm, // containing a Destination-Realm AVP + m_specific_user_Identity( + m_public_user_identity + ) + ) + ) + ); + + f_awaiting_UDA( + mdw_uDA( + vc_sessionId, // containing a Session-ID AVP + mdw_udaBodyAvps( + mw_resultCode(DIAMETER_SUCCESS_E), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + )) + ); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_UD_01() + + function f_TC_SH_HSS_UD_02() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + f_send_UDR( + md_uDR( + vc_sessionId, + md_udrBodyAvps( + vc_originHost, // containing an Origin-Host AVP + vc_originRealm, // containing an Origin-Realm AVP + vc_destinationRealm, // containing a Destination-Realm AVP + m_specific_user_Identity ( + m_public_user_identity(PX_NotExistingUserIdentity) + ) + ) + ) + ); + + + f_awaiting_UDA( + mdw_uDA( + vc_sessionId, // containing a Session-ID AVP + mdw_udaBodyExperimentalAvps( + mw_experimentalResult(DIAMETER_ERROR_USER_DATA_CANNOT_BE_READ_E), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + ))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_UD_02() + + function f_TC_SH_HSS_UD_03() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + + f_send_UDR( + md_uDR( + vc_sessionId, + md_udrBodyAvps( + vc_originHost, // containing an Origin-Host AVP + vc_originRealm, // containing an Origin-Realm AVP + vc_destinationRealm, // containing a Destination-Realm AVP + m_specific_user_Identity ( + m_public_user_identity(PX_NotExistingUserIdentity) + ) + ) + ) + ); + + f_awaiting_UDA( + mdw_uDA( + vc_sessionId, // containing a Session-ID AVP + mdw_udaBodyExperimentalAvps( + mw_experimentalResult(DIAMETER_ERROR_USER_UNKNOWN_E), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + ))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_UD_03() + + function f_TC_SH_HSS_UD_04() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + f_send_UDR( + md_uDR( + vc_sessionId, + md_udrBodyAvps( + vc_originHost, // containing an Origin-Host AVP + vc_originRealm, // containing an Origin-Realm AVP + vc_destinationRealm, // containing a Destination-Realm AVP + m_specific_user_Identity ( + m_public_user_identity(PX_NotRelatedPrivateIdentity) + ) + ) + ) + ); + + f_awaiting_UDA( + mdw_uDA( + vc_sessionId, // containing a Session-ID AVP + mdw_udaBodyExperimentalAvps( + mw_experimentalResult(DIAMETER_ERROR_IDENTITIES_DONT_MATCH_E), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + ))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_UD_04() + + function f_TC_SH_HSS_UD_05() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + f_send_UDR( + md_uDR( + vc_sessionId, + md_udrBodyAvps( + vc_originHost, // containing an Origin-Host AVP + vc_originRealm, // containing an Origin-Realm AVP + vc_destinationRealm, // containing a Destination-Realm AVP + m_specific_user_Identity ( + m_public_user_identity(PX_PublicUser_MSISDN) + ) + ) + ) + ); + + f_awaiting_UDA( + mdw_uDA( + vc_sessionId, // containing a Session-ID AVP + mdw_udaBodyExperimentalAvps( + mw_experimentalResult(DIAMETER_ERROR_OPERATION_NOT_ALLOWED_E), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + )) + ); + + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_UD_05() + + function f_TC_SH_HSS_UD_06() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + f_send_UDR( + md_uDR( + vc_sessionId, + md_udrBodyAvps( + vc_originHost, // containing an Origin-Host AVP + vc_originRealm, // containing an Origin-Realm AVP + vc_destinationRealm, // containing a Destination-Realm AVP + m_specific_user_Identity ( + m_public_user_identity(PX_PublicUser_MSISDN) + ) + ) + ) + ); + + f_awaiting_UDA( + mdw_uDA( + vc_sessionId, // containing a Session-ID AVP + mdw_udaBodyExperimentalAvps( + mw_experimentalResult(DIAMETER_ERROR_OPERATION_NOT_ALLOWED_E), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + )) + ); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_UD_06() + + function f_TC_SH_HSS_UD_07() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + f_send_UDR( + md_uDR( + vc_sessionId, + md_udrBodyAvps( + vc_originHost, // containing an Origin-Host AVP + vc_originRealm, // containing an Origin-Realm AVP + vc_destinationRealm, // containing a Destination-Realm AVP + m_specific_user_Identity ( + m_public_user_identity(PX_PublicUser_MSISDN) + ) + ) + ) + ); + + f_awaiting_UDA( + mdw_uDA( + vc_sessionId, // containing a Session-ID AVP + mdw_udaBodyExperimentalAvps( + mw_experimentalResult( + DIAMETER_USER_DATA_NOT_AVAILABLE_E + ), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + )) + ); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_UD_07() + + function f_TC_SH_HSS_UD_08() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + // TestBody + f_send_UDR( + md_uDR( + vc_sessionId, + md_udrBodyAvps( + vc_originHost, // containing an Origin-Host AVP + vc_originRealm, // containing an Origin-Realm AVP + vc_destinationRealm, // containing a Destination-Realm AVP + m_specific_user_Identity ( + m_public_user_identity(PX_PublicUser_MSISDN) + ), + m_data_Reference( // containing an Reference-Data AVP + TADS_INFORMATION_E + // indication TADS_INFORMATION_E + ) + ) + ) + ); + + f_awaiting_UDA( + mdw_uDA( + vc_sessionId, // containing a Session-ID AVP + mdw_udaBodyAvps_user_Data( + ?, + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT, // containing an Origin-Realm AVP + mw_user_Data( // containing an Uswr-Data AVP + '00'O // indicating TADS information + )))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_UD_08 + + function f_TC_SH_HSS_UD_09() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_UD_09() + + function f_TC_SH_HSS_UD_10() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_UD_10() + + function f_TC_SH_HSS_UD_11() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_UD_11() + + function f_TC_SH_HSS_UD_12() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_UD_12() + + function f_TC_SH_HSS_UD_13() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_UD_13() + + function f_TC_SH_HSS_UD_14() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_UD_14() + + function f_TC_SH_HSS_UD_15() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_UD_15() + + function f_TC_SH_HSS_UD_16() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_UD_16() + + function f_TC_SH_HSS_UD_17() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_UD_17() + + function f_TC_SH_HSS_UD_18() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_UD_18() + + function f_TC_SH_HSS_UD_19() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_UD_19() + + function f_TC_SH_HSS_UD_20() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_UD_20() + + function f_TC_SH_HSS_UD_21() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_UD_21() + + function f_TC_SH_HSS_UD_22() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_UD_22() + + function f_TC_SH_HSS_UD_23() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_UD_23() + + function f_TC_SH_HSS_UD_24() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_UD_24() + + } // End of group TP_HSSRole_UserData + + group TP_HSSRole_ProfileUpdate { //Sh Messages + + function f_TC_SH_HSS_PU_01() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //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( + vc_sessionId, // containing a Session-ID AVP + mdw_puaBodyAvps( + mw_resultCode(DIAMETER_SUCCESS_E), + *, + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + )) + ); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_PU_01() + + function f_TC_SH_HSS_PU_02() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //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( + vc_sessionId, // containing a Session-ID AVP + mdw_puaBodyAvps( + ?, + mw_experimentalResult( + DIAMETER_ERROR_USER_DATA_CANNOT_BE_MODIFIED_E + ), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + )) + ); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_PU_02() + + function f_TC_SH_HSS_PU_03() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //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_NotExistingUserIdentity) + ) + ) + ) + ); + + f_awaiting_PUA( + mdw_pUA( + vc_sessionId, // containing a Session-ID AVP + mdw_puaBodyAvps( + *, + mw_experimentalResult(DIAMETER_ERROR_USER_UNKNOWN_E), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + )) + ); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_PU_03() + + function f_TC_SH_HSS_PU_04() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //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_msisdn_user_Identity ( + m_MSISDN_user_identity(char2oct(PX_NotRelatedPrivateIdentity)) + ) + ) + ) + ); + + f_awaiting_PUA( + mdw_pUA( + vc_sessionId, // containing a Session-ID AVP + mdw_puaBodyAvps( + *, + mw_experimentalResult(DIAMETER_ERROR_IDENTITIES_DONT_MATCH_E), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + )) + ); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_PU_04() + + function f_TC_SH_HSS_PU_05() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //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_msisdn_user_Identity ( + m_MSISDN_user_identity(char2oct(PX_PublicUser_MSISDN)) + ), + m_data_Reference(REPOSITORY_DATA_E) + ))); + + f_awaiting_PUA( + mdw_pUA( + vc_sessionId, // containing a Session-ID AVP + mdw_puaBodyAvps( + ?, + mw_experimentalResult( + DIAMETER_ERROR_OPERATION_NOT_ALLOWED_E + ), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + )) + ); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_PU_05() + + function f_TC_SH_HSS_PU_06() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //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_PublicPSIIdentity) //PSI? + ), + m_data_Reference(PSI_ACTIVATION_E), + m_user_Data_dummy + ) + ) + ); + + f_awaiting_PUA( + mdw_pUA( + vc_sessionId, // containing a Session-ID AVP + mdw_puaBodyAvps( + mw_resultCode(DIAMETER_SUCCESS_E), + *, + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + )) + ); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_PU_06() + + function f_TC_SH_HSS_PU_07() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //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_msisdn_user_Identity ( + m_MSISDN_user_identity(char2oct(PX_PublicUser_MSISDN)) + ), + m_data_Reference(PSI_ACTIVATION_E), + m_user_Data_dummy + ) + ) + ); + + f_awaiting_PUA( + mdw_pUA( + vc_sessionId, // containing a Session-ID AVP + mdw_puaBodyAvps( + *, + mw_experimentalResult(DIAMETER_ERROR_OPERATION_NOT_ALLOWED_E), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + )) + ); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_PU_07() + + function f_TC_SH_HSS_PU_08() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //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) + ), + m_data_Reference(DSAI_E), + m_user_Data_dummy//m_user_Data_shData(unichar2oct(encvalue_unichar(m_imsdata_ext2)))//TODO - Commented to avoid ERROR + ) + ) + ); + + f_awaiting_PUA( + mdw_pUA( + vc_sessionId, // containing a Session-ID AVP + mdw_puaBodyAvps( + mw_resultCode(DIAMETER_SUCCESS_E), + *, + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + )) + ); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_PU_08() + + function f_TC_SH_HSS_PU_09() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //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) + ), + m_data_Reference(DSAI_E), + m_user_Data_dummy + ) + ) + ); + + f_awaiting_PUA( + mdw_pUA( + vc_sessionId, // containing a Session-ID AVP + mdw_puaBodyAvps( + *, + mw_experimentalResult(DIAMETER_ERROR_DSAI_NOT_AVAILABLE_E), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + )) + ); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_PU_09() + + function f_TC_SH_HSS_PU_10() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //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) + ), + m_data_Reference(SMS_REGISTRATION_INFO_E), + m_user_Data_shData(char2oct("shimsdata_extension3")) //TODO import XML Schema + ) + ) + ); + + f_awaiting_PUA( + mdw_pUA( + vc_sessionId, // containing a Session-ID AVP + mdw_puaBodyAvps( + mw_resultCode(DIAMETER_SUCCESS_E), + *, + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT, + * + )) + ); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_PU_10() + + function f_TC_SH_HSS_PU_11() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //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) + ), + m_data_Reference(SMS_REGISTRATION_INFO_E), + m_user_Data_shData(char2oct("shimsdata_extension3")) //TODO import XML Schema + ) + ) + ); + + f_awaiting_PUA( + mdw_pUA( + vc_sessionId, // containing a Session-ID AVP + mdw_puaBodyAvps( + mw_resultCode(DIAMETER_SUCCESS_E), + *, + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + )) + ); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_PU_11() + + function f_TC_SH_HSS_PU_12() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //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) + ), + m_data_Reference(STN_SR_E), + m_user_Data_shData(char2oct("shimsdata_extension4_stn-sr")) //TODO import XML Schema + ) + ) + ); + + f_awaiting_PUA( + mdw_pUA( + vc_sessionId, // containing a Session-ID AVP + mdw_puaBodyAvps( + mw_resultCode(DIAMETER_SUCCESS_E), + *, + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + )) + ); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_PU_12() + + function f_TC_SH_HSS_PU_13() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //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) + ), + m_data_Reference(STN_SR_E), + m_user_Data_shData(char2oct("shimsdata_extension4_stn-sr")) //TODO import XML Schema + ) + ) + ); + + f_awaiting_PUA( + mdw_pUA( + vc_sessionId, // containing a Session-ID AVP + mdw_puaBodyAvps( + *, + mw_experimentalResult(DIAMETER_ERROR_OPERATION_NOT_ALLOWED_E), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + )) + ); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_PU_13() + + function f_TC_SH_HSS_PU_14() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //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) + ), + m_data_Reference(REPOSITORY_DATA_E), + m_user_Data_shData(char2oct("shdata_repositorydata_serviceinfo_seqnr")) //TODO import XML Schema + ) + ) + ); + + f_awaiting_PUA( + mdw_pUA( + vc_sessionId, // containing a Session-ID AVP + mdw_puaBodyAvps( + *, + mw_experimentalResult(DIAMETER_PRIOR_UPDATE_IN_PROGRESS_E), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + )) + ); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_PU_14() + + function f_TC_SH_HSS_PU_15() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //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) + ), + m_data_Reference(REPOSITORY_DATA_E), + m_user_Data_shData(char2oct("shdata_repositorydata_serviceinfo_seqnr=0")) //TODO import XML Schema + ) + ) + ); + + f_awaiting_PUA( + mdw_pUA( + vc_sessionId, // containing a Session-ID AVP + mdw_puaBodyAvps( + *, + mw_experimentalResult(DIAMETER_ERROR_TRANSPARENT_DATA_OUT_OF_SYNC_E), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + )) + ); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_PU_15() + + function f_TC_SH_HSS_PU_16() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //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) + ), + m_data_Reference(REPOSITORY_DATA_E), + m_user_Data_shData(char2oct("shdata_repositorydata_serviceinfo_seqnr_servicedata>expected")) //TODO import XML Schema + ) + ) + ); + + f_awaiting_PUA( + mdw_pUA( + vc_sessionId, // containing a Session-ID AVP + mdw_puaBodyAvps( + *, + mw_experimentalResult(DIAMETER_ERROR_TOO_MUCH_DATA_E), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + )) + ); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_PU_16() + + function f_TC_SH_HSS_PU_17() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //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) + ), + m_data_Reference(REPOSITORY_DATA_E), + m_user_Data_shData(char2oct("shdata_repositorydata_serviceinfo_seqnr!=0")) //TODO import XML Schema + ) + ) + ); + + f_awaiting_PUA( + mdw_pUA( + vc_sessionId, // containing a Session-ID AVP + mdw_puaBodyAvps( + *, + mw_experimentalResult(DIAMETER_ERROR_TRANSPARENT_DATA_OUT_OF_SYNC_E), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + )) + ); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_PU_17() + + function f_TC_SH_HSS_PU_18() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //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) + ), + m_data_Reference(REPOSITORY_DATA_E), + m_user_Data_shData(char2oct("shdata_repositorydata_serviceinfo_seqnr_servicedata=empty")) //TODO import XML Schema + ) + ) + ); + + f_awaiting_PUA( + mdw_pUA( + vc_sessionId, // containing a Session-ID AVP + mdw_puaBodyAvps( + *, + mw_experimentalResult(DIAMETER_ERROR_OPERATION_NOT_ALLOWED_E), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + )) + ); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_PU_18() + + function f_TC_SH_HSS_PU_19() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //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) + ), + m_data_Reference(REPOSITORY_DATA_E), + m_user_Data_shData(char2oct("shdata_repositorydata_serviceinfo_seqnr_servicedata>expected")) //TODO import XML Schema + ) + ) + ); + + f_awaiting_PUA( + mdw_pUA( + vc_sessionId, // containing a Session-ID AVP + mdw_puaBodyAvps( + *, + mw_experimentalResult(DIAMETER_ERROR_TOO_MUCH_DATA_E), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + )) + ); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_PU_19() + + function f_TC_SH_HSS_PU_20() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //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( + vc_sessionId, // containing a Session-ID AVP + mdw_puaBodyAvps( + mw_resultCode(DIAMETER_UNABLE_TO_COMPLY_E), + *, + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + )) + ); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_PU_20() + + function f_TC_SH_HSS_PU_21() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //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) + ), + m_data_Reference(REPOSITORY_DATA_E), + m_user_Data_shData(char2oct("shdata_repositorydata(0)_serviceinfo_seqnr_servicedata_empty-repositorydata(1)_serviceinfo_seqnr_servicedata_empty")) //TODO import XML Schema + ) + ) + ); + + f_awaiting_PUA( + mdw_pUA( + vc_sessionId, // containing a Session-ID AVP + mdw_puaBodyAvps( + *, + mw_experimentalResult(DIAMETER_ERROR_OPERATION_NOT_ALLOWED_E), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT, + mw_repository_data_id + )) + ); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_PU_21() + + } // End of group TP_HSSRole_ProfileUpdate + + group TP_HSSRole_SubscriptionNofification { //Sh Messages + + function f_TC_SH_HSS_SN_01() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + // TestBody + f_send_SNR( + md_sNR( + vc_sessionId, + md_snrBodyAvps( + vc_originHost, // containing an Origin-Host AVP + vc_originRealm, // containing an Origin-Realm AVP + vc_destinationRealm, // containing a Destination-Realm AVP + m_msisdn_user_Identity ( + m_MSISDN_user_identity(char2oct(PX_NotRelatedPrivateIdentity)) + ), + m_subs_Req_Type(SUBSCRIBE_E), + m_data_Reference(REPOSITORY_DATA_E) + ) + ) + ); + + f_awaiting_SNA( + mdw_sNA( + vc_sessionId, // containing a Session-ID AVP + mdw_snaBodyAvps( + mw_resultCode(DIAMETER_SUCCESS_E), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + )) + ); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_SN_01() + + function f_TC_SH_HSS_SN_02() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + // TestBody + f_send_SNR( + md_sNR( + vc_sessionId, + md_snrBodyAvps( + vc_originHost, // containing an Origin-Host AVP + vc_originRealm, // containing an Origin-Realm AVP + vc_destinationRealm, // containing a Destination-Realm AVP + m_msisdn_user_Identity ( + m_MSISDN_user_identity(char2oct(PX_NotRelatedPrivateIdentity)) + ), + m_subs_Req_Type(SUBSCRIBE_E), + m_data_Reference(LOCATION_INFORMATION_E) + )) + ); + + f_awaiting_SNA( + mdw_sNA( + vc_sessionId, // containing a Session-ID AVP + mdw_snaBodyAvps_experimental_result( + mw_experimentalResult(DIAMETER_ERROR_USER_DATA_CANNOT_BE_NOTIFIED_E) + )) + + ); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_SN_02() + + function f_TC_SH_HSS_SN_03() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + // TestBody + f_send_SNR( + md_sNR( + vc_sessionId, + md_snrBodyAvps( + vc_originHost, // containing an Origin-Host AVP + vc_originRealm, // containing an Origin-Realm AVP + vc_destinationRealm, // containing a Destination-Realm AVP + m_msisdn_user_Identity ( + m_MSISDN_user_identity(char2oct(PX_NotExistingUserIdentity)) + ) + )) + ); + + f_awaiting_SNA( + mdw_sNA( + vc_sessionId, // containing a Session-ID AVP + mdw_snaBodyAvps_experimental_result( + mw_experimentalResult(DIAMETER_ERROR_USER_UNKNOWN_E) + )) + + ); + + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_SN_03() + + function f_TC_SH_HSS_SN_04() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + // TestBody + f_send_SNR( + md_sNR( + vc_sessionId, + md_snrBodyAvps( + vc_originHost, // containing an Origin-Host AVP + vc_originRealm, // containing an Origin-Realm AVP + vc_destinationRealm, // containing a Destination-Realm AVP + m_msisdn_user_Identity ( + m_MSISDN_user_identity(char2oct(PX_PublicUser_MSISDN)) + ), + -, + m_subs_Req_Type(SUBSCRIBE_E), + m_userName(PX_Private_Identity) + )) + ); + + f_awaiting_SNA( + mdw_sNA( + vc_sessionId, // containing a Session-ID AVP + mdw_snaBodyAvps_experimental_result( + mw_experimentalResult(DIAMETER_ERROR_IDENTITIES_DONT_MATCH_E) + )) + + ); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_SN_04() + + function f_TC_SH_HSS_SN_05() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + // TestBody + f_send_SNR( + md_sNR( + vc_sessionId, + md_snrBodyAvps( + vc_originHost, // containing an Origin-Host AVP + vc_originRealm, // containing an Origin-Realm AVP + vc_destinationRealm, // containing a Destination-Realm AVP + m_msisdn_user_Identity ( + m_MSISDN_user_identity(char2oct(PX_PublicUser_MSISDN)) + ), + m_subs_Req_Type(SUBSCRIBE_E), + m_data_Reference(REPOSITORY_DATA_E) + )) + ); + + f_awaiting_SNA( + mdw_sNA( + vc_sessionId, // containing a Session-ID AVP + mdw_snaBodyAvps_experimental_result( + mw_experimentalResult(DIAMETER_ERROR_OPERATION_NOT_ALLOWED_E) + )) + + ); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_SN_05() + + function f_TC_SH_HSS_SN_06() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_SN_06() + + function f_TC_SH_HSS_SN_07() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_SN_07() + + function f_TC_SH_HSS_SN_08() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_SN_08() + + function f_TC_SH_HSS_SN_09() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_SN_09() + + function f_TC_SH_HSS_SN_10() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_SN_10() + + function f_TC_SH_HSS_SN_11() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_SN_11() + + function f_TC_SH_HSS_SN_12() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_SN_12() + + function f_TC_SH_HSS_SN_13() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_SN_13() + + } // End of group TP_HSSRole_SubscriptionNofification + + group TP_HSSRole_PushNofification { //Sh Messages + + function f_TC_SH_HSS_PN_01() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_PN_01() + + function f_TC_SH_HSS_PN_02() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_HSS_PN_02() + + } // End of group TP_HSSRole_PushNofification + + } // End of group TP_HSSRole + + group TP_SH_AS_Role { // §5.2.2.2 + + group TP_ASRole_MessageSyntax{ + + function f_TC_SH_AS_MS_01() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_HSS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + f_send_PNR( + md_pNR( + vc_sessionId, + md_pnrBodyAvps( + 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 + // not containing a User-Identity AVP + // Containing a User-Data AVP + ) + ) + ); + + f_awaiting_PNA( + mdw_pNA( + vc_sessionId, // containing a Session-ID AVP + mw_PNA_ResulFaile( + mw_resultCode( + DIAMETER_MISSING_AVP_E // containing a Result-Code AVP + // indicating DIAMETER_MISSING_AVP + ), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT, + { + mw_failed( // containing a Failed AVP + { + mw_avpType( // indicating missing Visited-Network-Identifier AVP + mw_aVP_Header_any_Code( + c_user_Identity_AVP_Code + ))}) + } + ))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_HSS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_AS_MS_01() + + } // End of group TP_ASRole_MessageSyntax + + group TP_ASRole_UserData{ + + function f_TC_SH_AS_UD_01() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_HSS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + // TestBody + // to indicate a user data handling procedure + action("The IUT is requested to indicate a user data handling procedure"); + // Clause 'then': the IUT sends an UD-Request and receives an UD-Answer + f_awaiting_UDR( + mdw_uDR_Header_UDRBody( + ?, + ?, // containing a Session-ID AVP + mdw_udrBodyAvps( + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT, // containing an Origin-Realm AVP + vc_destinationRealm_IUT, // containing a Destination-Realm AVP + // containing a User-Identity AVP + m_data_Reference_dummy // containing a Data-Reference AVP + // indicating RepositoryData (0) + ))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_send_UDA( + md_uDA( + vc_sessionId, // Set in f_awaiting_UDR + md_udaBodyAvps( + m_resultCode(DIAMETER_SUCCESS_E), + vc_originHost, + vc_originRealm + ))); + f_postamble_Sh_HSS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_AS_UD_01() + + function f_TC_SH_AS_UD_02() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_HSS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + // TestBody + // to indicate a user data handling procedure + action("The IUT is requested to indicate a repository data within user data handling procedure"); + // Clause 'then': the IUT sends an UD-Request and receives an UD-Answer + f_awaiting_UDR( + mdw_uDR_Header_UDRBody( + ?, + ?, // containing a Session-ID AVP + mdw_udrBodyAvps_handling_procedure( + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT, // containing an Origin-Realm AVP + vc_destinationRealm_IUT, // containing a Destination-Realm AVP + // containing a User-Identity AVP + m_data_Reference_dummy // containing a Data-Reference AVP + // containing a Service-Indication AVP + ))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_send_UDA( + md_uDA( + vc_sessionId, // Set in f_awaiting_UDR + md_udaBodyAvps( + m_resultCode(DIAMETER_SUCCESS_E), + vc_originHost, + vc_originRealm + ))); + f_postamble_Sh_HSS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_AS_UD_02() + + function f_TC_SH_AS_UD_03() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_HSS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + // TestBody + // to indicate a user data handling procedure + action("The IUT is requested to indicate an initial filter criteria within user data handling procedure"); + // Clause 'then': the IUT sends an UD-Request and receives an UD-Answer + f_awaiting_UDR( + mdw_uDR_Header_UDRBody( + ?, + ?, // containing a Session-ID AVP + mdw_udrBodyAvps_initial_filter_criteria( + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT, // containing an Origin-Realm AVP + vc_destinationRealm_IUT, // containing a Destination-Realm AVP + // containing a User-Identity AVP + m_data_Reference_dummy, // containing a Data-Reference AVP + // indicating RepositoryData (0) + m_server_name( // Server-Name AVP + PX_IUT_SIP_URL // indicating SIP URL of the IUT + ) + ))); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_send_UDA( + md_uDA( + vc_sessionId, // Set in f_awaiting_UDR + md_udaBodyAvps( + m_resultCode(DIAMETER_SUCCESS_E), + vc_originHost, + vc_originRealm + ))); + f_postamble_Sh_HSS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_AS_UD_03() + + function f_TC_SH_AS_UD_04() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_HSS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + // TestBody + // to indicate a user data handling procedure + action("The IUT is requested to indicate a DSAI sends a UD-Request with DSAI-Tag AVP"); + // Clause 'then': the IUT sends an UD-Request and receives an UD-Answer + f_awaiting_UDR( + mdw_uDR_Header_UDRBody( + ?, + ?, // containing a Session-ID AVP + mdw_udrBodyAvps_dsai( + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT, // containing an Origin-Realm AVP + vc_destinationRealm_IUT, // containing a Destination-Realm AVP + // containing a User-Identity AVP + m_data_Reference( // containing a Data-Reference AVP + DSAI_E // indicating DSAI (19) + ), + m_dSAI_Tag_AVP( // containing a DSAI-Tag AVP + PX_DSAI_TAG + ) + ))); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_send_UDA( + md_uDA( + vc_sessionId, // Set in f_awaiting_UDR + md_udaBodyAvps( + m_resultCode(DIAMETER_SUCCESS_E), + vc_originHost, + vc_originRealm + ))); + f_postamble_Sh_HSS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_AS_UD_04() + + } // End of group TP_ASRole_UserData + + group TP_ASRole_ProfileUpdate { + + function f_TC_SH_AS_PU_01() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_HSS(); + 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_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_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_AS_PU_01() + + } // End of group TP_ASRole_UserData + + group TP_ASRole_SubscriptionNotification{ + + function f_TC_SH_AS_SN_01() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_HSS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_HSS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_AS_SN_01() + + } // End of group TP_ASRole_SubscriptionNotification + + group TP_ASRole_PushNotification{ + + function f_TC_SH_AS_PN_01() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_HSS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_HSS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_SH_AS_PN_01() + + } // End of group TP_ASRole_PushNotification + + } // End of group TP_SH_AS_Role + + } + + group TP_DH_Role { //Dh TCFunctions + + group TP_DH_SLFRole { // §5.2.3.1 + + //group TP_ASRole_MessageSyntax{ + //} // End of group TP_ASRole_MessageSyntax + group TP_SLFRole_UserData{ + + function f_TC_DH_SLF_UD_01() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Dh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + // TestBody + f_send_UDR( + md_uDR( + vc_sessionId, + md_udrBodyAvps( + vc_originHost, // containing an Origin-Host AVP + vc_originRealm, // containing an Origin-Realm AVP + vc_destinationRealm // containing a Destination-Realm AVP + // not containing a User-Identity AVP + // Containing a Data-Reference AVP + ) + ) + ); + + f_awaiting_UDA( + mdw_uDA( + ?, // containing a Session-ID AVP + mdw_udaBodyAvps_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_postamble_Dh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_DH_SLF_UD_01() + + } // End of group TP_SLFRole_UserData + + group TP_SLFRole_ProfileUpdate{ + + function f_TC_DH_SLF_PU_01() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Dh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //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_postamble_Dh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_DH_SLF_PU_01() + + } // End of group TP_SLFRole_UserData + + group TP_SLFRole_SubscriptionNotification{ + + function f_TC_DH_SLF_SN_01() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Dh_AS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Dh_AS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_DH_SLF_SN_01() + + } // End of group TP_SLFRole_SubscriptionNotification + + } // End of group TP_SLFRole + + group TP_DH_ASRole { // §5.2.3.2 + + //group TP_ASRole_MessageSyntax{ + //} // End of group TP_ASRole_MessageSyntax + group TP_ASRole_UserData{ + + function f_TC_DH_AS_UD_01() 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 user data handling procedure + action("The IUT is requested to indicate a user data handling procedure"); + // Clause 'then': the IUT sends an UD-Request to the SLF + f_awaiting_UDR( + mdw_uDR_Header_UDRBody( + ?, + ?, // containing a Session-ID AVP + mdw_udrBodyAvps( + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT, // containing an Origin-Realm AVP + vc_destinationRealm_IUT // containing a Destination-Realm AVP + ))); + // on receipt of a UD-Answer from the SLF + f_send_UDA( + md_uDA( + vc_sessionId, // Set in f_awaiting_UDR + md_udaBodyAvps_redirect( + m_resultCode(DIAMETER_REDIRECT_INDICATION_E), + vc_originHost, // containing an Origin-Host AVP + vc_originRealm, // containing an Origin-Realm AVP + m_redirect_host( // containing a Redirect-Host AVP + PX_HSS_IDENTITY// indicating the HSS identity to be used + ) + ))); + + 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_UD_01() + + function f_TC_DH_AS_UD_01_HSS() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Sh_HSS(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + // TestBody + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + f_awaiting_UDR( + mdw_uDR_Header_UDRBody( + ?, + ?, // containing a Session-ID AVP + mdw_udrBodyAvps( + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT, // containing an Origin-Realm AVP + vc_destinationRealm_IUT, // containing a Destination-Realm AVP + // containing a User-Identity AVP + m_data_Reference_dummy // containing a Data-Reference AVP + // indicating RepositoryData (0) + ))); + + f_send_UDA( + md_uDA( + vc_sessionId, // Set in f_awaiting_UDR + md_udaBodyAvps( + m_resultCode(DIAMETER_SUCCESS_E), + vc_originHost, + vc_originRealm + ))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + f_postamble_Sh_HSS(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // End of function f_TC_DH_AS_UD_01_HSS() + + } // End of group TP_ASRole_UserData + + group TP_ASRole_ProfileUpdate{ + + function f_TC_DH_AS_PU_01() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Dh_SLF(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + // 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_postamble_Dh_SLF(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); + + } // 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 + + group TP_ASRole_SubscriptionNotification{ + + function f_TC_DH_AS_SN_01() runs on DiameterShDh { + // Local variables + + // Preamble + f_preamble_Dh_SLF(); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + //TODO TestBody + + 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_SN_01() + + } // End of group TP_ASRole_SubscriptionNotification + + } // End of group TP_DH_ASRole + + } // End of group TP_Dh_Role + } // End of module DiameterShDh_TCFunctions \ No newline at end of file -- GitLab From ab09bc8d672254fafdec96e120a1f7dfeb8048e8 Mon Sep 17 00:00:00 2001 From: Steven Ulrich Date: Mon, 18 Feb 2019 13:31:42 +0100 Subject: [PATCH 13/24] added TC TP_SH_HSS_SN_06 --- ttcn/DiameterShDh_TestCases.ttcn3 | 55 ++++++++++++++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/ttcn/DiameterShDh_TestCases.ttcn3 b/ttcn/DiameterShDh_TestCases.ttcn3 index 8562b4b..c33f262 100644 --- a/ttcn/DiameterShDh_TestCases.ttcn3 +++ b/ttcn/DiameterShDh_TestCases.ttcn3 @@ -2780,7 +2780,60 @@ module DiameterShDh_TestCases { f_cf_1Sh_asDown(v_diameterSh_as); - } // End of testcase TP_SH_HSS_SN_05 + } // End of testcase TP_SH_HSS_SN_05 + + /** + * @desc Verify that the IUT, if the Data-Reference is DSAI (19) for the Public Identity and + * there is no instance of DSAI matching the DSAI-Tag contained in the Sh-Subs-Notif command, + * returns an SN-Answer with the appropriate experimental result code. + * + *
+                 * Pics Selection: PICS_HSS_IUT
+                 * Initial conditions: 
+                 *     with {
+                 *        
+                 *     }
+                 * Expected behaviour:
+                 *     Ensure that the IUT
+                 *        on receipt of an SN-Request
+		         *           containing a User-Identity AVP
+			     *               indicating Public Identity
+		         *           containing a Data-Reference AVP
+			     *               indicating DSAI (19)
+		         *           containing a DSAI-Tag AVP
+			     *               indicating not matching DSAI
+	             *        sends an SN-Answer
+		         *           containing an Experimental-Result AVP
+			     *               indicating DIAMETER_ERROR_DSAI_NOT_AVAILABLE.
+
+
+                 * 
+ * + * @version 0.0.7 + * @see ETSI TS 103 571-2 TP_SH_HSS_SN_06 + */ + testcase TP_SH_HSS_SN_06() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + // Test control + if (not PICS_AS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_SN_06()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_SN_06 } // End of group TP_HSSRole_SubscriptionNofification -- GitLab From 4e6adb7bfb7f3ff70a343bcefcc6d5e2db7cea60 Mon Sep 17 00:00:00 2001 From: Steven Ulrich Date: Tue, 19 Feb 2019 08:45:05 +0100 Subject: [PATCH 14/24] Implementation of TC TP_SH_HSS_SN_06 finalized --- ttcn/DiameterShDh_TCFunctions.ttcn3 | 28 ++++++++++++++++++++++++++-- ttcn/DiameterShDh_Templates.ttcn3 | 21 +++++++++++++++++++++ 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/ttcn/DiameterShDh_TCFunctions.ttcn3 b/ttcn/DiameterShDh_TCFunctions.ttcn3 index ee21ced..af8ad29 100644 --- a/ttcn/DiameterShDh_TCFunctions.ttcn3 +++ b/ttcn/DiameterShDh_TCFunctions.ttcn3 @@ -1814,7 +1814,7 @@ module DiameterShDh_TCFunctions { m_MSISDN_user_identity(char2oct(PX_PublicUser_MSISDN)) ), -, - m_subs_Req_Type(SUBSCRIBE_E), + -, m_userName(PX_Private_Identity) )) ); @@ -1885,7 +1885,31 @@ module DiameterShDh_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - //TODO TestBody + // TestBody + f_send_SNR( + md_sNR( + vc_sessionId, + md_snrBodyAvps_DSAI_Tag( + vc_originHost, // containing an Origin-Host AVP + vc_originRealm, // containing an Origin-Realm AVP + vc_destinationRealm, // containing a Destination-Realm AVP + m_msisdn_user_Identity ( + m_MSISDN_user_identity(char2oct(PX_PublicUserIdentity)) + ), + m_data_Reference(DSAI_E), // containing a Data-Reference AVP + m_dSAI_Tag_AVP('01'O) // indicating not matching DSAI + + )) + ); + + f_awaiting_SNA( + mdw_sNA( + vc_sessionId, // containing a Session-ID AVP + mdw_snaBodyAvps_experimental_result( + mw_experimentalResult(DIAMETER_ERROR_DSAI_NOT_AVAILABLE_E) + )) + + ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); diff --git a/ttcn/DiameterShDh_Templates.ttcn3 b/ttcn/DiameterShDh_Templates.ttcn3 index 84e1b80..eb1bfa4 100644 --- a/ttcn/DiameterShDh_Templates.ttcn3 +++ b/ttcn/DiameterShDh_Templates.ttcn3 @@ -366,6 +366,7 @@ module DiameterShDh_Templates { template (value) Subs_Req_Type_AVP p_subs_Req_Type := m_subs_Req_Type_dummy, template (value) Data_Reference_AVP p_data_Reference := m_data_Reference_dummy, template (value) User_Name_AVP p_user_Name := m_user_Name_dummy + ) modifies m_SNR_Body_dummy := { vendor_Specific_Application_Id := m_vendor_Specific_Appl_Id_Sh,//required only in TS129 229 auth_Session_State := m_auth_Session_State, @@ -377,6 +378,26 @@ module DiameterShDh_Templates { data_Reference := {p_data_Reference}, user_Name := p_user_Name } // End of template md_snrBodyAvps + + template (value) SNR_Body_AVP md_snrBodyAvps_DSAI_Tag( + template (value) Origin_Host_AVP p_origin_Host, + template (value) Origin_Realm_AVP p_origin_Realm, + template (value) Destination_Realm_AVP p_destination_Realm, + template (value) User_Identity_AVP p_user_Identity := m_user_Identity_dummy, + template (value) Data_Reference_AVP p_data_Reference := m_data_Reference_dummy, + template (value) DSAI_Tag_AVP p_dsai_tag + + ) modifies m_SNR_Body_dummy := { + vendor_Specific_Application_Id := m_vendor_Specific_Appl_Id_Sh,//required only in TS129 229 + auth_Session_State := m_auth_Session_State, + origin_Host := p_origin_Host, + origin_Realm := p_origin_Realm, + destination_Realm := p_destination_Realm, + user_Identity := p_user_Identity, + data_Reference := {p_data_Reference}, + dSAI_Tag := superset(p_dsai_tag) + + } // End of template md_snrBodyAvps_DSAI_Tag } // End of group snr_msg -- GitLab From 258ce4fd72c68115d570c1f36174f5748f49342f Mon Sep 17 00:00:00 2001 From: Steven Ulrich Date: Tue, 19 Feb 2019 14:19:23 +0100 Subject: [PATCH 15/24] added TC TP_SH_HSS_SN_07 --- ttcn/DiameterShDh_TCFunctions.ttcn3 | 33 +++++++++++++++++- ttcn/DiameterShDh_Templates.ttcn3 | 47 +++++++++++++++++++++++++ ttcn/DiameterShDh_TestCases.ttcn3 | 53 ++++++++++++++++++++++++++++- 3 files changed, 131 insertions(+), 2 deletions(-) diff --git a/ttcn/DiameterShDh_TCFunctions.ttcn3 b/ttcn/DiameterShDh_TCFunctions.ttcn3 index af8ad29..fcb1dfe 100644 --- a/ttcn/DiameterShDh_TCFunctions.ttcn3 +++ b/ttcn/DiameterShDh_TCFunctions.ttcn3 @@ -1927,7 +1927,38 @@ module DiameterShDh_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - //TODO TestBody + timer t1; + f_send_SNR( + md_sNR( + vc_sessionId, + md_snrBodyAvps_Expiry_Time( + vc_originHost, // containing an Origin-Host AVP + vc_originRealm, // containing an Origin-Realm AVP + vc_destinationRealm, // containing a Destination-Realm AVP + m_msisdn_user_Identity ( + m_MSISDN_user_identity(char2oct(PX_PublicUserIdentity)) + ), + m_data_Reference(DSAI_E), // containing a Data-Reference AVP + m_expiry_Time_AVP(120) // indicating not matching DSAI + + )) + ); + + t1.start (120.0); + + f_awaiting_SNA( + mdw_sNA( + vc_sessionId, // containing a Session-ID AVP + mdw_snaBodyExpiryTimeAvps( + mw_resultCode(DIAMETER_SUCCESS_E), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT, + mw_expiry_Time_AVP(120) + )) + + ); + + t1.timeout; f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); diff --git a/ttcn/DiameterShDh_Templates.ttcn3 b/ttcn/DiameterShDh_Templates.ttcn3 index eb1bfa4..d767539 100644 --- a/ttcn/DiameterShDh_Templates.ttcn3 +++ b/ttcn/DiameterShDh_Templates.ttcn3 @@ -147,6 +147,13 @@ module DiameterShDh_Templates { aVP_Data := p_aVP_Data } + template (value) Expiry_Time_AVP m_expiry_Time_AVP( + in template (value) Time p_aVP_Data + ) := { + aVP_Header := m_aVP_HeaderVid_Mbit1(c_expiry_Time_AVP_Code, 4, c_vendId3gpp), + aVP_Data := p_aVP_Data + } + template (value) Redirect_Host_AVP m_redirect_host( in template (value) Diameter_Identity p_aVP_Data ) := { @@ -178,6 +185,13 @@ module DiameterShDh_Templates { aVP_Type := * } + template (value) Expiry_Time_AVP mw_expiry_Time_AVP( + in template (present) Time p_aVP_Data + ) := { + aVP_Header := m_aVP_HeaderVid_Mbit1(c_expiry_Time_AVP_Code, 4, c_vendId3gpp), + aVP_Data := p_aVP_Data + } + } // End of group receivingTemplatesForAVPs } // End of group SpecificAVPHeaders @@ -398,6 +412,26 @@ module DiameterShDh_Templates { dSAI_Tag := superset(p_dsai_tag) } // End of template md_snrBodyAvps_DSAI_Tag + + template (value) SNR_Body_AVP md_snrBodyAvps_Expiry_Time( + template (value) Origin_Host_AVP p_origin_Host, + template (value) Origin_Realm_AVP p_origin_Realm, + template (value) Destination_Realm_AVP p_destination_Realm, + template (value) User_Identity_AVP p_user_Identity := m_user_Identity_dummy, + template (value) Data_Reference_AVP p_data_Reference := m_data_Reference_dummy, + template (value) Expiry_Time_AVP p_expiry_Time + + ) modifies m_SNR_Body_dummy := { + vendor_Specific_Application_Id := m_vendor_Specific_Appl_Id_Sh,//required only in TS129 229 + auth_Session_State := m_auth_Session_State, + origin_Host := p_origin_Host, + origin_Realm := p_origin_Realm, + destination_Realm := p_destination_Realm, + user_Identity := p_user_Identity, + data_Reference := {p_data_Reference}, + expiry_Time := p_expiry_Time + + } // End of template md_snrBodyAvps_DSAI_Tag } // End of group snr_msg @@ -970,6 +1004,19 @@ module DiameterShDh_Templates { origin_Host := p_originHost, origin_Realm := p_originRealm } // End of template mdw_snaBodyAvps + + template (present) SNA_Body_AVP mdw_snaBodyExpiryTimeAvps( + template Result_Code_AVP p_resultCode, + template (present) Origin_Host_AVP p_originHost, + template (present) Origin_Realm_AVP p_originRealm, + template (present) Expiry_Time_AVP p_expiry_Time + + ) modifies mw_SNA_Body_dummy := { + result_Code := p_resultCode, + origin_Host := p_originHost, + origin_Realm := p_originRealm, + expiry_Time := p_expiry_Time + } // End of template mdw_snaBodyExpiryTimeAvps template (present) SNA_Body_AVP mdw_snaBodyAvps_experimental_result( template Experimental_Result_AVP p_experimentalResult diff --git a/ttcn/DiameterShDh_TestCases.ttcn3 b/ttcn/DiameterShDh_TestCases.ttcn3 index c33f262..b12403a 100644 --- a/ttcn/DiameterShDh_TestCases.ttcn3 +++ b/ttcn/DiameterShDh_TestCases.ttcn3 @@ -2833,7 +2833,58 @@ module DiameterShDh_TestCases { f_cf_1Sh_asDown(v_diameterSh_as); - } // End of testcase TP_SH_HSS_SN_06 + } // End of testcase TP_SH_HSS_SN_06 + + + /** + * @desc Verify that the IUT, if the Data-Reference is DSAI (19) for the Public Identity and + * there is no instance of DSAI matching the DSAI-Tag contained in the Sh-Subs-Notif command, + * returns an SN-Answer with the appropriate experimental result code. + * + *
+                 * Pics Selection: PICS_HSS_IUT
+                 * Initial conditions: 
+                 *     with {
+                 *        
+                 *     }
+                 * Expected behaviour:
+                 *    Ensure that the IUT
+	             *       on receipt of an SN-Request
+		         *           containing an Expiry-Time AVP
+	             *       sends an SN-Answer
+		         *           containing an Expiry-Time AVP
+			     *               indicating absolute expiration time
+	             *       not send a PN-Request after time expiration.
+
+
+
+                 * 
+ * + * @version 0.0.7 + * @see ETSI TS 103 571-2 TP_SH_HSS_SN_07 + */ + testcase TP_SH_HSS_SN_07() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + // Test control + if (not PICS_AS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_SN_07()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_SN_07 } // End of group TP_HSSRole_SubscriptionNofification -- GitLab From 9cf803d81ad5a99d2e49fbac2c5c816d0dccc713 Mon Sep 17 00:00:00 2001 From: Steven Ulrich Date: Tue, 19 Feb 2019 14:54:14 +0100 Subject: [PATCH 16/24] correction of m_redirect_host --- ttcn/DiameterShDh_Templates.ttcn3 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ttcn/DiameterShDh_Templates.ttcn3 b/ttcn/DiameterShDh_Templates.ttcn3 index d767539..ae70fb2 100644 --- a/ttcn/DiameterShDh_Templates.ttcn3 +++ b/ttcn/DiameterShDh_Templates.ttcn3 @@ -157,7 +157,7 @@ module DiameterShDh_Templates { template (value) Redirect_Host_AVP m_redirect_host( in template (value) Diameter_Identity p_aVP_Data ) := { - aVP_Header := mw_aVP_HeaderVid_Mbit1(c_redirect_Host_AVP_Code, ?, ?), + aVP_Header := m_aVP_HeaderVid_Mbit1(c_redirect_Host_AVP_Code, 4, c_vendId3gpp), aVP_Data := p_aVP_Data } -- GitLab From 3eb8e036edeaac053ff656a71c26a58006a2ac98 Mon Sep 17 00:00:00 2001 From: Steven Ulrich Date: Tue, 19 Feb 2019 15:19:28 +0100 Subject: [PATCH 17/24] draft for tf f_TC_SH_HSS_SN_07 --- ttcn/DiameterShDh_TCFunctions.ttcn3 | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/ttcn/DiameterShDh_TCFunctions.ttcn3 b/ttcn/DiameterShDh_TCFunctions.ttcn3 index fcb1dfe..558a45f 100644 --- a/ttcn/DiameterShDh_TCFunctions.ttcn3 +++ b/ttcn/DiameterShDh_TCFunctions.ttcn3 @@ -19,6 +19,11 @@ module DiameterShDh_TCFunctions { import from DiameterShDh_PIXITS all; import from DiameterShDh_TestSystem all; + import from NoTargetNamespace language "XSD" all + with { + extension "File:../LibDiameter/xsd/ShDataType_Rel15.xsd"; + } + // 5.2.2.1. CDF Role group TP_SH_Role { @@ -1960,6 +1965,13 @@ module DiameterShDh_TCFunctions { t1.timeout; + // f_awaiting_PNA(mdw_pNR(vc_sessionId, mdw_pnrBodyAvps(?,?,?))); + alt{ + [] DIAMP.receive(PNR_MSG:mdw_pNR(vc_sessionId, mdw_pnrBodyAvps(?,?,?) )) + { setverdict(fail) } + } + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_postamble_Sh_AS(); @@ -2378,7 +2390,7 @@ module DiameterShDh_TCFunctions { f_send_PUA( md_pUA( vc_sessionId, // Set in f_awaiting_PUR - md_udaBodyAvps( + md_puaBodyAvps( m_resultCode(DIAMETER_SUCCESS_E), vc_originHost, vc_originRealm @@ -2694,7 +2706,7 @@ module DiameterShDh_TCFunctions { f_send_PUA( md_pUA( vc_sessionId, // Set in f_awaiting_PUR - md_udaBodyAvps_redirect( + md_puaBodyAvps_redirect( m_resultCode(DIAMETER_REDIRECT_INDICATION_E), vc_originHost, vc_originRealm, @@ -2738,7 +2750,7 @@ module DiameterShDh_TCFunctions { f_send_PUA( md_pUA( vc_sessionId, // Set in f_awaiting_PUR - md_udaBodyAvps( + md_puaBodyAvps( m_resultCode(DIAMETER_SUCCESS_E), vc_originHost, vc_originRealm -- GitLab From a2c0d7c081dfbbb65d32cc915d8ac1957c2ccab3 Mon Sep 17 00:00:00 2001 From: Steven Ulrich Date: Wed, 20 Feb 2019 09:56:56 +0100 Subject: [PATCH 18/24] adjusted code to receive a PN message --- ttcn/DiameterShDh_TCFunctions.ttcn3 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ttcn/DiameterShDh_TCFunctions.ttcn3 b/ttcn/DiameterShDh_TCFunctions.ttcn3 index 558a45f..2c76c54 100644 --- a/ttcn/DiameterShDh_TCFunctions.ttcn3 +++ b/ttcn/DiameterShDh_TCFunctions.ttcn3 @@ -1967,7 +1967,7 @@ module DiameterShDh_TCFunctions { // f_awaiting_PNA(mdw_pNR(vc_sessionId, mdw_pnrBodyAvps(?,?,?))); alt{ - [] DIAMP.receive(PNR_MSG:mdw_pNR(vc_sessionId, mdw_pnrBodyAvps(?,?,?) )) + [] DIAMP.receive(DIAMETER_MSG:{pNR_MSG:=mdw_pNR(vc_sessionId, mdw_pnrBodyAvps(?,?,?) )}) { setverdict(fail) } } -- GitLab From 37460c558fce862ae83b00637e9862522c3af2ff Mon Sep 17 00:00:00 2001 From: Steven Ulrich Date: Wed, 20 Feb 2019 10:11:54 +0100 Subject: [PATCH 19/24] added TC TP_SH_HSS_SN_08 --- ttcn/DiameterShDh_TestCases.ttcn3 | 55 ++++++++++++++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/ttcn/DiameterShDh_TestCases.ttcn3 b/ttcn/DiameterShDh_TestCases.ttcn3 index b12403a..a08bdc1 100644 --- a/ttcn/DiameterShDh_TestCases.ttcn3 +++ b/ttcn/DiameterShDh_TestCases.ttcn3 @@ -2884,7 +2884,60 @@ module DiameterShDh_TestCases { f_cf_1Sh_asDown(v_diameterSh_as); - } // End of testcase TP_SH_HSS_SN_07 + } // End of testcase TP_SH_HSS_SN_07 + + /** + * @desc Verify that the IUT, if the Data-Reference indicates RepositoryData in the request and + * the transparent data associated with the Service indication does not exist in the HSS, returns + * an SN-Answer with the appropriate experimental result code. + * + *
+                 * Pics Selection: PICS_HSS_IUT
+                 * Initial conditions: 
+                 *     with {
+                 *        
+                 *     }
+                 * Expected behaviour:
+                 *   Ensure that the IUT
+	             *     on receipt of an SN-Request
+		         *        containing a User-Identity AVP
+			     *           indicating Public Identity
+		         *        containing a Data-Reference AVP
+			     *           indicating RepositoryData (0)
+		         *        containing a Service-Indication AVP
+			     *           indicating not existing data
+	             *     sends an SN-Answer
+		         *        containing a Session-ID AVP
+		         *        containing an Experimental-Result AVP
+			     *           indicating DIAMETER_ERROR_SUBS_DATA_ABSENT.
+
+                 * 
+ * + * @version 0.0.7 + * @see ETSI TS 103 571-2 TP_SH_HSS_SN_08 + */ + testcase TP_SH_HSS_SN_08() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + // Test control + if (not PICS_AS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_SN_08()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_SN_08 } // End of group TP_HSSRole_SubscriptionNofification -- GitLab From 7a825ea2e727037f24d8355af2dc777731490e80 Mon Sep 17 00:00:00 2001 From: Steven Ulrich Date: Wed, 20 Feb 2019 10:19:02 +0100 Subject: [PATCH 20/24] added TC TP_SH_HSS_SN_09 --- ttcn/DiameterShDh_TestCases.ttcn3 | 64 ++++++++++++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) diff --git a/ttcn/DiameterShDh_TestCases.ttcn3 b/ttcn/DiameterShDh_TestCases.ttcn3 index a08bdc1..becabbc 100644 --- a/ttcn/DiameterShDh_TestCases.ttcn3 +++ b/ttcn/DiameterShDh_TestCases.ttcn3 @@ -2937,7 +2937,69 @@ module DiameterShDh_TestCases { f_cf_1Sh_asDown(v_diameterSh_as); - } // End of testcase TP_SH_HSS_SN_08 + } // End of testcase TP_SH_HSS_SN_08 + + + /** + * @desc Verify that the IUT, if the Subscription request type information element indicates a request to subscribe, + * the IUT associates the AS Identity with the list of entities that need to be notified when the data identified by + * the request is modified and sets the Result-Code to DIAMETER_SUCCESS in the Sh-Subs-Notify response. + * + *
+                 * Pics Selection: PICS_HSS_IUT
+                 * Initial conditions: 
+                 *     with {
+                 *        
+                 *     }
+                 * Expected behaviour:
+                 *   Ensure that the IUT
+	             *     on receipt of an SN-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 Subs-Req-Type AVP
+			     *           indicaining Subscribe (0)
+	             *     sends an SN-Answer
+		         *        containing a Session-ID AVP
+		         *        containing a Result-Code AVP
+			     *           indicating DIAMETER_SUCCESS
+		         *        containing a Vendor-Specific-Application-Id AVP
+		         *        containing an Auth-Session-State AVP
+		         *        containing an Origin-Host AVP
+		         *        containing an Origin-Realm AVP.
+
+
+                 * 
+ * + * @version 0.0.7 + * @see ETSI TS 103 571-2 TP_SH_HSS_SN_09 + */ + testcase TP_SH_HSS_SN_09() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + // Test control + if (not PICS_AS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_SN_09()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_SN_09 } // End of group TP_HSSRole_SubscriptionNofification -- GitLab From af56e218db3cce9895f8bdb79ee1be131b16d84e Mon Sep 17 00:00:00 2001 From: Steven Ulrich Date: Wed, 20 Feb 2019 10:23:26 +0100 Subject: [PATCH 21/24] added TC TP_SH_HSS_SN_10 --- ttcn/DiameterShDh_TestCases.ttcn3 | 62 ++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/ttcn/DiameterShDh_TestCases.ttcn3 b/ttcn/DiameterShDh_TestCases.ttcn3 index becabbc..5fa0a21 100644 --- a/ttcn/DiameterShDh_TestCases.ttcn3 +++ b/ttcn/DiameterShDh_TestCases.ttcn3 @@ -2999,7 +2999,67 @@ module DiameterShDh_TestCases { f_cf_1Sh_asDown(v_diameterSh_as); - } // End of testcase TP_SH_HSS_SN_09 + } // End of testcase TP_SH_HSS_SN_09 + + /** + * @desc Verify that the IUT, if the Subscription request type information element indicates + * a request to unsubscribe, removes the association of the AS Identity with the same list and + * sets the Result-Code to DIAMETER_SUCCESS in the Sh-Subs-Notify response + * + *
+                 * Pics Selection: PICS_HSS_IUT
+                 * Initial conditions: 
+                 *     with {
+                 *        
+                 *     }
+                 * Expected behaviour:
+                 *   Ensure that the IUT
+	             *     on receipt of an SN-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 Subs-Req-Type AVP
+			     *           indicaining Unsubscribe (1)
+	             *     sends an SN-Answer
+		         *        containing a Session-ID AVP
+		         *        containing a Result-Code AVP
+			     *           indicating DIAMETER_SUCCESS
+		         *        containing a Vendor-Specific-Application-Id AVP
+		         *        containing an Auth-Session-State AVP
+		         *        containing an Origin-Host AVP
+		         *        containing an Origin-Realm AVP
+
+                 * 
+ * + * @version 0.0.7 + * @see ETSI TS 103 571-2 TP_SH_HSS_SN_10 + */ + testcase TP_SH_HSS_SN_10() runs on DiameterShDh system TestAdapter { + // Local variables + var DiameterShDh v_diameterSh_as; + + // Test control + if (not PICS_AS_IUT) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1Sh_asUp(v_diameterSh_as); + + // Start + v_diameterSh_as.start(f_TC_SH_HSS_SN_10()); + + // synchronize PTC on 1 sychronization points + f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); + + f_cf_1Sh_asDown(v_diameterSh_as); + + } // End of testcase TP_SH_HSS_SN_10 } // End of group TP_HSSRole_SubscriptionNofification -- GitLab From 1cc140400621676b6ff6d5686199cda68d3a76da Mon Sep 17 00:00:00 2001 From: Steven Ulrich Date: Wed, 20 Feb 2019 12:41:17 +0100 Subject: [PATCH 22/24] updated LibDiamter reference --- LibDiameter | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LibDiameter b/LibDiameter index c376d39..30caadd 160000 --- a/LibDiameter +++ b/LibDiameter @@ -1 +1 @@ -Subproject commit c376d39417db95b81b4621bee877e474a1e7236a +Subproject commit 30caadd3d6ff865bf5949ddf966383e5b9c441be -- GitLab From f7ff55db53aebbf76f13b28cdb9b10a79af0d715 Mon Sep 17 00:00:00 2001 From: Steven Ulrich Date: Wed, 20 Feb 2019 13:03:47 +0100 Subject: [PATCH 23/24] Implementation of TC TP_SH_HSS_SN_08 finalized --- LibDiameter | 2 +- ttcn/DiameterShDh_TCFunctions.ttcn3 | 30 +++++++++++++++++++++++++---- ttcn/DiameterShDh_Templates.ttcn3 | 24 +++++++++++++++++++++++ 3 files changed, 51 insertions(+), 5 deletions(-) diff --git a/LibDiameter b/LibDiameter index 30caadd..f7f587e 160000 --- a/LibDiameter +++ b/LibDiameter @@ -1 +1 @@ -Subproject commit 30caadd3d6ff865bf5949ddf966383e5b9c441be +Subproject commit f7f587ec9ed56c1d225ffbf84bb9ee98cb4da6e0 diff --git a/ttcn/DiameterShDh_TCFunctions.ttcn3 b/ttcn/DiameterShDh_TCFunctions.ttcn3 index 2c76c54..c5c7389 100644 --- a/ttcn/DiameterShDh_TCFunctions.ttcn3 +++ b/ttcn/DiameterShDh_TCFunctions.ttcn3 @@ -20,9 +20,9 @@ module DiameterShDh_TCFunctions { import from DiameterShDh_TestSystem all; import from NoTargetNamespace language "XSD" all - with { - extension "File:../LibDiameter/xsd/ShDataType_Rel15.xsd"; - } + with { + extension "File:../LibDiameter/xsd/ShDataType_Rel15.xsd" + } // 5.2.2.1. CDF Role group TP_SH_Role { @@ -1988,7 +1988,29 @@ module DiameterShDh_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - //TODO TestBody + // TestBody + f_send_SNR( + md_sNR( + vc_sessionId, + md_snrBodyAvps_service_Indication( + vc_originHost, // containing an Origin-Host AVP + vc_originRealm, // containing an Origin-Realm AVP + vc_destinationRealm, // containing a Destination-Realm AVP + m_msisdn_user_Identity ( + m_MSISDN_user_identity(char2oct(PX_PublicUserIdentity)) + ), + m_data_Reference(REPOSITORY_DATA_E), + m_service_Indication('00'O) + )) + ); + + f_awaiting_SNA( + mdw_sNA( + vc_sessionId, // containing a Session-ID AVP + mdw_snaBodyAvps_experimental_result( + mw_experimentalResult(DIAMETER_ERROR_SUBS_DATA_ABSENT) + )) + ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); diff --git a/ttcn/DiameterShDh_Templates.ttcn3 b/ttcn/DiameterShDh_Templates.ttcn3 index ae70fb2..5d5de64 100644 --- a/ttcn/DiameterShDh_Templates.ttcn3 +++ b/ttcn/DiameterShDh_Templates.ttcn3 @@ -161,6 +161,10 @@ module DiameterShDh_Templates { aVP_Data := p_aVP_Data } + template Service_Indication_AVP m_service_Indication (in template (value) octetstring p_aVP_Data) + modifies m_service_Indication_dummy := { + aVP_Data := p_aVP_Data + } } // End of group sendingTemplatesForAVPs group receivingTemplatesForAVPs{ @@ -412,6 +416,26 @@ module DiameterShDh_Templates { dSAI_Tag := superset(p_dsai_tag) } // End of template md_snrBodyAvps_DSAI_Tag + + template (value) SNR_Body_AVP md_snrBodyAvps_service_Indication( + template (value) Origin_Host_AVP p_origin_Host, + template (value) Origin_Realm_AVP p_origin_Realm, + template (value) Destination_Realm_AVP p_destination_Realm, + template (value) User_Identity_AVP p_user_Identity := m_user_Identity_dummy, + template (value) Data_Reference_AVP p_data_Reference := m_data_Reference_dummy, + template (value) Service_Indication_AVP p_service_Indication + ) modifies m_SNR_Body_dummy := { + vendor_Specific_Application_Id := m_vendor_Specific_Appl_Id_Sh,//required only in TS129 229 + auth_Session_State := m_auth_Session_State, + origin_Host := p_origin_Host, + origin_Realm := p_origin_Realm, + destination_Realm := p_destination_Realm, + user_Identity := p_user_Identity, + data_Reference := {p_data_Reference}, + service_Indication := {p_service_Indication} + + } // End of template md_snrBodyAvps_DSAI_Tag + template (value) SNR_Body_AVP md_snrBodyAvps_Expiry_Time( template (value) Origin_Host_AVP p_origin_Host, -- GitLab From 255578b149c74344556ed79b4bd82994b2c2ff73 Mon Sep 17 00:00:00 2001 From: Steven Ulrich Date: Wed, 20 Feb 2019 13:37:49 +0100 Subject: [PATCH 24/24] Implementation of TC TP_SH_HSS_SN_09 and TP_SH_HSS_SN_10 finalized --- ttcn/DiameterShDh_TCFunctions.ttcn3 | 50 +++++++++++++++++++++++++++-- 1 file changed, 48 insertions(+), 2 deletions(-) diff --git a/ttcn/DiameterShDh_TCFunctions.ttcn3 b/ttcn/DiameterShDh_TCFunctions.ttcn3 index c5c7389..a4f9056 100644 --- a/ttcn/DiameterShDh_TCFunctions.ttcn3 +++ b/ttcn/DiameterShDh_TCFunctions.ttcn3 @@ -2028,7 +2028,30 @@ module DiameterShDh_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - //TODO TestBody + // TestBody + f_send_SNR( + md_sNR( + vc_sessionId, + md_snrBodyAvps( + vc_originHost, // containing an Origin-Host AVP + vc_originRealm, // containing an Origin-Realm AVP + vc_destinationRealm, // containing a Destination-Realm AVP + m_msisdn_user_Identity ( + m_MSISDN_user_identity(char2oct(PX_NotRelatedPrivateIdentity)) + ), + m_subs_Req_Type(SUBSCRIBE_E) + )) + ); + + f_awaiting_SNA( + mdw_sNA( + vc_sessionId, // containing a Session-ID AVP + mdw_snaBodyAvps( + mw_resultCode(DIAMETER_SUCCESS_E), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + )) + ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); @@ -2046,7 +2069,30 @@ module DiameterShDh_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - //TODO TestBody + // TestBody + f_send_SNR( + md_sNR( + vc_sessionId, + md_snrBodyAvps( + vc_originHost, // containing an Origin-Host AVP + vc_originRealm, // containing an Origin-Realm AVP + vc_destinationRealm, // containing a Destination-Realm AVP + m_msisdn_user_Identity ( + m_MSISDN_user_identity(char2oct(PX_NotRelatedPrivateIdentity)) + ), + m_subs_Req_Type(UNSUBSCRIBE_E) + )) + ); + + f_awaiting_SNA( + mdw_sNA( + vc_sessionId, // containing a Session-ID AVP + mdw_snaBodyAvps( + mw_resultCode(DIAMETER_SUCCESS_E), + vc_originHost_IUT, // containing an Origin-Host AVP + vc_originRealm_IUT + )) + ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); -- GitLab