Commit 08ad62e8 authored by pintar's avatar pintar
Browse files

CDIV_U02_001 - CDIV_U02_003

parent f3847315
Loading
Loading
Loading
Loading
+76 −0
Original line number Diff line number Diff line
@@ -2017,6 +2017,82 @@ module CDIV_TC_Functions {
        }
	} //end group OrigUE
	group DivertingUE {
    
        function f_TC_CDIV_U02_001(CSeq p_CSeq) runs on ImsComponent {
            
            var charstring v_CauseValList[8]:=
                        {"404", "302", "486", "408", "480", "503", "487", "503"};
            f_init_gm_pcscf(p_CSeq);
        
            // ----  preamble   ----->
            f_gm_pcscf_preamble(p_CSeq);
            f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
        
            f_SendMESSAGE(m_MESSAGE_Request_CDIV (vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via,
            										m_HistoryInfo(
                                                        {m_HistoryInfoEntry(m_SipUrl_NumberHostParam(PX_IMS_SUT_UE2_PUBLIC_USER,PX_IMS_SUT_UE2_HOME_DOMAIN,omit),{1},omit),
                                                         m_HistoryInfoEntry(m_SipUrl_NumberHostParam(PX_IMS_SUT_UE3_PUBLIC_USER,PX_IMS_SUT_UE3_HOME_DOMAIN,{mw_Cause(v_CauseValList[PX_TC_VA-1])}),{1,1},omit)    
                                                    })
            									  ));
            
            f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq));
            
            // deregistration of UE
            f_IMS_postamble_awaitDeRegistration();
        }
    
        function f_TC_CDIV_U02_002(CSeq p_CSeq) runs on ImsComponent {
            
            var Diversion_reason_info_type v_ReasonValList[8]:=
                        {int404, int302, int486, int408, int480, int503, int487, int503};
            
            f_init_gm_pcscf(p_CSeq);
        
            // ----  preamble   ----->
            f_gm_pcscf_preamble(p_CSeq);
            f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
        
        	//await SUBSCRIBE
            f_awaitingSUBSCRIBE(mw_SUBSCRIBE_Request_mbody(mw_MBody_XML(mw_XmlBody_CDIVN(mw_comm_div_subs_info
                                            (v_ReasonValList[PX_TC_VA-1])))));
            f_sendResponse(m_Response_Base(c_statusLine200, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via));
            
            f_SendNOTIFY(m_NOTIFY_Request_CDIV(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via,
            m_MBody_XML(m_XmlBody_CDIVN(m_comm_div_ntfy_info(v_ReasonValList[PX_TC_VA-1])))
            ));
                                            
            f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq));
			            							 
            // deregistration of UE
            f_IMS_postamble_awaitDeRegistration();
        }
    
        function f_TC_CDIV_U02_003(CSeq p_CSeq) runs on ImsComponent {
            
            var Diversion_reason_info_type v_ReasonValList[8]:=
                        {int404, int302, int486, int408, int480, int503, int487, int503};
            
            f_init_gm_pcscf(p_CSeq);
        
            // ----  preamble   ----->
            f_gm_pcscf_preamble(p_CSeq);
            f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
        
            //await SUBSCRIBE
            f_awaitingSUBSCRIBE(mw_SUBSCRIBE_Request_mbody(mw_MBody_XML(mw_XmlBody_CDIVN(mw_comm_div_subs_info
                                            (v_ReasonValList[PX_TC_VA-1])))));
            f_sendResponse(m_Response_Base(c_statusLine200, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via));
            
            f_SendNOTIFY(m_NOTIFY_Request_CDIV(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via,
            m_MBody_XML(m_XmlBody_CDIVN(m_comm_div_ntfy_info(v_ReasonValList[PX_TC_VA-1])))
            ));
                                            
            f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq));
			            							 
            // deregistration of UE
            f_IMS_postamble_awaitDeRegistration();
        }
        
	}//end group DivertingUE
 	}// end group User

