diff --git a/LibDiameter b/LibDiameter index 29721153dc288decb1f6f29df16becd3141ce12c..f7f587ec9ed56c1d225ffbf84bb9ee98cb4da6e0 160000 --- a/LibDiameter +++ b/LibDiameter @@ -1 +1 @@ -Subproject commit 29721153dc288decb1f6f29df16becd3141ce12c +Subproject commit f7f587ec9ed56c1d225ffbf84bb9ee98cb4da6e0 diff --git a/ttcn/DiameterShDh_PIXITS.ttcn3 b/ttcn/DiameterShDh_PIXITS.ttcn3 index 5beab2be4a28101829c1e7d52b552544a240d7f0..d4dc8ec8085eb59c4bcee2034bbb00a661e6fcde 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 diff --git a/ttcn/DiameterShDh_TCFunctions.ttcn3 b/ttcn/DiameterShDh_TCFunctions.ttcn3 index 9c0c01b79f5d1a5a7dbac6631f09c40cc9dcfd84..a4f9056ea277de4e56bec6a129d5d68a3a67b587 100644 --- a/ttcn/DiameterShDh_TCFunctions.ttcn3 +++ b/ttcn/DiameterShDh_TCFunctions.ttcn3 @@ -1,2638 +1,2865 @@ -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. ***"); - - //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_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. ***"); - - //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_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. ***"); - - //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_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; + + import from NoTargetNamespace language "XSD" all + with { + extension "File:../LibDiameter/xsd/ShDataType_Rel15.xsd" + } + + // 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_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. ***"); + + // 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()); + + 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. ***"); + + 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_awaiting_PNA(mdw_pNR(vc_sessionId, mdw_pnrBodyAvps(?,?,?))); + alt{ + [] DIAMP.receive(DIAMETER_MSG:{pNR_MSG:=mdw_pNR(vc_sessionId, mdw_pnrBodyAvps(?,?,?) )}) + { setverdict(fail) } + } + + + 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. ***"); + + // 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()); + + 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. ***"); + + // 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()); + + 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. ***"); + + // 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()); + + 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_puaBodyAvps( + 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_puaBodyAvps_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_puaBodyAvps( + 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 diff --git a/ttcn/DiameterShDh_Templates.ttcn3 b/ttcn/DiameterShDh_Templates.ttcn3 index 166b35363442f06bd701b8e6090152348f312065..5d5de6467f3caddc413cbfe492046021a054b55f 100644 --- a/ttcn/DiameterShDh_Templates.ttcn3 +++ b/ttcn/DiameterShDh_Templates.ttcn3 @@ -147,13 +147,24 @@ 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 ) := { - 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 } + 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{ @@ -178,6 +189,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 @@ -364,7 +382,9 @@ 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,8 +393,69 @@ 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 + + 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 + + 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, + 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 @@ -947,7 +1028,26 @@ 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 + ) 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 diff --git a/ttcn/DiameterShDh_TestCases.ttcn3 b/ttcn/DiameterShDh_TestCases.ttcn3 index e79d982f6b40ce54649edb54d09e5712dcb524a7..5fa0a21089840f2b246d80bd434a286d337d08d6 100644 --- a/ttcn/DiameterShDh_TestCases.ttcn3 +++ b/ttcn/DiameterShDh_TestCases.ttcn3 @@ -1,3359 +1,3836 @@ -/** - * @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
+                 *                      indicating LocationInformation (14)
+                 *          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_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; + } + + // 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 + + /** + * @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_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 + + /** + * @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 + + /** + * @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 + + + /** + * @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 + + /** + * @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 + + + /** + * @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 + + /** + * @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 + + 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