*** Variables ***
# Generic variables
${SCHEMA} http
${HOST} 10.192.2.172
${HOST} 127.0.0.1
${PORT} 8081
${response} {}
${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l
......@@ -10,7 +10,7 @@ ${apiName} mec_service_mgmt
${apiVersion} v1
# Specific variables
${APP_INSTANCE_ID} 5abe4782-2c70-4e47-9a4e-0ee3a1a0fd1f
${APP_INSTANCE_ID} 5abe4782-2c70-4e47-9a4e-0ee3a1a0fd1f
${INSTANCE_ID} instance_id
${FAKE_INSTANCE_ID_VALUE} 5
${NON_EXISTENT_APP_INSTANCE_ID} NON_ESISTENT_APP_INSTANCE_ID
......
{
"ServiceInfo": {
"description": "This type represents the general information of a MEC service.",
"type": "object",
"required": [
"serName",
"version",
"state",
"transportInfo",
"serializer"
],
"properties": {
"serInstanceId": {
"description": "Identifier of the service instance assigned by the MEC platform.",
"type": "string",
"readOnly": true,
"example": "ServiceInstance123"
},
"serName": {
"description": "The name of the service. This is how the service producing MEC application identifies the service instance it produces.",
"type": "string",
"example": "ExampleService"
},
"serCategory": {
"description": "This type represents the category reference",
"type": "object",
"required": [
"href",
"id",
"name",
"version"
],
"properties": {
"href": {
"description": "Reference of the catalogue",
"type": "string",
"format": "uri",
"example": "/example/catalogue1"
},
"id": {
"description": "Unique identifier of the category",
"type": "string",
"example": "id12345"
},
"name": {
"description": "Name of the category, example values include RNI, Location & Bandwidth Management",
"type": "string",
"example": "RNI"
},
"version": {
"description": "Category version",
"type": "string",
"example": "version1"
}
}
},
"version": {
"description": "Service version",
"type": "string",
"example": "ServiceVersion1"
},
"state": {
"description": "This enumeration defines the possible states of a service.",
"type": "string",
"enum": [
"ACTIVE",
"INACTIVE",
"SUSPENDED"
],
"example": "ACTIVE"
},
"transportInfo": {
"description": "This type represents the general information of a MEC service.",
"type": "object",
"required": [
"id",
"name",
"type",
"protocol",
"version",
"endpoint",
"security"
],
"properties": {
"id": {
"description": "The identifier of this transport",
"type": "string",
"example": "TransId12345"
},
"name": {
"description": "The name of this transport",
"type": "string",
"example": "REST"
},
"description": {
"description": "Human-readable description of this transport",
"type": "string",
"example": "REST API"
},
"type": {
"description": "The enumeration TransportType represents types of transports",
"type": "string",
"enum": [
"REST_HTTP",
"MB_TOPIC_BASED",
"MB_ROUTING",
"MB_PUBSUB",
"RPC",
"RPC_STREAMING",
"WEBSOCKET"
],
"example": "REST_HTTP"
},
"protocol": {
"description": "The name of the protocol used. Shall be set to HTTP for a REST API.",
"type": "string",
"example": "HTTP"
},
"version": {
"description": "The version of the protocol used",
"type": "string",
"example": "2.0"
},
"endpoint": {
"description": "This type represents information about a transport endpoint",
"type": "object",
"oneOf": [{
"description": "Entry point information of the service as string, formatted according to URI syntax",
"type": "object",
"required": [
"uris"
],
"properties": {
"uris": {
"type": "array",
"minItems": 0,
"items": {
"description": "Entry point information of the service",
"type": "string",
"format": "uri",
"example": "/mecSerMgmtApi/service/EntryPoint"
}
}
}
},
{
"description": "Entry point information of the service as one or more pairs of IP address and port",
"type": "object",
"required": [
"addresses"
],
"properties": {
"addresses": {
"type": "array",
"minItems": 0,
"items": {
"description": "A IP address and port pair",
"type": "object",
"required": [
"host",
"port"
],
"properties": {
"host": {
"description": "Host portion of the address",
"type": "string",
"example": "192.0.2.0"
},
"port": {
"description": "Port portion of the address",
"type": "integer",
"format": "uint32",
"example": 8080
}
}
}
}
}
},
{
"description": "Entry point information of the service in a format defined by an implementation, or in an external specification.",
"type": "object",
"required": [
"alternative"
],
"properties": {
"alternative": {
"type": "object"
}
}
}
]
},
"security": {
"description": "This type represents security information related to a transport",
"type": "object",
"properties": {
"oAuth2Info": {
"description": "Parameters related to use of OAuth 2.0",
"required": [
"grantTypes",
"tokenEndpoint"
],
"properties": {
"grantTypes": {
"description": "List of supported OAuth 2.0 grant types.",
"type": "array",
"minItems": 1,
"maxItems": 4,
"items": {
"description": "OAuth 2.0 grant type",
"type": "string",
"enum": [
"OAUTH2_AUTHORIZATION_CODE",
"OAUTH2_IMPLICIT_GRANT",
"OAUTH2_RESOURCE_OWNER",
"OAUTH2_CLIENT_CREDENTIALS"
],
"example": "OAUTH2_CLIENT_CREDENTIALS"
}
},
"tokenEndpoint": {
"description": "The token endpoint",
"type": "string",
"format": "uri",
"example": "/mecSerMgmtApi/security/TokenEndPoint"
}
},
"type": "object"
}
}
},
"implSpecificInfo": {
"description": "Additional implementation specific details of the transport",
"type": "object"
}
}
},
"serializer": {
"description": "The enumeration represents types of serializers",
"type": "string",
"enum": [
"JSON",
"XML",
"PROTOBUF3"
],
"example": "JSON"
},
"scopeOfLocality": {
"description": "The scope of locality as expressed by \"consumedLocalOnly\" and \"isLocal\". If absent, defaults to MEC_HOST",
"type": "string",
"enum": [
"MEC_SYSTEM",
"MEC_HOST",
"NFVI_POP",
"ZONE",
"ZONE_GROUP",
"NFVI_NODE"
],
"example": "MEC_SYSTEM"
},
"consumedLocalOnly": {
"description": "Indicate whether the service can only be consumed by the MEC applications located in the same locality (as defined by scopeOfLocality) as this service instance.",
"type": "boolean",
"example": false
},
"isLocal": {
"description": "Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application.",
"type": "boolean",
"example": true
},
"livenessInterval": {
"type": "integer"
},
"_links": {
"type": "object",
"required": [
"self"
],
"properties": {
"self": {
"description": "This type represents a type of link and may be referenced from data structures",
"type": "object",
"properties": {
"href": {
"description": "URI referring to a resource",
"type": "string",
"format": "uri",
"example": "/mecSerMgmtApi/example"
}
}
},
"liveness": {
"description": "This type represents a type of link and may be referenced from data structures",
"type": "object",
"properties": {
"href": {
"description": "URI referring to a resource",
"type": "string",
"format": "uri",
"example": "/mecSerMgmtApi/example"
}
}
}
}
}
}
}
}
\ No newline at end of file
......@@ -3,7 +3,7 @@
Documentation
... A test suite for validating Application Subscriptions (APPSUB) operations.
Resource ../../GenericKeywords.robot
Resource ../../../GenericKeywords.robot
Resource environment/variables.txt
Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false
Library OperatingSystem
......@@ -13,12 +13,12 @@ Default Tags TC_MEC_SRV_APPSUB
*** Test Cases ***
TC_MEC_SRV_APPSUB_001_OK
TP_MEC_MEC011_SRV_APPSUB_001_OK
[Documentation]
... Check that the IUT responds with a list of subscriptions for notifications
... on services availability when queried by a MEC Application
...
... Reference ETSI GS MEC 011 V2.1.1, clause 7.2.3.3.1
... Reference ETSI GS MEC 011 V2.2.1, clause 7.2.3.3.1
... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecAppSupportApi.yaml#/definitions/MecAppSuptApiSubscriptionLinkList
[Tags] PIC_MEC_PLAT PIC_SERVICES
......@@ -27,24 +27,24 @@ TC_MEC_SRV_APPSUB_001_OK
Check HTTP Response Body Json Schema Is SubscriptionsLinkList
TC_MEC_SRV_APPSUB_001_NF
TP_MEC_MEC011_SRV_APPSUB_001_NF
[Documentation]
... Check that the IUT responds with an error when
... a request for an unknown URI is sent by a MEC Application
...
... Reference ETSI GS MEC 011 V2.1.1, clause 7.2.3.3.1
... Reference ETSI GS MEC 011 V2.2.1, clause 7.2.3.3.1
[Tags] PIC_MEC_PLAT PIC_SERVICES
Get Subscriptions list ${NON_EXISTENT_APP_INSTANCE_ID}
Check HTTP Response Status Code Is 404
TC_MEC_SRV_APPSUB_002_OK
TP_MEC_MEC011_SRV_APPSUB_002_OK
[Documentation]
... Check that the IUT acknowledges the subscription by a MEC Application
... to notifications on service availability events
...
... Reference ETSI GS MEC 011 V2.1.1, clause 7.2.3.3.4
... Reference ETSI GS MEC 011 V2.2.1, clause 7.2.3.3.4
... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecAppSupportApi.yaml#/definitions/AppTerminationNotificationSubscription
[Tags] PIC_MEC_PLAT PIC_SERVICES
......@@ -56,12 +56,12 @@ TC_MEC_SRV_APPSUB_002_OK
Check Response Contains ${response['body']} callbackReference ${APP_TERM_NOTIF_CALLBACK_URI}
TC_MEC_SRV_APPSUB_003_OK
TP_MEC_MEC011_SRV_APPSUB_002_BR
[Documentation]
... Check that the IUT responds with the information on a specific subscription
... when queried by a MEC Application
...
... Reference ETSI GS MEC 011 V2.1.1, clause 7.2.4.3.1
... Reference ETSI GS MEC 011 V2.2.1, clause 7.2.3.3.4
... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecAppSupportApi.yaml#/definitions/AppTerminationNotificationSubscription
[Tags] PIC_MEC_PLAT PIC_SERVICES
......@@ -71,36 +71,50 @@ TC_MEC_SRV_APPSUB_003_OK
Check Response Contains ${response['body']} subscriptionType AppTerminationNotificationSubscription
TC_MEC_SRV_APPSUB_003_NF
TP_MEC_MEC011_SRV_APPSUB_003_OK
[Documentation]
... Check that the IUT responds with the information on a specific subscription
... when queried by a MEC Application
...
... Reference ETSI GS MEC 011 V2.2.1, clause 7.2.4.3.1
[Tags] PIC_MEC_PLAT PIC_SERVICES
Get individual subscription ${APP_INSTANCE_ID} ${SUBSCRIPTION_ID}
Check HTTP Response Status Code Is 200
Check HTTP Response Body Json Schema Is AppTerminationNotificationSubscription
TP_MEC_MEC011_SRV_APPSUB_003_NF
[Documentation]
... Check that the IUT responds with an error when
... a request for an unknown URI is sent by a MEC Application
...
... Reference ETSI GS MEC 011 V2.1.1, clause 7.2.4.3.1
... Reference ETSI GS MEC 011 V2.2.1, clause 7.2.4.3.1
[Tags] PIC_MEC_PLAT PIC_SERVICES
Get individual subscription ${APP_INSTANCE_ID} ${NON_EXISTENT_SUBSCRIPTION_ID}
Check HTTP Response Status Code Is 404
TC_MEC_SRV_APPSUB_004_OK
TP_MEC_MEC011_SRV_APPSUB_004_OK
[Documentation]
... Check that the IUT acknowledges the unsubscribe from service availability event notifications
... when commanded by a MEC Application
...
... Reference ETSI GS MEC 011 V2.1.1, clause 7.2.4.3.5
... Reference ETSI GS MEC 011 V2.2.1, clause 7.2.4.3.5
[Tags] PIC_MEC_PLAT PIC_SERVICES
Remove subscription ${APP_INSTANCE_ID} ${SUBSCRIPTION_ID}
Check HTTP Response Status Code Is 204
TC_MEC_SRV_APPSUB_004_NF
TP_MEC_MEC011_SRV_APPSUB_004_NF
[Documentation]
... Check that the IUT responds with an error when
... a request for an unknown URI is sent by a MEC Application
...
... Reference ETSI GS MEC 011 V2.0.9, clause 7.2.4.3.5
... Reference ETSI GS MEC 011 V2.2.1, clause 7.2.4.3.5
[Tags] PIC_MEC_PLAT PIC_SERVICES
Remove subscription ${NON_EXISTENT_APP_INSTANCE_ID} ${SUBSCRIPTION_ID}
......@@ -112,6 +126,7 @@ Get Subscriptions List
[Arguments] ${appInstanceId}
Set Headers {"Accept":"application/json"}
Set Headers {"Authorization":"${TOKEN}"}
Set Headers {"Content-Type":"*/*"}
Get ${apiRoot}/${apiName}/${apiVersion}/applications/${appInstanceId}/subscriptions
${output}= Output response
Set Suite Variable ${response} ${output}
......@@ -121,6 +136,7 @@ Create new subscription
Set Headers {"Accept":"application/json"}
Set Headers {"Content-Type":"application/json"}
Set Headers {"Authorization":"${TOKEN}"}
Set Headers {"Content-Type":"*/*"}
${file}= Catenate SEPARATOR= jsons/ ${content} .json
${body}= Get File ${file}
Post ${apiRoot}/${apiName}/${apiVersion}/applications/${appInstanceId}/subscriptions ${body}
......@@ -132,6 +148,8 @@ Get individual subscription
[Arguments] ${appInstanceId} ${subscriptionId}
Set Headers {"Accept":"application/json"}
Set Headers {"Authorization":"${TOKEN}"}
Set Headers {"Content-Type":"*/*"}
Set Headers {"Content-Type":"*/*"}
Get ${apiRoot}/${apiName}/${apiVersion}/applications/${appInstanceId}/subscriptions/${subscriptionId}
${output}= Output response
Set Suite Variable ${response} ${output}
......@@ -140,6 +158,7 @@ Remove subscription
[Arguments] ${appInstanceId} ${subscriptionId}
Set Headers {"Accept":"application/json"}
Set Headers {"Authorization":"${TOKEN}"}
Set Headers {"Content-Type":"*/*"}
Delete ${apiRoot}/${apiName}/${apiVersion}/applications/${appInstanceId}/subscriptions/${subscriptionId}
${output}= Output response
Set Suite Variable ${response} ${output}
\ No newline at end of file
*** Variables ***
# Generic variables
${SCHEMA} http
${HOST} 10.192.2.172
${HOST} 127.0.0.1
${PORT} 8081
${response} {}
${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l
......
......@@ -3,7 +3,7 @@
Documentation
... A test suite for validating DNS rules (DNS) operations.
Resource ../../GenericKeywords.robot
Resource ../../../GenericKeywords.robot
Resource environment/variables.txt
Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false
Library OperatingSystem
......@@ -16,12 +16,12 @@ Default Tags TC_MEC_SRV_CONF
*** Test Cases ***
TC_MEC_SRV_CONF_001_OK
TP_MEC_MEC011_SRV_CONFTASK_001_OK
[Documentation]
... Check that the IUT responds with an acknowledge
... when requested graceful termination/stop of a MEC Application instance
... Check that the IUT responds that it has completed
... the application level termination
...
... Reference ETSI GS MEC 011 V2.1.1, clause 7.2.11.3.4
... Reference ETSI GS MEC 011 V2.2.1, clause 7.2.11.3.4
... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecAppSupportApi.yaml#/definitions/AppTerminationConfirmation
[Tags] PIC_MEC_PLAT PIC_SERVICES
......@@ -29,12 +29,12 @@ TC_MEC_SRV_CONF_001_OK
Check HTTP Response Status Code Is 204
TC_MEC_SRV_CONF_001_NF
TP_MEC_MEC011_SRV_CONFTASK_001_NF
[Documentation]
... Check that the IUT responds with an error
... when requested graceful termination/stop of an unknown MEC Application instance
...
... Reference ETSI GS MEC 011 V2.1.1, clause 7.2.11.3.4
... Reference ETSI GS MEC 011 V2.2.1, clause 7.2.11.3.4
... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecAppSupportApi.yaml#/definitions/AppTerminationConfirmation
[Tags] PIC_MEC_PLAT PIC_SERVICES
......@@ -44,12 +44,12 @@ TC_MEC_SRV_CONF_001_NF
TC_MEC_SRV_CONF_002_OK
TP_MEC_MEC011_SRV_CONFTASK_002_OK
[Documentation]
... Check that the IUT responds with an acknowledge
... when requested readiness status for a MEC Application instance
...
... Reference ETSI GS MEC 011 V2.1.1, clause 7.2.12.3.4
... Reference ETSI GS MEC 011 V2.2.1, clause 7.2.12.3.4
... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecAppSupportApi.yaml#/definitions/AppReadyConfirmation
[Tags] PIC_MEC_PLAT PIC_SERVICES
......@@ -57,12 +57,12 @@ TC_MEC_SRV_CONF_002_OK
Check HTTP Response Status Code Is 204
TC_MEC_SRV_CONF_002_NF
TP_MEC_MEC011_SRV_CONFTASK_002_NF
[Documentation]
... Check that the IUT responds with an error
... when requested readiness status for an unknown MEC Application instance
...
... Reference ETSI GS MEC 011 V2.1.1, clause 7.2.12.3.4
... Reference ETSI GS MEC 011 V2.2.1, clause 7.2.12.3.4
... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecAppSupportApi.yaml#/definitions/AppReadyConfirmation
[Tags] PIC_MEC_PLAT PIC_SERVICES
......@@ -78,7 +78,7 @@ Request termination of MEC Application
Set Headers {"Authorization":"${TOKEN}"}
${file}= Catenate SEPARATOR= jsons/ ${content} .json
${body}= Get File ${file}
PUT ${apiRoot}/${apiName}/${apiVersion}/applications/${appInstanceId}/confirm_termination ${body}
POST ${apiRoot}/${apiName}/${apiVersion}/applications/${appInstanceId}/confirm_termination ${body}
${output}= Output response
Set Suite Variable ${response} ${output}
......@@ -90,6 +90,6 @@ Request readiness status of MEC Application
Set Headers {"Authorization":"${TOKEN}"}
${file}= Catenate SEPARATOR= jsons/ ${content} .json
${body}= Get File ${file}
PUT ${apiRoot}/${apiName}/${apiVersion}/applications/${appInstanceId}/confirm_ready ${body}
POST ${apiRoot}/${apiName}/${apiVersion}/applications/${appInstanceId}/confirm_ready ${body}
${output}= Output response
Set Suite Variable ${response} ${output}
*** Variables ***
# Generic variables
${SCHEMA} http
${HOST} 10.192.2.172
${HOST} 127.0.0.1
${PORT} 8081
${response} {}
${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l
......