Commit 0536f513 authored by Yann Garcia's avatar Yann Garcia
Browse files
parents 258af62c 145a034c
Loading
Loading
Loading
Loading
+18 −2
Original line number Original line Diff line number Diff line
@@ -21,6 +21,13 @@ This file provides the list of the TODOs related to the STF 569.


### RNIS
### RNIS


Draft ETSI GS MEC 012 2.0.4

https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisSpecificSubscription_BV.tplan2
https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisSpecificSubscription_BV.tplan2

- TC_MEC_SRV_RNIS_011_OK       <font color="color:green">To be tested</font>

### SAQ
### SAQ


### SRVSUB
### SRVSUB
@@ -29,14 +36,23 @@ This file provides the list of the TODOs related to the STF 569.


### TRAF
### TRAF


### TRANS 
Draft ETSI GS MEC 011 V2.0.9 (2018-10)


https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/remove-401s/Test%20Purposes/SRV/TRAF/PlatTrafficRules.tplan2

- TC_MEC_SRV_TRANS_001_OK       <font color="color:green">To be tested</font>
- TC_MEC_SRV_TRAF_001_OK        <font color="color:green">To be tested</font>
- TC_MEC_SRV_TRAF_002_OK        <font color="color:green">To be tested</font>
- TC_MEC_SRV_TRAF_003_OK        <font color="color:green">To be tested</font>
- TC_MEC_SRV_TRAF_001_NF        <font color="color:green">To be tested</font>

### TRANS 


Draft ETSI GS MEC 011 V2.0.9 (2018-10)
Draft ETSI GS MEC 011 V2.0.9 (2018-10)


https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/remove-401s/Test%20Purposes/SRV/TRANS/PlatTransport.tplan2
https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/remove-401s/Test%20Purposes/SRV/TRANS/PlatTransport.tplan2


- TC_MEC_SRV_TRANS_001_OK       <font color="color:green">To be tested</font>
- TP_MEC_SRV_TRAF_001_OK       <font color="color:green">To be tested</font>


### UEAREASUB
### UEAREASUB


+15 −6
Original line number Original line Diff line number Diff line
@@ -58,21 +58,26 @@ int json_codec::decode (const OCTETSTRING& p_data, LibItsHttp__JsonMessageBodyTy
  // ..and create the decoding buffer
  // ..and create the decoding buffer
  TTCN_Buffer decoding_buffer(OCTETSTRING(str.length(), (const unsigned char*)str.c_str()));
  TTCN_Buffer decoding_buffer(OCTETSTRING(str.length(), (const unsigned char*)str.c_str()));


  if (it->second.find("\"userList\"") != std::string::npos) { // Be carefull to the order
  if (it->second.find("\"userList\"") != std::string::npos) { // Be careful to the order
                                                              // TODO To be refined, find("\"userList\"") is not optimal
                                                              // TODO To be refined, find("\"userList\"") is not optimal
      LocationAPI__TypesAndValues::UserList user_list;
      LocationAPI__TypesAndValues::UserList user_list;
      user_list.decode(LocationAPI__TypesAndValues::UserList_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
      user_list.decode(LocationAPI__TypesAndValues::UserList_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
      msg.userList() = user_list;
      msg.userList() = user_list;
    } else if (it->second.find("\"accessPointList\"") != std::string::npos) { // Be carefull to the order
    } else if (it->second.find("\"accessPointList\"") != std::string::npos) { // Be careful to the order
                                                                              // TODO To be refined, find("\"accessPointList\"") is not optimal
                                                                              // TODO To be refined, find("\"accessPointList\"") is not optimal
    LocationAPI__TypesAndValues::AccessPointList access_point_list;
    LocationAPI__TypesAndValues::AccessPointList access_point_list;
    access_point_list.decode(LocationAPI__TypesAndValues::AccessPointList_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    access_point_list.decode(LocationAPI__TypesAndValues::AccessPointList_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    msg.accessPointList() = access_point_list;
    msg.accessPointList() = access_point_list;
  } else if (it->second.find("\"SubscriptionLinkList\"") != std::string::npos) { // Be carefull to the order
  } else if (it->second.find("\"SubscriptionLinkList\"") != std::string::npos) { // Be careful to the order
                                                                                 // TODO To be refined, find("\"accessPointList\"") is not optimal
                                                                                 // TODO To be refined, find("\"accessPointList\"") is not optimal
    RnisAPI__TypesAndValues::SubscriptionLinkList subscription_link_list;
    RnisAPI__TypesAndValues::SubscriptionLinkList subscription_link_list;
    subscription_link_list.decode(RnisAPI__TypesAndValues::SubscriptionLinkList_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    subscription_link_list.decode(RnisAPI__TypesAndValues::SubscriptionLinkList_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    msg.subscriptionLinkList() = subscription_link_list;
    msg.subscriptionLinkList() = subscription_link_list;
  } else if (it->second.find("\"transportInfoList\"") != std::string::npos) { // Be careful to the order
                                                                              // TODO To be refined, find("\"accessPointList\"") is not optimal
    AppEnablementAPI__TypesAndValues::TransportInfoList transport_info_list;
    transport_info_list.decode(AppEnablementAPI__TypesAndValues::TransportInfoList_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    msg.transportInfoList() = transport_info_list;
  } else if (it->second.find("\"userTrackingSubscription\"") != std::string::npos) {
  } else if (it->second.find("\"userTrackingSubscription\"") != std::string::npos) {
    LocationAPI__TypesAndValues::UserTrackingSubscription user_tracking_subscription;
    LocationAPI__TypesAndValues::UserTrackingSubscription user_tracking_subscription;
    user_tracking_subscription.decode(LocationAPI__TypesAndValues::UserTrackingSubscription_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    user_tracking_subscription.decode(LocationAPI__TypesAndValues::UserTrackingSubscription_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
@@ -85,6 +90,10 @@ int json_codec::decode (const OCTETSTRING& p_data, LibItsHttp__JsonMessageBodyTy
    UEidentityAPI__TypesAndValues::UeIdentityTagInfo ue_identity_tag_info;
    UEidentityAPI__TypesAndValues::UeIdentityTagInfo ue_identity_tag_info;
    ue_identity_tag_info.decode(UEidentityAPI__TypesAndValues::UeIdentityTagInfo_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    ue_identity_tag_info.decode(UEidentityAPI__TypesAndValues::UeIdentityTagInfo_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    msg.ueIdentityTagInfo() = ue_identity_tag_info;
    msg.ueIdentityTagInfo() = ue_identity_tag_info;
  } else if (it->second.find("\"trafficRule\"") != std::string::npos) {
    AppEnablementAPI__TypesAndValues::TrafficRule traffic_rule;
    traffic_rule.decode(AppEnablementAPI__TypesAndValues::TrafficRule_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    msg.trafficRule() = traffic_rule;
  } else if (it->second.find("\"bwInfo\"") != std::string::npos) {
  } else if (it->second.find("\"bwInfo\"") != std::string::npos) {
    BwManagementAPI__TypesAndValues::BwInfo bw_info;
    BwManagementAPI__TypesAndValues::BwInfo bw_info;


+19 −7
Original line number Original line Diff line number Diff line
@@ -7,21 +7,26 @@ LibCommon_Time.PX_TAC := 30.0
LibCommon_Sync.PX_TSYNC_TIME_LIMIT := 30.0;
LibCommon_Sync.PX_TSYNC_TIME_LIMIT := 30.0;
LibCommon_Sync.PX_TSHUT_DOWN_TIME_LIMIT := 30.0;
LibCommon_Sync.PX_TSHUT_DOWN_TIME_LIMIT := 30.0;


LibItsHttp_Pics.PICS_HEADER_HOST := "172.28.4.87"
LibItsHttp_Pics.PICS_HEADER_HOST := "192.168.56.1"
#LibItsHttp_Pics.PICS_HEADER_HOST := "172.28.4.87"
#LibItsHttp_Pics.PICS_HEADER_HOST := "192.168.0.17"
#LibItsHttp_Pics.PICS_HEADER_HOST := "192.168.0.17"


LibItsHttp_Pics.PICS_HEADER_CONTENT_TYPE := "application/json"
LibItsHttp_Pics.PICS_HEADER_CONTENT_TYPE := "application/json"


LibMec_Pics.PICS_MEC_PLAT               := true
LibMec_Pics.PICS_MEC_PLAT               := true
LibMec_Pics.PICS_SERVICES               := true
LibMec_Pics.PICS_SERVICES               := true
LibMec_Pics.PICS_RNIS     := false
LibMec_Pics.PICS_RNIS                   := true
LibMec_Pics.PICS_RNIS_ALL_SUBSCRIPTIONS := true


LocationAPI_Pics.PICS_LOCATION_API_SUPPORTED         := false
LocationAPI_Pics.PICS_LOCATION_API_SUPPORTED         := false


UEidentityAPI_Pics.PICS_UE_IDENTITY_API_SUPPORTED    := true
UEidentityAPI_Pics.PICS_UE_IDENTITY_API_SUPPORTED    := false


BwManagementAPI_Pics.PICS_BWMANAGEMENT_API_SUPPORTED := false
BwManagementAPI_Pics.PICS_BWMANAGEMENT_API_SUPPORTED := false


AppEnablementAPI_Pics.PICS_ENABLE_APP_API_SUPPORTED  := true


[LOGGING]
[LOGGING]
# In this section you can specify the name of the log file and the classes of events
# In this section you can specify the name of the log file and the classes of events
# you want to log into the file or display on console (standard error).
# you want to log into the file or display on console (standard error).
@@ -38,7 +43,7 @@ LogEventTypes:= Yes


[TESTPORT_PARAMETERS]
[TESTPORT_PARAMETERS]
# In this section you can specify parameters that are passed to Test Ports.
# In this section you can specify parameters that are passed to Test Ports.
system.httpPort.params := "HTTP(codecs=json:json_codec)/TCP(debug=1,server=172.28.4.87,port=8081,use_ssl=0)"
system.httpPort.params := "HTTP(codecs=json:json_codec)/TCP(debug=1,server=192.168.56.1,port=8081,use_ssl=0)"


[DEFINE]
[DEFINE]
# In this section you can create macro definitions,
# In this section you can create macro definitions,
@@ -69,7 +74,7 @@ system.httpPort.params := "HTTP(codecs=json:json_codec)/TCP(debug=1,server=172.2
#AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_001_NF
#AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_001_NF
#AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_002_OK
#AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_002_OK
#AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_002_BR
#AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_002_BR
AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_002_PF
#AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_002_PF


#AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UELOC_001_OK
#AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UELOC_001_OK
#AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UELOC_001_BR
#AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UELOC_001_BR
@@ -94,6 +99,13 @@ AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_002_PF
#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UEINFSUB_002_OK
#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UEINFSUB_002_OK
#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UEINFSUB_002_NF
#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UEINFSUB_002_NF


AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_011_OK

#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TRANS_001_OK
#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TRAF_001_OK
#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TRAF_002_OK
#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TRAF_001_NF

[GROUPS]
[GROUPS]
# In this section you can specify groups of hosts. These groups can be used inside the
# In this section you can specify groups of hosts. These groups can be used inside the
# [COMPONENTS] section to restrict the creation of certain PTCs to a given set of hosts.
# [COMPONENTS] section to restrict the creation of certain PTCs to a given set of hosts.
+248 −4
Original line number Original line Diff line number Diff line
@@ -45,7 +45,7 @@ module AtsMec_AppEnablementAPI_TestCases {
        
        
      // Test control
      // Test control
      if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_ENABLE_APP_API_SUPPORTED)) {
      if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_ENABLE_APP_API_SUPPORTED)) {
        log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_LOCATION_API_SUPPORTED required for executing the TC ***");
        log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_ENABLE_APP_API_SUPPORTED required for executing the TC ***");
        setverdict(inconc);
        setverdict(inconc);
        stop;
        stop;
      }
      }
@@ -74,9 +74,8 @@ module AtsMec_AppEnablementAPI_TestCases {
                            mw_http_response(
                            mw_http_response(
                                             mw_http_response_ok(
                                             mw_http_response_ok(
                                                                 mw_http_message_body_json(
                                                                 mw_http_message_body_json(
                                                                                           mw_body_json_transport_info_list(
                                                                                           mw_body_json_transport_info_list
                                                                                                                            { *, mw_transport_info, * }
                                                                                           )))) {
                                                                                                                            ))))) {
          tc_ac.stop;
          tc_ac.stop;
          
          
          log("*** " & testcasename() & ": PASS: IUT successfully responds with a UeIdentityTag ***");
          log("*** " & testcasename() & ": PASS: IUT successfully responds with a UeIdentityTag ***");
@@ -94,4 +93,249 @@ module AtsMec_AppEnablementAPI_TestCases {
    
    
  } // End of group transport_info 
  } // End of group transport_info 
  
  
  group traffic_rules {
    
    /**
     * @desc Check that the IUT responds with a list of available traffic rules when queried by a MEC Application
     * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/TRAF/TrafficRules.tplan2
     */
    testcase TC_MEC_SRV_TRAF_001_OK() runs on HttpComponent system HttpTestAdapter {
      // Local variables
      var HeaderLines v_headers;
        
      // Test control
      if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_ENABLE_APP_API_SUPPORTED)) {
        log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_ENABLE_APP_API_SUPPORTED required for executing the TC ***");
        setverdict(inconc);
        stop;
      }
        
      // Test component configuration
      f_cf_01_http_up();
        
      // Test adapter configuration
        
      // Preamble
      f_init_default_headers_list(-, -, v_headers);
      httpPort.send(
                    m_http_request(
                                   m_http_request_get(
                                                      "/" & PICS_ROOT_API & PX_SVC_MGMT_APP_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/traffic_rules",
                                                      v_headers
                                                      )
                                   )
                    );
      f_selfOrClientSyncAndVerdict(c_prDone, e_success);
      
      // Test Body
      tc_ac.start;
      alt {
        [] httpPort.receive(
                            mw_http_response(
                                             mw_http_response_ok(
                                                                 mw_http_message_body_json(
                                                                                           mw_body_json_traffic_rules_list
                                                                                           )))) {
          tc_ac.stop;
          
          log("*** " & testcasename() & ": PASS: IUT successfully responds with a UeIdentityTag ***");
          f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
        }
        [] tc_ac.timeout {
          log("*** " & testcasename() & ": INCONC: Expected message not received ***");
          f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
        }
      } // End of 'alt' statement
        
      // Postamble
      f_cf_01_http_down();
    } // End of testcase TC_MEC_SRV_TRAF_001_OK
    
    /**
     * @desc Check that the IUT responds with the information on a specific traffic rule when queried by a MEC Application
     * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/TRAF/TrafficRules.tplan2
     */
    testcase TC_MEC_SRV_TRAF_002_OK() runs on HttpComponent system HttpTestAdapter {
      // Local variables
      var HeaderLines v_headers;
        
      // Test control
      if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_ENABLE_APP_API_SUPPORTED)) {
        log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_ENABLE_APP_API_SUPPORTED required for executing the TC ***");
        setverdict(inconc);
        stop;
      }
        
      // Test component configuration
      f_cf_01_http_up();
        
      // Test adapter configuration
        
      // Preamble
      f_init_default_headers_list(-, -, v_headers);
      httpPort.send(
                    m_http_request(
                                   m_http_request_get(
                                                      "/" & PICS_ROOT_API & PX_SVC_MGMT_APP_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/traffic_rules/" & oct2char(unichar2oct(PX_TRAFFIC_RULE_ID, "UTF-8")),
                                                      v_headers
                                                      )
                                   )
                    );
      f_selfOrClientSyncAndVerdict(c_prDone, e_success);
      
      // Test Body
      tc_ac.start;
      alt {
        [] httpPort.receive(
                            mw_http_response(
                                             mw_http_response_ok(
                                                                 mw_http_message_body_json(
                                                                                           mw_body_json_traffic_rule(
                                                                                                                     mw_traffic_rule(
                                                                                                                                     PX_TRAFFIC_RULE_ID
                                                                                                                                     )))))) {
          tc_ac.stop;
          
          log("*** " & testcasename() & ": PASS: IUT successfully responds with a UeIdentityTag ***");
          f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
        }
        [] tc_ac.timeout {
          log("*** " & testcasename() & ": INCONC: Expected message not received ***");
          f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
        }
      } // End of 'alt' statement
        
      // Postamble
      f_cf_01_http_down();
    } // End of testcase TC_MEC_SRV_TRAF_002_OK
    
    /**
     * @desc Check that the IUT updates a specific traffic rule when commanded by a MEC Application
     * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/TRAF/TrafficRules.tplan2
     */
    testcase TC_MEC_SRV_TRAF_003_OK() runs on HttpComponent system HttpTestAdapter {
      // Local variables
      var HeaderLines v_headers;
        
      // Test control
      if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_ENABLE_APP_API_SUPPORTED)) {
        log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_ENABLE_APP_API_SUPPORTED required for executing the TC ***");
        setverdict(inconc);
        stop;
      }
        
      // Test component configuration
      f_cf_01_http_up();
        
      // Test adapter configuration
        
      // Preamble
      f_init_default_headers_list(-, -, v_headers);
      httpPort.send(
                    m_http_request(
                                   m_http_request_post(
                                                       "/" & PICS_ROOT_API & PX_SVC_MGMT_APP_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/traffic_rules/" & oct2char(unichar2oct(PX_TRAFFIC_RULE_ID, "UTF-8")),
                                                       v_headers,
                                                       m_http_message_body_json(
                                                                                m_body_json_traffic_rule(
                                                                                                         m_traffic_rule(
                                                                                                                        PX_TRAFFIC_RULE_ID,
                                                                                                                        -,
                                                                                                                        -,
                                                                                                                        -,
                                                                                                                        DROP
                                                                                                                        )
                                                                                                         )
                                                                                )
                                                       )
                                   )
                    );
      f_selfOrClientSyncAndVerdict(c_prDone, e_success);
      
      // Test Body
      tc_ac.start;
      alt {
        [] httpPort.receive(
                            mw_http_response(
                                             mw_http_response_ok(
                                                                 mw_http_message_body_json(
                                                                                           mw_body_json_traffic_rule(
                                                                                                                     mw_traffic_rule(
                                                                                                                                     PX_TRAFFIC_RULE_ID
                                                                                                                                     )))))) {
          tc_ac.stop;
          
          log("*** " & testcasename() & ": PASS: IUT successfully responds with a UeIdentityTag ***");
          f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
        }
        [] tc_ac.timeout {
          log("*** " & testcasename() & ": INCONC: Expected message not received ***");
          f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
        }
      } // End of 'alt' statement
        
      // Postamble
      f_cf_01_http_down();
    } // End of testcase TC_MEC_SRV_TRAF_003_OK
    
    /**
     * @desc Check that the IUT responds with an error when a request for an unknown URI is sent by a MEC Application
     * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/TRAF/TrafficRules.tplan2
     */
    testcase TC_MEC_SRV_TRAF_001_NF() runs on HttpComponent system HttpTestAdapter {
      // Local variables
      var HeaderLines v_headers;
        
      // Test control
      if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_ENABLE_APP_API_SUPPORTED)) {
        log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_ENABLE_APP_API_SUPPORTED required for executing the TC ***");
        setverdict(inconc);
        stop;
      }
        
      // Test component configuration
      f_cf_01_http_up();
        
      // Test adapter configuration
        
      // Preamble
      f_init_default_headers_list(-, -, v_headers);
      httpPort.send(
                    m_http_request(
                                   m_http_request_get(
                                                      "/" & PICS_ROOT_API & PX_SVC_MGMT_APP_URI & oct2char(unichar2oct(PX_NON_EXISTENT_APP_INSTANCE_ID, "UTF-8")) & "/traffic_rules",
                                                      v_headers
                                                      )
                                   )
                    );
      f_selfOrClientSyncAndVerdict(c_prDone, e_success);
      
      // Test Body
      tc_ac.start;
      alt {
        [] httpPort.receive(
                            mw_http_response(
                                             mw_http_response_404_not_found(
                                                                            mw_http_message_body_json(
                                                                                                      mw_body_json_app_enablement_problem_details(
                                                                                                                                                  mw_problem_details(
                                                                                                                                                                     -, -, 404
                                                                                                                                                                     )))))) {
          tc_ac.stop;
          
          log("*** " & testcasename() & ": PASS: IUT successfully responds with a UeIdentityTag ***");
          f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
        }
        [] tc_ac.timeout {
          log("*** " & testcasename() & ": INCONC: Expected message not received ***");
          f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
        }
      } // End of 'alt' statement
        
      // Postamble
      f_cf_01_http_down();
    } // End of testcase TC_MEC_SRV_TRAF_001_NF
    
  } // End of group traffic_rules
  
} // End of module AtsMec_AppEnablementAPI_TestCases 
} // End of module AtsMec_AppEnablementAPI_TestCases 
+19 −10
Original line number Original line Diff line number Diff line
@@ -7,7 +7,7 @@
 *                 No part may be reproduced except as authorized by written permission.
 *                 No part may be reproduced except as authorized by written permission.
 *                 The copyright and the foregoing restriction extend to reproduction in all media.
 *                 The copyright and the foregoing restriction extend to reproduction in all media.
 *                 All rights reserved.
 *                 All rights reserved.
 *    @see      ETSI GS MEC 003, Draft ETSI GS MEC 013 V2.0.3 (2018-10)
 *    @see      ETSI GS MEC 003, Draft ETSI GS MEC 012 V2.0.3 (2018-10)
 */
 */
module AtsMec_RnisAPI_TestCases {
module AtsMec_RnisAPI_TestCases {
  
  
@@ -34,14 +34,23 @@ module AtsMec_RnisAPI_TestCases {
  import from LibMec_Pics all;
  import from LibMec_Pics all;
  import from LibMec_Pixits all;
  import from LibMec_Pixits all;
  
  
  group me_app_role {
  group rnis {
    
    
    /**
    /**
     * @desc Check that the RNIS service sends all RNIS subscriptions when requested
     * @desc Check that the RNIS service sends the list of links to the relevant RNIS subscriptions when requested.
     * @see https://forge.etsi.org/gitlab/mec/MEC-tests/blob/master/Test%20Purposes/App/Mp1/Rnis/RnisAllSubscriptions_BV.tplan2
     *       Acceptable SUBSCRIPTION_TYPE are the following:
     * @see 
     *       - CellChangeSubscription
     *       - RabEstSubscription
     *       - RabModSubscription
     *       - RabRelSubscription
     *       - MeasRepUeSubscription
     *       - MeasTaSubscription
     *       - CaReconfSubscription
     *       - S1BearerSubscription
     *       - NrMeasRepUeSubscription"
     * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisSpecificSubscription_BV.tplan2
     */
     */
    testcase TC_MEC025_RNIS_SUBSCRIPTION_005() runs on HttpComponent system HttpTestAdapter {
    testcase TC_MEC_SRV_RNIS_011_OK() runs on HttpComponent system HttpTestAdapter {
        // Local variables
        // Local variables
        var HeaderLines v_headers;
        var HeaderLines v_headers;
        var HttpMessage v_response;
        var HttpMessage v_response;
@@ -63,7 +72,7 @@ module AtsMec_RnisAPI_TestCases {
        httpPort.send(
        httpPort.send(
                      m_http_request(
                      m_http_request(
                                     m_http_request_get(
                                     m_http_request_get(
                                                        PX_RNIS_SUBSCRITIONS_URI,
                                                        "/" & PICS_ROOT_API & PX_RNIS_SUBSCRITIONS_URI & "?subscription_type=" & oct2char(unichar2oct(PX_SUBSCRIPTION_TYPE, "UTF-8")),
                                                        v_headers
                                                        v_headers
                                                        )
                                                        )
                                     )
                                     )
@@ -80,7 +89,7 @@ module AtsMec_RnisAPI_TestCases {
                                                                                             mw_body_json_subscriptions_list(
                                                                                             mw_body_json_subscriptions_list(
                                                                                                                             mw_subscriptions_list(
                                                                                                                             mw_subscriptions_list(
                                                                                                                                                   PX_LINKS_SELF,
                                                                                                                                                   PX_LINKS_SELF,
                                                                                                                                                   ?
                                                                                                                                                   { *, mw_subscription(-, CELL_CHANGE), * }
                                                                                                                                                   )))))) -> value v_response {
                                                                                                                                                   )))))) -> value v_response {
            tc_ac.stop;
            tc_ac.stop;
            
            
@@ -95,9 +104,9 @@ module AtsMec_RnisAPI_TestCases {
        
        
        // Postamble
        // Postamble
        f_cf_01_http_down();
        f_cf_01_http_down();
    } // End of testcase TC_MEC025_RNIS_SUBSCRIPTION_005
    } // End of testcase TC_MEC_SRV_RNIS_011_OK
    
    
  } // End of group me_app_role
  } // End of group rnis
  
  
} // End of module AtsMec_RnisAPI_TestCases
} // End of module AtsMec_RnisAPI_TestCases
Loading