Skip to content
Snippets Groups Projects
Commit b27338ee authored by piscione's avatar piscione
Browse files

Merge branch 'TTF_T027' of https://forge.etsi.org/rep/mec/gs032p3-robot-test-suite into TTF_T027

parents a8ac0b59 c3a387cd
No related branches found
No related tags found
1 merge request!3Merge of TT027 branch into master
Showing
with 1190 additions and 243 deletions
......@@ -79,7 +79,7 @@ TC_MEC_MEC016_MEO_UEAPPCTX_002_BR
[Setup] Create application context AppContext.json
Set Suite Variable ${contextId_tbu} ${response['body']['contextId']}
Update application context ${context-id} UpdateAppContext_BR.json
Update application context ${contextId_tbu} UpdateAppContext_BR.json
Check HTTP Response Status Code Is 400
[Teardown] Delete application context ${contextId_tbu}
......@@ -106,7 +106,11 @@ TC_MEC_MEC016_MEO_UEAPPCTX_003_OK
# Preamble
Should Be True ${PIC_MEC_SYSTEM} == 1
Should Be True ${PIC_SERVICES} == 1
Delete application context ${context-id}
[Setup] Create application context AppContext.json
Set Suite Variable ${contextId_tbd} ${response['body']['contextId']}
Delete application context ${contextId_tbd}
Check HTTP Response Status Code Is 204
......
This diff is collapsed.
*** Variables ***
# Generic variables
${AMS_SCHEMA} http
${AMS_HOST} 10.192.2.172
${AMS_PORT} 8081
${AMS_HOST} mockoon
${AMS_PORT} 3006
${response} {}
${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l
${apiRoot}
${apiName}
${apiName} amsi
${apiVersion} v1
# Specific variables
${APP_MOBILITY_SERVICE_ID} KtRGymNQ84dG3mQfRepa
${APP_MOBILITY_SERVICE_ID} APP_MOBILITY_SERVICE_ID
${APP_MOBILITY_SERVICE_ID2} APP_MOBILITY_SERVICE_ID2
${MALFORMED_APP_MOBILITY_SERVICE_ID} MALFORMED_APP_MOBILITY_SERVICE_ID
${APP_MOBILITY_SERVICE_FILTER_APP_MOBILITY_SERVICE_ID} (eq,appMobilityServiceId,APP_MOBILITY_SERVICE_ID)
${APP_MOBILITY_SERVICE_FILTER_SERVICE_CONSUMER_ID} (eq,serviceConsumerId[appInstanceId],5abe4782-2c70-4e47-9a4e-0ee3a1a0fd1f)
${APP_MOBILITY_SERVICE_FILTER_EXCLUDE_FIELDS} (eq,appMobilityServiceId,APP_MOBILITY_SERVICE_ID)&exclude_fields=[serviceConsumerId]
${APP_INS_ID} 5abe4782-2c70-4e47-9a4e-0ee3a1a0fd1f
${SUBSCRIPTION_TYPE} MobilityProcedureSubscription
${SUBSCRIPTION_ID} e0deee2b-6e50-4f33-ab09-8bf0585025d3
......
{
"callbackReference": "http://example.com/callback",
"requestTestNotification": true,
"websockNotifConfig": {
"websocketUri": "ws://example.com/websocket",
"requestWebsocketUri": true
},
"expiryDeadline": {
"seconds": 1644691200,
"nanoSeconds": 0
},
"filterCriteria": {
"appInstanceId": "app-123"
},
"subscriptionType": "AdjacentAppInfoSubscription"
}
\ No newline at end of file
{
"callbackReference": "http://example.com/callback",
"requestTestNotification": true,
"websockNotifConfig": {
"websocketUri": "ws://example.com/websocket",
"requestWebsocketUri": true
},
"expiryDeadline": {
"seconds": 1644691200,
"nanoSeconds": 0
},
"filterCriteria": {
"appInstanceId": "app-123"
},
"subscriptionType": "INVALID_SUBSCRIPTION_TYPE"
}
\ No newline at end of file
{
"serviceConsumerId": {
"appInstanceId": "exampleAppInstanceId",
"mepId": "exampleMepId"
},
"appMobilityServiceId": "exampleAppMobilityServiceId",
"deviceInformation": [
{
"associateId": {
"type": "UE_IPv4_ADDRESS",
"value": "192.168.1.100"
},
"appMobilityServiceLevel": "APP_MOBILITY_NOT_ALLOWED",
"contextTransferState": "NOT_TRANSFERRED"
},
{
"associateId": {
"type": "UE_IPV6_ADDRESS",
"value": "2001:0db8:85a3:0000:0000:8a2e:0370:7334"
},
"appMobilityServiceLevel": "APP_MOBILITY_WITH_CONFIRMATION",
"contextTransferState": "USER_CONTEXT_TRANSFER_COMPLETED"
}
],
"expiryTime": 3600
}
\ No newline at end of file
{
"title": "RegistrationInfo",
"required": [
"serviceConsumerId"
],
"type": "object",
"properties": {
"appMobilityServiceId": {
"type": "string",
"description": "The identifier of registered application mobility service. Shall be absent in POST requests, and present otherwise."
},
"deviceInformation": {
"type": "array",
"items": {
"title": "RegistrationInfo.deviceInformation",
"required": [
"associateId"
],
"type": "object",
"properties": {
"associateId": {
"title": "AssociateId",
"required": [
"type",
"value"
],
"type": "object",
"properties": {
"type": {
"title": "Type",
"enum": [
"UE_IPv4_ADDRESS",
"UE_IPV6_ADDRESS",
"NATED_IP_ADDRESS",
"GTP_TEID"
],
"type": "string",
"description": "Numeric value (0-255) corresponding to specified type of identifier",
"examples": [
"UE_IPv4_ADDRESS"
]
},
"value": {
"type": "string",
"description": "Value for the identifier."
}
}
},
"appMobilityServiceLevel": {
"title": "AppMobilityServiceLevel",
"enum": [
"APP_MOBILITY_NOT_ALLOWED",
"APP_MOBILITY_WITH_CONFIRMATION",
"APP_MOBILITY_WITHOUT_CONFIRMATION"
],
"type": "string",
"description": "This attribute provides an option for the application instance (server) to communicate with the application client before relocating this application instance to another MEC host.",
"examples": [
"APP_MOBILITY_NOT_ALLOWED"
]
},
"contextTransferState": {
"title": "contextTransferState",
"enum": [
"NOT_TRANSFERRED",
"USER_CONTEXT_TRANSFER_COMPLETED"
],
"type": "string",
"description": "If present, it represents the state of transferring the user context to another application instance.",
"examples": [
"NOT_TRANSFERRED"
]
}
}
},
"description": "If present, it specifies the device served by the application instance which is registering is registering the Application Mobility Service."
},
"expiryTime": {
"type": "integer",
"description": "If present, it indicates the time of Application Mobility Service expiration from the time of registration accepted.The value \"0\" means infinite time, i.e. no expiration.The unit of expiry time is one second.",
"contentEncoding": "int32"
},
"serviceConsumerId": {
"title": "RegistrationInfo.serviceConsumerId",
"type": "object",
"properties": {
"appInstanceId": {
"type": "string",
"description": "If present, it represents the identifier of the application instance registering the Application Mobility Service."
},
"mepId": {
"type": "string",
"description": "If present, it represents the identifier of the MEC platform registering the Application Mobility Service."
}
},
"description": "The identifier of service consumer requesting the application mobility service, i.e. either the application instance ID or the MEC platform ID."
}
}
}
\ No newline at end of file
{
"type": "array",
"items": {
"title": "RegistrationInfo",
"required": [
"serviceConsumerId"
],
"type": "object",
"properties": {
"appMobilityServiceId": {
"type": "string",
"description": "The identifier of registered application mobility service. Shall be absent in POST requests, and present otherwise."
},
"deviceInformation": {
"type": "array",
"items": {
"title": "RegistrationInfo.deviceInformation",
"required": [
"associateId"
],
"type": "object",
"properties": {
"associateId": {
"title": "AssociateId",
"required": [
"type",
"value"
],
"type": "object",
"properties": {
"type": {
"title": "Type",
"enum": [
"UE_IPv4_ADDRESS",
"UE_IPV6_ADDRESS",
"NATED_IP_ADDRESS",
"GTP_TEID"
],
"type": "string",
"description": "Numeric value (0-255) corresponding to specified type of identifier",
"examples": [
"UE_IPv4_ADDRESS"
]
},
"value": {
"type": "string",
"description": "Value for the identifier."
}
}
},
"appMobilityServiceLevel": {
"title": "AppMobilityServiceLevel",
"enum": [
"APP_MOBILITY_NOT_ALLOWED",
"APP_MOBILITY_WITH_CONFIRMATION",
"APP_MOBILITY_WITHOUT_CONFIRMATION"
],
"type": "string",
"description": "This attribute provides an option for the application instance (server) to communicate with the application client before relocating this application instance to another MEC host.",
"examples": [
"APP_MOBILITY_NOT_ALLOWED"
]
},
"contextTransferState": {
"title": "contextTransferState",
"enum": [
"NOT_TRANSFERRED",
"USER_CONTEXT_TRANSFER_COMPLETED"
],
"type": "string",
"description": "If present, it represents the state of transferring the user context to another application instance.",
"examples": [
"NOT_TRANSFERRED"
]
}
}
},
"description": "If present, it specifies the device served by the application instance which is registering is registering the Application Mobility Service."
},
"expiryTime": {
"type": "integer",
"description": "If present, it indicates the time of Application Mobility Service expiration from the time of registration accepted.The value \"0\" means infinite time, i.e. no expiration.The unit of expiry time is one second.",
"contentEncoding": "int32"
},
"serviceConsumerId": {
"title": "RegistrationInfo.serviceConsumerId",
"type": "object",
"properties": {
"appInstanceId": {
"type": "string",
"description": "If present, it represents the identifier of the application instance registering the Application Mobility Service."
},
"mepId": {
"type": "string",
"description": "If present, it represents the identifier of the MEC platform registering the Application Mobility Service."
}
},
"description": "The identifier of service consumer requesting the application mobility service, i.e. either the application instance ID or the MEC platform ID."
}
}
},
"description": "",
"contentMediaType": "application/json"
}
\ No newline at end of file
{
"oneOf": [
{
"title": "MobilityProcedureSubscription",
"required": [
"filterCriteria",
"subscriptionType"
],
"type": "object",
"properties": {
"_links": {
"title": "MobilityProcedureSubscription.links",
"required": [
"self"
],
"type": "object",
"properties": {
"self": {
"title": "LinkType",
"required": [
"href"
],
"type": "object",
"properties": {
"href": {
"type": "string",
"description": "The URI referring to the subscription."
}
},
"description": "'This data type represents a type of link'"
}
}
},
"callbackReference": {
"type": "string",
"format": "uri",
"description": "URI selected by the service consumer to receive notifications on the subscribed Application Mobility Service. This shall be included both in the request and in response."
},
"requestTestNotification": {
"type": "boolean",
"description": "Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, specified in ETSI GS MEC 009, as described in clause 6.12a."
},
"websockNotifConfig": {
"description": "Provides details to negotiate and signal the use of a Websocket connection between AMS and the service consumer for notifications.",
"type": "object",
"properties": {
"websocketUri": {
"description": "Set by AMS to indicate to the service consumer the Websocket URI to be used for delivering notifications.",
"type": "string",
"format": "uri"
},
"requestWebsocketUri": {
"type": "boolean",
"description": "Set to true by the service consumer to indicate that Websocket delivery is requested."
}
}
},
"expiryDeadline": {
"description": "Identifies a boundary after which the subscription will expire.",
"title": "TimeStamp",
"required": [
"seconds",
"nanoSeconds"
],
"type": "object",
"properties": {
"seconds": {
"type": "integer",
"description": "'The seconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.'",
"contentEncoding": "int32"
},
"nanoSeconds": {
"type": "integer",
"description": "'The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.'",
"contentEncoding": "int32"
}
}
},
"filterCriteria": {
"title": "MobilityProcedureSubscription.filterCriteria",
"type": "object",
"properties": {
"appInstanceId": {
"type": "string",
"description": "Identifier of the application instance that registers the Application Mobility Service."
},
"associateId": {
"type": "array",
"items": {
"title": "AssociateId",
"required": [
"type",
"value"
],
"type": "object",
"properties": {
"type": {
"title": "Type",
"enum": [
"UE_IPv4_ADDRESS",
"UE_IPV6_ADDRESS",
"NATED_IP_ADDRESS",
"GTP_TEID"
],
"type": "string",
"description": "Numeric value (0-255) corresponding to specified type of identifier",
"examples": [
"UE_IPv4_ADDRESS"
]
},
"value": {
"type": "string",
"description": "Value for the identifier."
}
}
},
"description": "0 to N identifiers to associate the information for specific UE(s) and flow(s)."
},
"mobilityStatus": {
"type": "array",
"items": {
"title": "MobilityStatus",
"enum": [
"INTERHOST_MOVEOUT_TRIGGERED",
"INTERHOST_MOVEOUT_COMPLETED",
"INTERHOST_MOVEOUT_FAILED"
],
"type": "string",
"description": "Indicate the status of the UE mobility",
"examples": [
"INTERHOST_MOVEOUT_TRIGGERED"
]
},
"description": "In case mobilityStatus is not included in the subscription request, the default value 1 = INTER_HOST_MOBILITY_TRIGGERED shall be used and included in the response."
}
},
"description": "List of filtering criteria for the subscription. Any filtering criteria from below, which is included in the request, shall also be included in the response."
},
"subscriptionType": {
"const": "MobilityProcedureSubscription",
"type": "string",
"description": "Shall be set to \"MobilityProcedureSubscription\".",
"examples": [
"MobilityProcedureSubscription"
]
}
}
},
{
"title": "AdjacentAppInfoSubscription",
"required": [
"callbackReference",
"filterCriteria",
"subscriptionType"
],
"type": "object",
"properties": {
"_links": {
"title": "AdjacentAppInfoSubscription.links",
"required": [
"self"
],
"type": "object",
"properties": {
"self": {
"title": "LinkType",
"required": [
"href"
],
"type": "object",
"properties": {
"href": {
"type": "string",
"description": "The URI referring to the subscription."
}
},
"description": "'This data type represents a type of link'"
}
},
"description": "Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests."
},
"callbackReference": {
"type": "string",
"format": "uri",
"description": "URI selected by the service consumer to receive notifications on the subscribed Application Mobility Service. This shall be included both in the request and in response."
},
"requestTestNotification": {
"type": "boolean",
"description": "Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, specified in ETSI GS MEC 009, as described in clause 6.12a."
},
"websockNotifConfig": {
"type": "object",
"properties": {
"websocketUri": {
"description": "Set by AMS to indicate to the service consumer the Websocket URI to be used for delivering notifications.",
"type": "string",
"format": "uri"
},
"requestWebsocketUri": {
"type": "boolean",
"description": "Set to true by the service consumer to indicate that Websocket delivery is requested."
}
}
},
"expiryDeadline": {
"description": "Identifies a boundary after which the subscription will expire.",
"title": "TimeStamp",
"required": [
"seconds",
"nanoSeconds"
],
"type": "object",
"properties": {
"seconds": {
"type": "integer",
"description": "'The seconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.'",
"contentEncoding": "int32"
},
"nanoSeconds": {
"type": "integer",
"description": "'The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.'",
"contentEncoding": "int32"
}
}
},
"filterCriteria": {
"title": "AdjacentAppInfoSubscription.filterCriteria",
"type": "object",
"properties": {
"appInstanceId": {
"type": "string"
}
},
"description": "List of filtering criteria for the subscription. Any filtering criteria from below, which is included in the request, shall also be included in the response."
},
"subscriptionType": {
"const": "AdjacentAppInfoSubscription",
"type": "string",
"description": "Shall be set to \"AdjacentAppInfoSubscription\".",
"examples": [
"AdjacentAppInfoSubscription"
]
}
}
}
],
"contentMediaType": "application/json"
}
\ No newline at end of file
{
"title": "SubscriptionLinkList",
"required": [
"_links"
],
"type": "object",
"properties": {
"_links": {
"description": "Hyperlinks related to the resource.",
"title": "SubscriptionLinkList.links",
"required": [
"self"
],
"type": "object",
"properties": {
"self": {
"description": "URI of this resource.",
"title": "LinkType",
"required": [
"href"
],
"type": "object",
"properties": {
"href": {
"type": "string",
"description": "The URI referring to the subscription."
}
}
},
"subscription": {
"type": "array",
"description": "The service consumer’s subscriptions.",
"items": {
"title": "SubscriptionLinkList.subscription",
"required": [
"href",
"subscriptionType"
],
"type": "object",
"properties": {
"href": {
"type": "string",
"description": "The URI referring to the subscription."
},
"subscriptionType": {
"description": "The Subscription Type",
"title": "subscriptionType",
"enum": [
0,
1,
2
],
"type": "integer",
"examples": [
0
]
}
}
}
}
}
}
}
}
\ No newline at end of file
......@@ -22,7 +22,7 @@ TC_MEC_MEC028_SRV_WAI_001_OK
Check HTTP Response Body Json Schema Is ApInfo
## Post condition
FOR ${apInfo} IN @{response['body']}
${passed} Run Keyword And Return Status Should Be Equal As Strings ${apInfo['apId']['macId']} ${MAC_ID}
${passed} Run Keyword And Return Status Should Be Equal As Strings ${apInfo['apId']['bssid']} ${BSS_ID}
Exit For Loop If ${passed}
END
Should Be True ${passed}
......@@ -39,7 +39,7 @@ TC_MEC_MEC028_SRV_WAI_002_OK
Check HTTP Response Body Json Schema Is ApInfo
## Post condition
FOR ${apInfo} IN @{response['body']}
${passed} Run Keyword And Return Status Should Be Equal As Strings ${apInfo['apId']['macId']} ${MAC_ID}
${passed} Run Keyword And Return Status Should Be Equal As Strings ${apInfo['apId']['bssid']} ${BSS_ID}
Exit For Loop If ${passed}
END
Should Be True ${passed}
......
......@@ -9,9 +9,9 @@ ${MEC-APP_PORT} 3001
${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l
${MAC_ID} macId01
${filter} macId01
${bad_filter} badMacId
${BSS_ID} bssId01
${filter} (eq,bssid,bssId01)
${bad_filter} (eq,bss_id,bssId01)
${REGISTER_ACTION} REGISTER
${REMOVE_ACTION} REMOVE
......
This diff is collapsed.
*** Variables ***
# Generic variables
${SCHEMA} http
${HOST} 127.0.0.1
${PORT} 8082
${HOST} mockoon
${PORT} 3005
${response} {}
${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l
${apiRoot}
${apiName} vis
${apiVersion} v1
${apiVersion} v2
# Specific variables
${LOCATION_INFO_QUERY_PARAM} location_info
......
{
"localityGranularity": "10",
"localityGranularity": "11",
"routes": [{
"routeinfo": [
{
......
{
"locationGranularity": "10",
"locationGranularity": "12",
"routes": [{
"routeinfo": [
{
......
......@@ -23,8 +23,8 @@
}
},
"_links": {
"self": {
"href": "https://127.0.0.1/vis/v1/subscription/1"
}
}
"self": {
"href": "https://127.0.0.1/vis/v1/subscription/1"
}
}
}
\ No newline at end of file
{
"V2xMsgDistributionServerInfo": {
"locationInfo": [
{
"ecgi": {
"cellId": {
"cellId": "01010101010101010101010101"
},
"plmn": {
"mcc": "123",
"mnc": "456"
}
},
"geoArea": {
"latitude": 37.7749,
"longitude": -122.4194
}
},
{
"ecgi": {
"cellId": {
"cellId": "02020202020202020202020202"
},
"plmn": {
"mcc": "789",
"mnc": "012"
}
}
}
],
"v2xMsgDistributionServer": [
{
"infoProtocol": {
"msgProtocol": [
0,
1,
2
],
"protImplementation": "cpp"
}
},
{
"infoProtocol": {
"msgProtocol": [
3,
4
],
"protImplementation": "Python"
}
}
]
}
}
\ No newline at end of file
{
"V2xMsgDistributionServerInfo": {
"locationInfo": [
{
"ecgi": {
"cellId": {
"cellId": "01010101010101010101010101"
},
"plmn": {
"mcc": "123",
"mnc": "456"
}
},
"geoArea": {
"latitude": 37.7749,
"longitude": -122.4194
}
},
{
"ecgi": {
"cellId": {
"cellId": "02020202020202020202020202"
},
"plmn": {
"mcc": "789",
"mnc": "012"
}
}
}
],
"v2xMsgDistributionServer": [
{
"infoConnection": {
"ipAddress": "192.168.1.1",
"port_number": 8080
},
"infoProtocol": {
"msgProtocol": [
0,
1,
2
],
"protImplementation": "cpp"
}
},
{
"infoConnection": {
"ipAddress": "10.0.0.1",
"port_number": 8888
},
"infoProtocol": {
"msgProtocol": [
3,
4
],
"protImplementation": "Python"
}
}
]
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment