${PIC_MEC_SYSTEM} == 1 Fails if the given condition is not true. ${PIC_SERVICES} == 1 Fails if the given condition is not true. AssocStaSubscription.json Creating a new subscription Logs the given message with the given level. Creating a new subscription {"Content-Type":"application/json"} settings *Sets new request headers or updates the existing.* {"Authorization":"${TOKEN}"} settings *Sets new request headers or updates the existing.* ${path} SEPARATOR= jsons/ ${content} Catenates the given items together and returns the resulted string. ${path} = jsons/AssocStaSubscription.json ${body} ${path} Returns the contents of a specified file. Getting file '<a href="file://C:\Users\pietr\Desktop\gs032p3-robot-test-suite\MEC028\WAI\SUB\jsons\AssocStaSubscription.json">C:\Users\pietr\Desktop\gs032p3-robot-test-suite\MEC028\WAI\SUB\jsons\AssocStaSubscription.json</a>'. ${body} = { "apId": { "macId": "macId01" }, "callbackReference": "http://callback.uri/1", "subscriptionType": "AssocStaSubscription" } ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body} http *Sends a POST request to the endpoint.* ${body} Logs the given message with the given level. { "apId": { "macId": "macId01" }, "callbackReference": "http://callback.uri/1", "subscriptionType": "AssocStaSubscription" } ${output} response I/O *Outputs JSON to terminal or a file.* { "seconds": 0.016300000000000002, "status": 201, "body": { "_links": { "self": { "href": "/wai/v1/subscriptions/1" } }, "apId": { "macId": "macId01" }, "callbackReference": "http://callback.uri/1", "subscriptionType": "AssocStaSubscription" }, "headers": { "Content-Type": "application/json; charset=utf-8", "Location": "/wai/v1/subscriptions/1", "Content-Length": "222", "Date": "Thu, 06 May 2021 12:55:53 GMT", "Connection": "keep-alive", "Keep-Alive": "timeout=5" } } ${output} = {'seconds': 0.016300000000000002, 'status': 201, 'body': {'_links': {'self': {'href': '/wai/v1/subscriptions/1'}}, 'apId': {'macId': 'macId01'}, 'callbackReference': 'http://callback.uri/1', 'subscrip... ${response} ${output} Makes a variable available everywhere within the scope of the current suite. ${response} = {'seconds': 0.016300000000000002, 'status': 201, 'body': {'_links': {'self': {'href': '/wai/v1/subscriptions/1'}}, 'apId': {'macId': 'macId01'}, 'callbackReference': 'http://callback.uri/1', 'subscrip... 201 ${status} ${expected_status} Converts the given item to an integer number. ${status} = 201 ${response['status']} ${status} Fails if the given objects are unequal. Status code validated Logs the given message with the given level. Status code validated AssocStaSubscription ${response['headers']['Content-Type']} application/json Fails if ``container`` does not contain ``item`` one or more times. ${schema} SEPARATOR= ${input} .schema.json Catenates the given items together and returns the resulted string. ${schema} = AssocStaSubscription.schema.json ${schema} ${response['body']} Validates the sample JSON against the given schema. Json Schema Validation OK Logs the given message with the given level. Json Schema Validation OK ${response['body']['subscriptionType']} ${SUB_TYPE} Fails if objects are unequal after converting them to strings. ${response['body']['_links']['self']['href']} ${HREF} Fails if objects are unequal after converting them to strings. ${response['headers']['Location']} ${HREF} Fails if objects are unequal after converting them to strings. Check that the IUT responds with a Notification Subscription Reference "ETSI GS MEC 028 2.1.1, clause 7.5.3.4 https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription ${PIC_MEC_SYSTEM} == 1 Fails if the given condition is not true. ${PIC_SERVICES} == 1 Fails if the given condition is not true. AssocStaSubscription_BR.json Creating a new subscription Logs the given message with the given level. Creating a new subscription {"Content-Type":"application/json"} settings *Sets new request headers or updates the existing.* {"Authorization":"${TOKEN}"} settings *Sets new request headers or updates the existing.* ${path} SEPARATOR= jsons/ ${content} Catenates the given items together and returns the resulted string. ${path} = jsons/AssocStaSubscription_BR.json ${body} ${path} Returns the contents of a specified file. Getting file '<a href="file://C:\Users\pietr\Desktop\gs032p3-robot-test-suite\MEC028\WAI\SUB\jsons\AssocStaSubscription_BR.json">C:\Users\pietr\Desktop\gs032p3-robot-test-suite\MEC028\WAI\SUB\jsons\AssocStaSubscription_BR.json</a>'. ${body} = { "_links":{ "href":"" }, "apId": { "macId": "macId01" }, "callbackReference": "http://callback.uri/1", "subscriptionType": "INVALID_VALUE" } ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body} http *Sends a POST request to the endpoint.* ${body} Logs the given message with the given level. { "_links":{ "href":"" }, "apId": { "macId": "macId01" }, "callbackReference": "http://callback.uri/1", "subscriptionType": "INVALID_VALUE" } ${output} response I/O *Outputs JSON to terminal or a file.* { "seconds": 0.005856, "status": 400, "body": "", "headers": { "Content-Type": "application/problem+json; charset=utf-8", "Content-Length": "0", "Date": "Thu, 06 May 2021 12:55:53 GMT", "Connection": "keep-alive", "Keep-Alive": "timeout=5" } } ${output} = {'seconds': 0.005856, 'status': 400, 'body': '', 'headers': {'Content-Type': 'application/problem+json; charset=utf-8', 'Content-Length': '0', 'Date': 'Thu, 06 May 2021 12:55:53 GMT', 'Connection': 'k... ${response} ${output} Makes a variable available everywhere within the scope of the current suite. ${response} = {'seconds': 0.005856, 'status': 400, 'body': '', 'headers': {'Content-Type': 'application/problem+json; charset=utf-8', 'Content-Length': '0', 'Date': 'Thu, 06 May 2021 12:55:53 GMT', 'Connection': 'k... 400 ${status} ${expected_status} Converts the given item to an integer number. ${status} = 400 ${response['status']} ${status} Fails if the given objects are unequal. Status code validated Logs the given message with the given level. Status code validated Check that the IUT responds with an error when an invalid Subscription request is sent ETSI GS MEC 028 2.1.1, clause 7.5.3.4 https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription ${PIC_MEC_SYSTEM} == 1 Fails if the given condition is not true. ${PIC_SERVICES} == 1 Fails if the given condition is not true. AssocStaSubscription.json Creating a new subscription Logs the given message with the given level. Creating a new subscription {"Content-Type":"application/json"} settings *Sets new request headers or updates the existing.* {"Authorization":"${TOKEN}"} settings *Sets new request headers or updates the existing.* ${path} SEPARATOR= jsons/ ${content} Catenates the given items together and returns the resulted string. ${path} = jsons/AssocStaSubscription.json ${body} ${path} Returns the contents of a specified file. Getting file '<a href="file://C:\Users\pietr\Desktop\gs032p3-robot-test-suite\MEC028\WAI\SUB\jsons\AssocStaSubscription.json">C:\Users\pietr\Desktop\gs032p3-robot-test-suite\MEC028\WAI\SUB\jsons\AssocStaSubscription.json</a>'. ${body} = { "apId": { "macId": "macId01" }, "callbackReference": "http://callback.uri/1", "subscriptionType": "AssocStaSubscription" } ${apiRoot}/${apiName}/${apiVersion}/subscriptions_INVALID_URI ${body} http *Sends a POST request to the endpoint.* Response body content is not JSON. Content-Type is: text/html; charset=utf-8 ${output} response I/O *Outputs JSON to terminal or a file.* { "seconds": 0.0030830000000000002, "status": 404, "body": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot POST /wai/v1/subscriptions_INVALID_URI</pre>\n</body>\n</html>\n", "headers": { "Content-Security-Policy": "default-src 'none'", "X-Content-Type-Options": "nosniff", "Content-Type": "text/html; charset=utf-8", "Content-Length": "172", "Date": "Thu, 06 May 2021 12:55:53 GMT", "Connection": "keep-alive", "Keep-Alive": "timeout=5" } } ${output} = {'seconds': 0.0030830000000000002, 'status': 404, 'body': '<!DOCTYPE html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot POST /wai/v1/subscripti... ${response} ${output} Makes a variable available everywhere within the scope of the current suite. ${response} = {'seconds': 0.0030830000000000002, 'status': 404, 'body': '<!DOCTYPE html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot POST /wai/v1/subscripti... 404 ${status} ${expected_status} Converts the given item to an integer number. ${status} = 404 ${response['status']} ${status} Fails if the given objects are unequal. Status code validated Logs the given message with the given level. Status code validated Check that the IUT responds with an error when a request with not existing parameters is sent Reference "ETSI GS MEC 028 2.1.1, clause 7.5.3.1 ${PIC_MEC_SYSTEM} == 1 Fails if the given condition is not true. ${PIC_SERVICES} == 1 Fails if the given condition is not true. ${SUB_FILTER} ${PIC_MEC_SYSTEM} == 1 Fails if the given condition is not true. ${PIC_SERVICES} == 1 Fails if the given condition is not true. {"Content-Type":"application/json"} settings *Sets new request headers or updates the existing.* {"Authorization":"${TOKEN}"} settings *Sets new request headers or updates the existing.* ${apiRoot}/${apiName}/${apiVersion}/subscriptions?subscription_type=${subscription_type} http *Sends a GET request to the endpoint.* ${output} response I/O *Outputs JSON to terminal or a file.* { "seconds": 0.005093, "status": 200, "body": { "_links": { "self": { "href": "/wai/v1/subscriptions/1" } }, "staDataRateSubscription": [], "assocStaSubscription": [ { "subscriptionType": "AssocStaSubscription", "callbackReference": "http://callback/uri", "apId": { "macId": "macId01" }, "_links": { "self": { "href": "/wai/v1/subscriptions/1" } } } ] }, "headers": { "Content-Type": "application/json; charset=utf-8", "Content-Length": "361", "Date": "Thu, 06 May 2021 12:55:53 GMT", "Connection": "keep-alive", "Keep-Alive": "timeout=5" } } ${output} = {'seconds': 0.005093, 'status': 200, 'body': {'_links': {'self': {'href': '/wai/v1/subscriptions/1'}}, 'staDataRateSubscription': [], 'assocStaSubscription': [{'subscriptionType': 'AssocStaSubscriptio... ${response} ${output} Makes a variable available everywhere within the scope of the current suite. ${response} = {'seconds': 0.005093, 'status': 200, 'body': {'_links': {'self': {'href': '/wai/v1/subscriptions/1'}}, 'staDataRateSubscription': [], 'assocStaSubscription': [{'subscriptionType': 'AssocStaSubscriptio... 200 ${status} ${expected_status} Converts the given item to an integer number. ${status} = 200 ${response['status']} ${status} Fails if the given objects are unequal. Status code validated Logs the given message with the given level. Status code validated SubscriptionLinkList ${response['headers']['Content-Type']} application/json Fails if ``container`` does not contain ``item`` one or more times. ${schema} SEPARATOR= ${input} .schema.json Catenates the given items together and returns the resulted string. ${schema} = SubscriptionLinkList.schema.json ${schema} ${response['body']} Validates the sample JSON against the given schema. Json Schema Validation OK Logs the given message with the given level. Json Schema Validation OK ${assocStaSub} @{response['body']['assocStaSubscription']} {'subscriptionType': 'AssocStaSubscription', 'callbackReference': 'http://callback/uri', 'apId': {'macId': 'macId01'}, '_links': {'self': {'href': '/wai/v1/subscriptions/1'}}} ${passed} Should Be Equal As Strings ${assocStaSub['_links']['self']['href']} ${HREF} Runs the given keyword with given arguments and returns the status as a Boolean value. ${assocStaSub['_links']['self']['href']} ${HREF} Fails if objects are unequal after converting them to strings. ${passed} = True ${passed} Stops executing the enclosing for loop if the ``condition`` is true. Exiting for loop altogether. Check that the IUT responds with the requested list of subscription Reference "ETSI GS MEC 028 2.1.1, clause 7.5.3.1 https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription ${PIC_MEC_SYSTEM} == 1 Fails if the given condition is not true. ${PIC_SERVICES} == 1 Fails if the given condition is not true. ${SUB_FILTER} ${PIC_MEC_SYSTEM} == 1 Fails if the given condition is not true. ${PIC_SERVICES} == 1 Fails if the given condition is not true. {"Content-Type":"application/json"} settings *Sets new request headers or updates the existing.* {"Authorization":"${TOKEN}"} settings *Sets new request headers or updates the existing.* ${apiRoot}/${apiName}/${apiVersion}/subscriptions?subscription_type=${subscription_type} http *Sends a GET request to the endpoint.* ${output} response I/O *Outputs JSON to terminal or a file.* { "seconds": 0.005634999999999999, "status": 200, "body": { "_links": { "self": { "href": "/wai/v1/subscriptions/1" } }, "staDataRateSubscription": [], "assocStaSubscription": [ { "subscriptionType": "AssocStaSubscription", "callbackReference": "http://callback/uri", "apId": { "macId": "macId01" }, "_links": { "self": { "href": "/wai/v1/subscriptions/1" } } } ] }, "headers": { "Content-Type": "application/json; charset=utf-8", "Content-Length": "361", "Date": "Thu, 06 May 2021 12:55:53 GMT", "Connection": "keep-alive", "Keep-Alive": "timeout=5" } } ${output} = {'seconds': 0.005634999999999999, 'status': 200, 'body': {'_links': {'self': {'href': '/wai/v1/subscriptions/1'}}, 'staDataRateSubscription': [], 'assocStaSubscription': [{'subscriptionType': 'AssocSt... ${response} ${output} Makes a variable available everywhere within the scope of the current suite. ${response} = {'seconds': 0.005634999999999999, 'status': 200, 'body': {'_links': {'self': {'href': '/wai/v1/subscriptions/1'}}, 'staDataRateSubscription': [], 'assocStaSubscription': [{'subscriptionType': 'AssocSt... 200 ${status} ${expected_status} Converts the given item to an integer number. ${status} = 200 ${response['status']} ${status} Fails if the given objects are unequal. Status code validated Logs the given message with the given level. Status code validated SubscriptionLinkList ${response['headers']['Content-Type']} application/json Fails if ``container`` does not contain ``item`` one or more times. ${schema} SEPARATOR= ${input} .schema.json Catenates the given items together and returns the resulted string. ${schema} = SubscriptionLinkList.schema.json ${schema} ${response['body']} Validates the sample JSON against the given schema. Json Schema Validation OK Logs the given message with the given level. Json Schema Validation OK ${response['body']['_links']['self']['href']} ${HREF} Fails if objects are unequal after converting them to strings. Check that the IUT responds with the requested list of subscription Reference "ETSI GS MEC 028 2.1.1, clause 7.5.3.1 https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription ${PIC_MEC_SYSTEM} == 1 Fails if the given condition is not true. ${PIC_SERVICES} == 1 Fails if the given condition is not true. ${INVALID_SUB_FILTER} ${PIC_MEC_SYSTEM} == 1 Fails if the given condition is not true. ${PIC_SERVICES} == 1 Fails if the given condition is not true. {"Content-Type":"application/json"} settings *Sets new request headers or updates the existing.* {"Authorization":"${TOKEN}"} settings *Sets new request headers or updates the existing.* ${apiRoot}/${apiName}/${apiVersion}/subscriptions?subscription_type=${subscription_type} http *Sends a GET request to the endpoint.* ${output} response I/O *Outputs JSON to terminal or a file.* { "seconds": 0.005876999999999999, "status": 400, "body": "", "headers": { "Content-Type": "application/problem+json; charset=utf-8", "Content-Length": "0", "Date": "Thu, 06 May 2021 12:55:53 GMT", "Connection": "keep-alive", "Keep-Alive": "timeout=5" } } ${output} = {'seconds': 0.005876999999999999, 'status': 400, 'body': '', 'headers': {'Content-Type': 'application/problem+json; charset=utf-8', 'Content-Length': '0', 'Date': 'Thu, 06 May 2021 12:55:53 GMT', 'Con... ${response} ${output} Makes a variable available everywhere within the scope of the current suite. ${response} = {'seconds': 0.005876999999999999, 'status': 400, 'body': '', 'headers': {'Content-Type': 'application/problem+json; charset=utf-8', 'Content-Length': '0', 'Date': 'Thu, 06 May 2021 12:55:53 GMT', 'Con... 400 ${status} ${expected_status} Converts the given item to an integer number. ${status} = 400 ${response['status']} ${status} Fails if the given objects are unequal. Status code validated Logs the given message with the given level. Status code validated Check that the IUT responds with the requested list of subscription Reference "ETSI GS MEC 028 2.1.1, clause 7.5.3.1 https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription ${PIC_MEC_SYSTEM} == 1 Fails if the given condition is not true. ${PIC_SERVICES} == 1 Fails if the given condition is not true. {"Content-Type":"application/json"} settings *Sets new request headers or updates the existing.* {"Authorization":"${TOKEN}"} settings *Sets new request headers or updates the existing.* ${apiRoot}/${apiName}/${apiVersion}/subscriptions_INVALID_URI http *Sends a GET request to the endpoint.* Response body content is not JSON. Content-Type is: text/html; charset=utf-8 ${output} response I/O *Outputs JSON to terminal or a file.* { "seconds": 0.0049169999999999995, "status": 404, "body": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot GET /wai/v1/subscriptions_INVALID_URI</pre>\n</body>\n</html>\n", "headers": { "Content-Security-Policy": "default-src 'none'", "X-Content-Type-Options": "nosniff", "Content-Type": "text/html; charset=utf-8", "Content-Length": "171", "Date": "Thu, 06 May 2021 12:55:53 GMT", "Connection": "keep-alive", "Keep-Alive": "timeout=5" } } ${output} = {'seconds': 0.0049169999999999995, 'status': 404, 'body': '<!DOCTYPE html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot GET /wai/v1/subscriptio... ${response} ${output} Makes a variable available everywhere within the scope of the current suite. ${response} = {'seconds': 0.0049169999999999995, 'status': 404, 'body': '<!DOCTYPE html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot GET /wai/v1/subscriptio... 404 ${status} ${expected_status} Converts the given item to an integer number. ${status} = 404 ${response['status']} ${status} Fails if the given objects are unequal. Status code validated Logs the given message with the given level. Status code validated Check that the IUT responds with an error when a request with not existing parameters is sent Reference "ETSI GS MEC 028 2.1.1, clause 7.5.3.1 https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription All Tests WaiSubscription Response body content is not JSON. Content-Type is: text/html; charset=utf-8 Response body content is not JSON. Content-Type is: text/html; charset=utf-8