Commit 50689710 authored by pintar's avatar pintar
Browse files

Tests CDIV_N01_001 - CDIV_N01_004

parent dcf5d7ff
Loading
Loading
Loading
Loading
+221 −19
Original line number Diff line number Diff line
module CDIV_TC_Functions {

	//  TODO before conclusion of project check if some bellow commented library is not used and delete its import
    //import from LibIms_SIPTypesAndValues all;
    import from CDIV_Templates all;
    
    //import from LibSip_SIPTypesAndValues language "TTCN-3:2005" all;
    import from IMS_SS_Functions all;
    import from SS_Ims_PIXITS all;

    //import from SS_Ims_PIXITS all;
    import from LibIms_Steps all;
    import from LibIms_Templates all;
    import from LibIms_Interface all;
    import from LibIms_SIPTypesAndValues all;
    import from LibIms_PIXITS all;
    
    //import from LibIms_Steps all;
    import from LibSip_Steps language "TTCN-3:2005" all;
    import from LibSip_Templates all;
	import from LibSip_SIPTypesAndValues language "TTCN-3:2005" all;

    //import from LibIms_Interface all;
    import from LibCommon_Sync all;

    //import from LibSip_Steps language "TTCN-3:2005" all;

    //import from LibSip_Templates all;
    group SuplementaryService_CDIV {

    //import from LibCommon_Sync all;
    group Netw {	
    group ASdivertingUser_DivProcedures {
        
    //import from LibIms_Templates all;
        function f_TC_CDIV_N01_001(in CSeq p_cSeq) runs on ImsComponent {
            
    //import from IMS_SS_Functions all;
            var CallId v_callId1;
            var CSeq v_cSeq1;
            var HistoryInfo v_historyInfo;
            
    group SuplementaryService_CDIV {
            f_init_ics_scscf(p_cSeq);
            //f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_AS);
            
            // ----  test body  ----->
    
            // send INVITE 1       
            LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_UE2atSUThome);
            f_SendINVITE(m_INVITE_Request_CDIV(
                vc_requestUri, 
                vc_callId, 
                vc_cSeq, 
                vc_from, 
                vc_to, 
                vc_via, 
                vc_contact, 
            	omit, 
                valueof(m_MBody_SDP(vc_sdp_local))
            ));
            v_callId1 := vc_callId;
            v_cSeq1 := vc_cSeq;
            
            //TODO add AS B2B UA behavior
    
            f_awaitingINVITE(mw_INVITE_Request_CDIV(?));
            v_historyInfo := vc_request.msgHeader.historyInfo;
            
            f_sendResponse(m_Response_ext(c_statusLine180, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, f_route(), f_recordroute()));
    		
            f_awaitingResponse(mw_Response_Base(c_statusLine180, vc_callId, vc_cSeq));

            f_sendResponse(m_Response_mbody(c_statusLine200, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, f_route(), f_recordroute(), valueof(m_MBody_SDP(vc_sdp_local))));

            f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq));

            f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via));

            f_awaitingACK(mw_ACK_Request_Base(vc_callId));