+74 −2
Original line number Diff line number Diff line
@@ -51,6 +51,25 @@ group MessageTemplates{
        }
    }
    
    template MESSAGE_Request m_MESSAGE_Request_CDIV (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, template HistoryInfo p_historyInfo) modifies m_MESSAGE_Request_Base :=
    {
        msgHeader :=
        {
            historyInfo := p_historyInfo
        }
    }

    template NOTIFY_Request m_NOTIFY_Request_CDIV (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
      From p_from, To p_to, Via p_via,  template MessageBody p_mb) modifies m_NOTIFY_Request_Base :=
    {
        msgHeader :=
        {	
            contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
            contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  "application/comm-div-info+xml"}
        },
        messageBody := p_mb
    }
    
    template SUBSCRIBE_Request m_SUBSCRIBE_Request_CDIV (SipUrl p_requestUri, CallId p_callId, 
        CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact,  template MessageBody p_mb)  modifies m_SUBSCRIBE_Request_Base :=
    {	
@@ -70,6 +89,11 @@ group MessageTemplates{
        messageBody := p_mb
    }

    template SUBSCRIBE_Request mw_SUBSCRIBE_Request_mbody(template MessageBody p_mb) modifies mw_SUBSCRIBE_Request_Base :=
    {
        messageBody := p_mb
    }
    
    template Response m_Response_history (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
      From p_from, To p_to, Via p_via, template HistoryInfo p_historyInfo) modifies m_Response_Base:=
    {
@@ -244,9 +268,57 @@ group MessageTemplates{
          elem := omit
        }
        
        template Comm_div_info_type mw_comm_div_ntfy_info := {
        template Comm_div_info_type mw_comm_div_subs_info(Diversion_reason_info_type p_enumReason) := {
          entity := "entity",
          comm_div_subs_info := 
          { 
            anyAttributes := *,
            comm_div_selection_criteria := 
            {
                anyAttributes:= *,
                originating_user_selection_criteria:= *,
                diverting_user_selection_criteria:= *,
                diverted_to_user_selection_criteria:= *,
                diversion_time_selection_criteria:= *,
                diversion_reason_selection_criteria:= m_reason_type(p_enumReason),
                elem:= *
            },
            comm_div_ntfy_trigger_criteria := {
                anyAttributes := *,
                notification_time_selection_criteria := *,
                presence_status_selection_criteria := *,
                notification_buffer_interval := *,
                elem := *   
            },
            comm_div_info_selection_criteria := *,
            elem := *
          },
          comm_div_ntfy_info := *,
          elem := *
        }
        
        template Comm_div_info_type m_comm_div_ntfy_info(Diversion_reason_info_type p_enumReason) := {
          entity := "entity",
          comm_div_subs_info := omit,
          comm_div_ntfy_info := {
              anyAttributes := omit,
              originating_user_info := omit,
              diverting_user_info := omit,
              diverted_to_user_info := omit,
              diversion_time_info := omit,//"101231235959" yymmddhhmmss
              diversion_reason_info := p_enumReason,
              diversion_rule_info := {
                  anyAttributes := omit,
                  diversion_rule := "Any text"
                },
              elem := omit
          },
          elem := omit
        }
        
        template Comm_div_info_type mw_comm_div_ntfy_info := {
          entity := "entity",
          comm_div_subs_info := *,
          comm_div_ntfy_info := {
              anyAttributes := *,
              originating_user_info := ?,
@@ -260,7 +332,7 @@ group MessageTemplates{
                },
              elem := *
          },
          elem := omit
          elem := *
        }
        
    }//end xmlTemplates group
+63 −0
Original line number Diff line number Diff line
@@ -930,6 +930,69 @@ module CDIV_TestCases {
        
    } //end group OrigUE
    group DivertingUE {
 	        
        /**
         * @desc TC_CDIV_U02_001
         * @param p_cSeq_s Transaction Id
         */
        testcase TC_CDIV_U02_001(inout CSeq p_cSeq) runs on ServerSyncComp system TestAdapter {
            // variable declaration
            var ImsComponent v_pcscf;
        
            // setup test configuration
            f_cf_ue_up(v_pcscf);
        
            // start component
            v_pcscf.start(f_TC_CDIV_U02_001(p_cSeq));
        
            // synchronize component
            f_serverSync1Client({c_prDone, c_tbDone});
        
            // tear down test configuration
            f_cf_ue_down(v_pcscf);
        }
 	        
        /**
         * @desc TC_CDIV_U02_002
         * @param p_cSeq_s Transaction Id
         */
        testcase TC_CDIV_U02_002(inout CSeq p_cSeq) runs on ServerSyncComp system TestAdapter {
            // variable declaration
            var ImsComponent v_pcscf;
        
            // setup test configuration
            f_cf_ue_up(v_pcscf);
        
            // start component
            v_pcscf.start(f_TC_CDIV_U02_002(p_cSeq));
        
            // synchronize component
            f_serverSync1Client({c_prDone, c_tbDone});
        
            // tear down test configuration
            f_cf_ue_down(v_pcscf);
        }
 	        
        /**
         * @desc TC_CDIV_U02_003
         * @param p_cSeq_s Transaction Id
         */
        testcase TC_CDIV_U02_003(inout CSeq p_cSeq) runs on ServerSyncComp system TestAdapter {
            // variable declaration
            var ImsComponent v_pcscf;
        
            // setup test configuration
            f_cf_ue_up(v_pcscf);
        
            // start component
            v_pcscf.start(f_TC_CDIV_U02_003(p_cSeq));
        
            // synchronize component
            f_serverSync1Client({c_prDone, c_tbDone});
        
            // tear down test configuration
            f_cf_ue_down(v_pcscf);
        }
    }//end group DivertingUE
    }// end group User