            // send INVITE 2       
            LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_UE2atSUThome);
            f_SendINVITE(m_INVITE_Request_CDIV(
                vc_requestUri, 
                vc_callId, 
                vc_cSeq, 
                vc_from, 
                vc_to, 
                vc_via, 
                vc_contact, 
            	v_historyInfo, 
                valueof(m_MBody_SDP(vc_sdp_local))
            ));
            
            f_awaitingINVITE(mw_INVITE_Request_CDIV(?));

			f_sendResponse(m_Response_warning(c_statusLine486, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, m_warning));
    		
            f_awaitingResponse(mw_Response_Base(c_statusLine486, vc_callId, vc_cSeq));

            f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via));

            f_awaitingACK(mw_ACK_Request_Base(vc_callId));

            vc_callId := v_callId1;
            vc_cSeq := v_cSeq1;

            f_SendBYE(m_BYE_Request_Base( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via));

            f_awaitingBYE(mw_BYE_Request_Base(vc_callId));
            
            f_sendResponse(m_Response_Base(c_statusLine200, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via));
            
            f_awaitingResponse(mw_Response_warning(c_statusLine200, vc_callId, vc_cSeq, ?));
    	
            f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
        }// end f_TC_CDIV_N01_001
        
        function f_TC_CDIV_N01_002(in CSeq p_cSeq) runs on ImsComponent {
            
            var HistoryInfo v_historyInfo;
            
            f_init_ics_scscf(p_cSeq);
            //f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_AS);
            
            // ----  test body  ----->
    
            // send INVITE 1       
            LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_UE2atSUThome);
            f_SendINVITE(m_INVITE_Request_CDIV(
                vc_requestUri, 
                vc_callId, 
                vc_cSeq, 
                vc_from, 
                vc_to, 
                vc_via, 
                vc_contact, 
            	omit, 
                valueof(m_MBody_SDP(vc_sdp_local))
            ));
            
            //TODO add AS B2B UA behavior
    
            f_awaitingINVITE(mw_INVITE_Request_CDIV(?));
            
            f_sendResponse(m_Response_ext(c_statusLine180, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, f_route(), f_recordroute()));
    		
            f_awaitingResponse(mw_Response_Base(c_statusLine180, vc_callId, vc_cSeq));

            f_sendResponse(m_Response_warning(c_statusLine480, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, m_warning));
    		
            f_awaitingResponse(mw_Response_Base(c_statusLine480, vc_callId, vc_cSeq));

            f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via));

            f_awaitingACK(mw_ACK_Request_Base(vc_callId));

            f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
        }// end f_TC_CDIV_N01_002
        
        function f_TC_CDIV_N01_003(in CSeq p_cSeq) runs on ImsComponent {
            
            var HistoryInfo v_historyInfo;
            
            f_init_ics_scscf(p_cSeq);
            //f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_AS);
            
            // ----  test body  ----->
    
            // send INVITE 1       
            LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_UE2atSUThome);
            f_SendINVITE(m_INVITE_Request_CDIV(
                vc_requestUri, 
                vc_callId, 
                vc_cSeq, 
                vc_from, 
                vc_to, 
                vc_via, 
                vc_contact, 
            	omit, 
                valueof(m_MBody_SDP(vc_sdp_local))
            ));
            
            //TODO add AS B2B UA behavior
    
            f_awaitingINVITE(mw_INVITE_Request_CDIV(?));
            
            f_sendResponse(m_Response_warning(c_statusLine480, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, m_warning));
    		
            f_awaitingResponse(mw_Response_Base(c_statusLine480, vc_callId, vc_cSeq));

            f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via));

            f_awaitingACK(mw_ACK_Request_Base(vc_callId));

            f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
        }// end f_TC_CDIV_N01_003
        
        function f_TC_CDIV_N01_004(in CSeq p_cSeq) runs on ImsComponent {
            
            var HistoryInfo v_historyInfo;
            
            f_init_ics_scscf(p_cSeq);
            //f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_AS);
            
            // ----  test body  ----->
    
            // send INVITE 1       
            LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_UE2atSUThome);
            f_SendINVITE(m_INVITE_Request_CDIV(
                vc_requestUri, 
                vc_callId, 
                vc_cSeq, 
                vc_from, 
                vc_to, 
                vc_via, 
                vc_contact, 
            	omit, 
                valueof(m_MBody_SDP(vc_sdp_local))
            ));
            
            //TODO add AS B2B UA behavior
    
            f_awaitingINVITE(mw_INVITE_Request_CDIV(?));
            
            f_sendResponse(m_Response_ext(c_statusLine180, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, f_route(), f_recordroute()));
    		
            f_awaitingResponse(mw_Response_Base(c_statusLine180, vc_callId, vc_cSeq));

            f_sendResponse(m_Response_warning(c_statusLine302, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, m_warning));
    		
            f_awaitingResponse(mw_Response_Base(c_statusLine302, vc_callId, vc_cSeq));

            f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via));

            f_awaitingACK(mw_ACK_Request_Base(vc_callId));

            f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
        }// end f_TC_CDIV_N01_004
    
    group Netw {	
    group ASdivertingUser_DivProcedures {
    } //end group ASdivertingUser_DivProcedures
    group ASdivertingUser_NotOrigUser {
    } //end group ASdivertingUser_NotOrigUser
+85 −0
Original line number Diff line number Diff line
/**
 * @desc
 *     
 * 	@author STF 406
 */
module CDIV_Templates{
    
    import from LibSip_SIPTypesAndValues language "TTCN-3:2005" all;

    import from LibSip_Templates all;
        
    template INVITE_Request m_INVITE_Request_CDIV(
        SipUrl p_requestUri, 
        CallId p_callId, 
        CSeq p_cSeq,
        From p_from, 
        To p_to, 
        Via p_via, 
        Contact p_contact,
        template HistoryInfo p_historyInfo,
        MessageBody p_mb
    ) modifies m_INVITE_Request_Base := {
        msgHeader := {
            contentLength	:= {
                fieldName := CONTENT_LENGTH_E, 
                len:= f_MessageBodyLength(p_mb)
            },
            contentType := {
                fieldName := CONTENT_TYPE_E, 
                mediaType :=  c_sdpAplication
            },
            historyInfo := p_historyInfo
        },
        messageBody := p_mb
    }
    
    template INVITE_Request mw_INVITE_Request_CDIV(
    	template HistoryInfo p_historyInfo
    ) modifies mw_INVITE_Request_Base := {
        msgHeader := {
            historyInfo := p_historyInfo
        }
    }
    
    template Response m_Response_warning (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
      From p_from, To p_to, Via p_via, template Warning p_warning) modifies m_Response_Base:=
    {
        msgHeader :={
            warning 		:= p_warning
            }
    }
    template Response mw_Response_warning (template StatusLine p_statusLine, template CallId p_callId,
    	template CSeq p_cSeq, template Warning p_warning) modifies mw_Response_Base:=
	{
    	msgHeader :=
    	{
        	warning 		:= p_warning
  		}
	}
    
    template Warning m_warning := {
      fieldName := WARNING_E,
      warningValue := {
        {
          warnCode := 486,
          warnAgent := {
            hostPort := {
              host := "ETSI",
              portField := omit
            }
          },
          warnText := "Busy Here"
        }
      }
    }
		
    template SipUrl m_SipUrl_NumHostParam(template charstring p_number, template charstring p_host, template SemicolonParam_List p_urlParameters) :=  	//*  SIP-URL with a calling party number
    {
            scheme := c_sipScheme,  		//*  contains "sip"
            userInfo:= {userOrTelephoneSubscriber:=p_number, password:=omit},
            hostPort := {host:=p_host, portField:=c_defaultSipPort},
            urlParameters := p_urlParameters,
            headers := omit
    };
}
 No newline at end of file
+78 −16
Original line number Diff line number Diff line
@@ -35,23 +35,85 @@ module CDIV_TestCases {
		 * @desc TC_CDIV_N01_001
         * @param p_cSeq_s Transaction Id
         */
        testcase TC_CDIV_N01_001(inout CSeq p_cSeq_s) 
        runs on ServerSyncComp
        system TestAdapter {
            //Variables
            var ImsComponent v_imsComponent_ue1, v_imsComponent_ue2;
            f_cf_2UeUp(v_imsComponent_ue1, v_imsComponent_ue2);
        testcase TC_CDIV_N01_001(inout CSeq p_CSeq) runs on ServerSyncComp system TestAdapter {
            // variable declaration
            var ImsComponent v_scscf;
    
            //Start
            f_IncCSeq(p_cSeq_s); //v_imsComponent_ue1.start(f_TC_CDIV_N01_001_UE1(p_cSeq_s));
            f_IncCSeq(p_cSeq_s); //v_imsComponent_ue2.start(f_TC_CDIV_N01_001_UE2(p_cSeq_s));
            // setup test configuration
            f_cf_as_up(v_scscf);
    
            // synchronize both PTCs on 3 sychronization points
            f_serverSync2Clients({c_prDone, c_sync1, c_tbDone});
            // start component
            v_scscf.start(f_TC_CDIV_N01_001(p_CSeq));
	
            f_cf_2UeDown(v_imsComponent_ue1, v_imsComponent_ue2);
            // synchronize component
            f_serverSync1Client({c_tbDone});
	
        } // end TC_CDIV_N01_001
            // tear down test configuration
            f_cf_as_down(v_scscf);
        }
 	        
        /**
         * @desc TC_CDIV_N01_002
         * @param p_cSeq_s Transaction Id
         */
        testcase TC_CDIV_N01_002(inout CSeq p_CSeq) runs on ServerSyncComp system TestAdapter {
            // variable declaration
            var ImsComponent v_scscf;
    
            // setup test configuration
            f_cf_as_up(v_scscf);
    
            // start component
            v_scscf.start(f_TC_CDIV_N01_002(p_CSeq));
	
            // synchronize component
            f_serverSync1Client({c_tbDone});
	
            // tear down test configuration
            f_cf_as_down(v_scscf);
        }
 	        
        /**
         * @desc TC_CDIV_N01_003
         * @param p_cSeq_s Transaction Id
         */
        testcase TC_CDIV_N01_003(inout CSeq p_CSeq) runs on ServerSyncComp system TestAdapter {
            // variable declaration
            var ImsComponent v_scscf;
    
            // setup test configuration
            f_cf_as_up(v_scscf);
    
            // start component
            v_scscf.start(f_TC_CDIV_N01_003(p_CSeq));
	
            // synchronize component
            f_serverSync1Client({c_tbDone});
	
            // tear down test configuration
            f_cf_as_down(v_scscf);
        }
 	        
        /**
         * @desc TC_CDIV_N01_004
         * @param p_cSeq_s Transaction Id
         */
        testcase TC_CDIV_N01_004(inout CSeq p_CSeq) runs on ServerSyncComp system TestAdapter {
            // variable declaration
            var ImsComponent v_scscf;
    
            // setup test configuration
            f_cf_as_up(v_scscf);
    
            // start component
            v_scscf.start(f_TC_CDIV_N01_004(p_CSeq));
	
            // synchronize component
            f_serverSync1Client({c_tbDone});
	
            // tear down test configuration
            f_cf_as_down(v_scscf);
        }
        
    } //end group ASdivertingUser_DivProcedures
    group ASdivertingUser_NotOrigUser {