Skip to content
{
"tp_id": "TP/NGSI-LD/CI/Cons/TE/020_12",
"test_objective": "Check that you can retrieve the temporal evolution of an entity with a LanguageProperty property",
"reference": "ETSI GS CIM 009 V1.4.1 [], clauses 4.5.18, 4.5.7, 4.5.9, 5.7.3",
"config_id": "",
"parent_release": "v1.4.1",
"clauses": [
"4.5.18",
"4.5.7",
"4.5.9",
"5.7.3"
],
"pics_selection": "",
"keywords": [
"Retrieve Temporal Entity",
"Create Temporal Entity",
"Delete Initial Temporal Entity"
],
"teardown": "Delete Initial Temporal Entity",
"initial_condition": "with {\n the SUT containing an initial state\n}",
"test_cases": [
{
"name": "020_12_01 Retrieve the normalized temporal representation of an entity with a LanguageProperty property",
"permutation_tp_id": "TP/NGSI-LD/CI/Cons/TE/020_12_01",
"doc": "Check that you can retrieve the temporal evolution of an entity with a LanguageProperty property",
"tags": [
"4_5_18",
"4_5_7",
"5_7_3",
"since_v1.4.1",
"te-retrieve"
],
"setup": null,
"teardown": null,
"template": "Retrieve Temporal Entity",
"then": "then {\n the SUT sends a valid Response for the operations:\n Retrieve Temporal Representation Of Entity with Response Status Code set to 200 and\n Retrieve Temporal Representation Of Entity with Response Body containing EntityTemporal element containing attribute instances in the time range specified by the NGSI-LD temporal query:\n * the payload is defined in the file set to 'vehicle-language-property-normalized-temporal-representation-expectation.jsonld'\n * the id was changed to '${temporal_entity_representation_id}'\n * response body to be checked set to '${response.json()}'\n}",
"when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/temporal/entities/{temporal_entity_representation_id}'\n method set to 'GET'\n Retrieve Temporal Representation of Entity and\n Query Parameter: id set to '${temporal_entity_representation_id}' and\n Query Parameter: options set to '${EMPTY}' and\n Query Parameter: context set to 'https://forge.etsi.org/rep/cim/ngsi-ld-test-suite/-/raw/develop/resources/jsonld-contexts/ngsi-ld-test-suite-compound.jsonld'\n}",
"http_verb": "GET",
"endpoint": "temporal/entities/{temporal_entity_representation_id}"
},
{
"name": "020_12_02 Retrieve the simplified temporal representation of an entity with a LanguageProperty property",
"permutation_tp_id": "TP/NGSI-LD/CI/Cons/TE/020_12_02",
"doc": "Check that you can retrieve the temporal evolution of an entity with a LanguageProperty property",
"tags": [
"4_5_18",
"4_5_9",
"5_7_3",
"since_v1.4.1",
"te-retrieve"
],
"setup": null,
"teardown": null,
"template": "Retrieve Temporal Entity",
"then": "then {\n the SUT sends a valid Response for the operations:\n Retrieve Temporal Representation Of Entity with Response Status Code set to 200 and\n Retrieve Temporal Representation Of Entity with Response Body containing EntityTemporal element containing attribute instances in the time range specified by the NGSI-LD temporal query:\n * the payload is defined in the file set to 'vehicle-language-property-simplified-temporal-representation-expectation.jsonld'\n * the id was changed to '${temporal_entity_representation_id}'\n * response body to be checked set to '${response.json()}'\n}",
"when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/temporal/entities/{temporal_entity_representation_id}'\n method set to 'GET'\n Retrieve Temporal Representation of Entity and\n Query Parameter: id set to '${temporal_entity_representation_id}' and\n Query Parameter: options set to 'temporalValues' and\n Query Parameter: context set to 'https://forge.etsi.org/rep/cim/ngsi-ld-test-suite/-/raw/develop/resources/jsonld-contexts/ngsi-ld-test-suite-compound.jsonld'\n}",
"http_verb": "GET",
"endpoint": "temporal/entities/{temporal_entity_representation_id}"
}
],
"permutations": [
"then",
"when"
],
"robotpath": "ContextInformation/Consumption/TemporalEntity/RetrieveTemporalEvolutionOfEntity",
"robotfile": "020_12"
}
\ No newline at end of file
......@@ -27,7 +27,7 @@
"teardown": "Delete Initial Entity",
"template": "Create Entity Scenarios",
"then": "then {\n the SUT sends a valid Response for the operations:\n Create Entity Selecting Content Type with Response Status Code set to 201 and\n Create Entity Selecting Content Type with Response Header: Location containing $${entity_id} and\n Retrieve Entity by Id with Check Created Resource Set To and\n Query Parameter: 'created_resource' set to 'created_entity' and\n Query Parameter: 'response_body' set to 'response1.json()' and\n Query Parameter: 'ignored_keys' set to '${None}' list of keys\n}",
"when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/entities/'\n method set to 'POST'\n Request Header['Content-Type'] set to 'application/json' and\n payload defined in file: 'building-minimal-without-context-sample.jsonld'\n}",
"when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/entities/'\n method set to 'POST'\n Request Header['Content-Type'] set to 'application/json' and\n payload defined in file: 'building-minimal-sample.json'\n}",
"http_verb": "POST",
"endpoint": "entities/"
},
......
......@@ -58,7 +58,7 @@
"teardown": null,
"template": "Create Entity With Invalid Request Scenarios",
"then": "then {\n the SUT sends a valid Response for the operations:\n Create Entity From File with Response Status Code set to 400 and\n Create Entity From File with Response Body containing the type 'https://uri.etsi.org/ngsi-ld/errors/BadRequestData' and\n Create Entity From File with Response body containing 'title' element\n}",
"when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/entities/'\n method set to 'POST'\n Request creation of an entity from filename 'building-minimal-without-context-sample.jsonld' and Content-Type set to 'application/ld+json'\n}",
"when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/entities/'\n method set to 'POST'\n Request creation of an entity from filename 'building-minimal-sample.json' and Content-Type set to 'application/ld+json'\n}",
"http_verb": "POST",
"endpoint": "entities/"
}
......
{
"tp_id": "TP/NGSI-LD/CI/Prov/E/001_10",
"test_objective": "Check that you can create an entity with a LanguageProperty property",
"reference": "ETSI GS CIM 009 V1.4.1 [], clauses 4.5.18, 5.6.1",
"config_id": "",
"parent_release": "v1.4.1",
"clauses": [
"4.5.18",
"5.6.1"
],
"pics_selection": "",
"keywords": [
"Create Entity Scenarios",
"Delete Initial Entity"
],
"teardown": "None",
"initial_condition": "with {\n the SUT containing an initial state\n}",
"test_cases": [
{
"name": "001_10_01 EntityWithLanguageProperty",
"permutation_tp_id": "TP/NGSI-LD/CI/Prov/E/001_10_01",
"doc": "Check that you can create an entity with a LanguageProperty property",
"tags": [
"4_5_18",
"5_6_1",
"e-create",
"since_v1.4.1"
],
"setup": null,
"teardown": "Delete Initial Entity",
"template": "Create Entity Scenarios",
"then": "then {\n the SUT sends a valid Response for the operations:\n Create Entity Selecting Content Type with Response Status Code set to 201 and\n Create Entity Selecting Content Type with Response Header: Location containing $${entity_id} and\n Retrieve Entity by Id with Check Created Resource Set To and\n Query Parameter: 'created_resource' set to 'created_entity' and\n Query Parameter: 'response_body' set to 'response1.json()' and\n Query Parameter: 'ignored_keys' set to '${None}' list of keys\n}",
"when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/entities/'\n method set to 'POST'\n Request Header['Content-Type'] set to 'application/ld+json' and\n payload defined in file: 'building-language-property-sample.jsonld'\n}",
"http_verb": "POST",
"endpoint": "entities/"
}
],
"permutations": [],
"robotpath": "ContextInformation/Provision/Entities/CreateEntity",
"robotfile": "001_10"
}
\ No newline at end of file
{
"tp_id": "TP/NGSI-LD/CI/Prov/E/001_11",
"test_objective": "Check that you can create an entity with one or more scopes",
"reference": "ETSI GS CIM 009 V1.5.1 [], clause 4.18",
"config_id": "",
"parent_release": "v1.5.1",
"clauses": [
"4.18"
],
"pics_selection": "",
"keywords": [
"Create Entity Scenarios",
"Delete Initial Entity"
],
"teardown": "None",
"initial_condition": "with {\n the SUT containing an initial state\n}",
"test_cases": [
{
"name": "001_11_01 EntityWithOneScope",
"permutation_tp_id": "TP/NGSI-LD/CI/Prov/E/001_11_01",
"doc": "Check that you can create an entity with one or more scopes",
"tags": [
"4_18",
"e-create",
"since_v1.5.1"
],
"setup": null,
"teardown": "Delete Initial Entity",
"template": "Create Entity Scenarios",
"then": "then {\n the SUT sends a valid Response for the operations:\n Create Entity Selecting Content Type with Response Status Code set to 201 and\n Create Entity Selecting Content Type with Response Header: Location containing $${entity_id} and\n Retrieve Entity by Id with Check Created Resource Set To and\n Query Parameter: 'ignored_keys' set to '${None}' list of keys\n}",
"when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/entities/'\n method set to 'POST'\n Request Header['Content-Type'] set to 'application/json' and\n payload defined in file: 'building-minimal-with-one-scope.json'\n}",
"http_verb": "POST",
"endpoint": "entities/"
},
{
"name": "001_11_02 EntityWithManyScopes",
"permutation_tp_id": "TP/NGSI-LD/CI/Prov/E/001_11_02",
"doc": "Check that you can create an entity with one or more scopes",
"tags": [
"4_18",
"e-create",
"since_v1.5.1"
],
"setup": null,
"teardown": "Delete Initial Entity",
"template": "Create Entity Scenarios",
"then": "then {\n the SUT sends a valid Response for the operations:\n Create Entity Selecting Content Type with Response Status Code set to 201 and\n Create Entity Selecting Content Type with Response Header: Location containing $${entity_id} and\n Retrieve Entity by Id with Check Created Resource Set To and\n Query Parameter: 'ignored_keys' set to '${None}' list of keys\n}",
"when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/entities/'\n method set to 'POST'\n Request Header['Content-Type'] set to 'application/json' and\n payload defined in file: 'building-minimal-with-many-scopes.json'\n}",
"http_verb": "POST",
"endpoint": "entities/"
}
],
"permutations": [
"when"
],
"robotpath": "ContextInformation/Provision/Entities/CreateEntity",
"robotfile": "001_11"
}
\ No newline at end of file
{
"tp_id": "TP/NGSI-LD/CI/Prov/BE/003_10",
"test_objective": "Check that you can create a batch of entities where two have the same id",
"reference": "ETSI GS CIM 009 V1.5.1 [], clause 5.6.7",
"config_id": "",
"parent_release": "v1.5.1",
"clauses": [
"5.6.7"
],
"pics_selection": "",
"keywords": [
"Delete Entities"
],
"teardown": "None",
"initial_condition": "with {\n the SUT containing an initial state\n}",
"test_cases": [
{
"name": "003_10_01 Create a batch of three valid entities where two have the same id",
"permutation_tp_id": "TP/NGSI-LD/CI/Prov/BE/003_10_01",
"doc": "Check that you can create a batch of entities where two have the same id",
"tags": [
"5_6_7",
"be-create",
"since_v1.5.1"
],
"setup": null,
"teardown": "Delete Entities",
"template": null,
"then": "then {\n the SUT sends a valid Response for the operations:\n Batch Create Entities with Response Status Code set to 207 and\n Batch Create Entities with Response body containing batch operation result set to '${expected_batch_operation_result}'\n}",
"when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/entityOperations/create'\n method set to 'POST'\n Request Header['Content-Type'] set to '' and\n payload set to a list of entities to be created\n}",
"http_verb": "POST",
"endpoint": "entityOperations/create"
}
],
"permutations": [],
"robotpath": "ContextInformation/Provision/BatchEntities/CreateBatchOfEntities",
"robotfile": "003_10"
}
\ No newline at end of file
{
"tp_id": "TP/NGSI-LD/CI/Prov/BE/004_07",
"test_objective": "Check that you can upsert a batch of entities where two have the same id",
"reference": "ETSI GS CIM 009 V1.5.1 [], clause 5.6.8",
"config_id": "",
"parent_release": "v1.5.1",
"clauses": [
"5.6.8"
],
"pics_selection": "",
"keywords": [
"Delete Entities"
],
"teardown": "None",
"initial_condition": "with {\n the SUT containing an initial state\n}",
"test_cases": [
{
"name": "004_07_01 Upsert a batch of three valid entities where two have the same id",
"permutation_tp_id": "TP/NGSI-LD/CI/Prov/BE/004_07_01",
"doc": "Check that you can upsert a batch of where two have the same id",
"tags": [
"5_6_8",
"be-upsert",
"since_v1.5.1"
],
"setup": null,
"teardown": "Delete Entities",
"template": null,
"then": "then {\n the SUT sends a valid Response for the operations:\n Batch Upsert Entities with Response Status Code set to 201 and\n Batch Upsert Entities with Response Body set to an array of created entities ids\n}",
"when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/entityOperations/upsert?options=${update_option}'\n method set to 'POST'\n Request batch upsert operation over entity from filename '@{entities_to_be_upserted}' with update_option set to 'replace' and Content-Type set to 'application/ld+json'\n}",
"http_verb": "POST",
"endpoint": "entityOperations/upsert?options=${update_option}"
}
],
"permutations": [],
"robotpath": "ContextInformation/Provision/BatchEntities/UpsertBatchOfEntities",
"robotfile": "004_07"
}
\ No newline at end of file
{
"tp_id": "TP/NGSI-LD/CI/Prov/BE/006_04",
"test_objective": "Check that you can delete a batch of entities with the same id",
"reference": "ETSI GS CIM 009 V1.5.1 [], clause 5.6.10",
"config_id": "",
"parent_release": "v1.5.1",
"clauses": [
"5.6.10"
],
"pics_selection": "",
"keywords": [
"Setup Initial Entity"
],
"teardown": "None",
"initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Entity ${entity} \n with an id set to ${entityId} \n}",
"test_cases": [
{
"name": "006_04_01 Delete a batch of existing entities with the same id",
"permutation_tp_id": "TP/NGSI-LD/CI/Prov/BE/006_04_01",
"doc": "Check that you can delete a batch entities with the same id",
"tags": [
"5_6_10",
"be-delete",
"since_v1.5.1"
],
"setup": "Setup Initial Entity",
"teardown": null,
"template": null,
"then": "then {\n the SUT sends a valid Response for the operations:\n Batch Delete Entities with Response Status Code set to 207 and\n ${response.json()} with Response body containing batch operation result set to '${response1}'\n}",
"when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/entityOperations/delete'\n method set to 'POST'\n Batch Delete Entities: and\n Query Parameter: entities_ids_to_be_deleted set to '@{entities_ids_to_be_deleted}'\n}",
"http_verb": "POST",
"endpoint": "entityOperations/delete"
}
],
"permutations": [],
"robotpath": "ContextInformation/Provision/BatchEntities/DeleteBatchOfEntities",
"robotfile": "006_04"
}
\ No newline at end of file
......@@ -21,8 +21,8 @@
"permutation_tp_id": "TP/NGSI-LD/CI/Prov/EA/010_01_01",
"doc": "Check that you can append entity attributes",
"tags": [
"ea-append",
"5_6_3"
"5_6_3",
"ea-append"
],
"setup": "Create Initial Entity",
"teardown": "Delete Initial Entity",
......@@ -37,8 +37,8 @@
"permutation_tp_id": "TP/NGSI-LD/CI/Prov/EA/010_01_02",
"doc": "Check that you can append entity attributes",
"tags": [
"ea-append",
"5_6_3"
"5_6_3",
"ea-append"
],
"setup": "Create Initial Entity",
"teardown": "Delete Initial Entity",
......
{
"tp_id": "TP/NGSI-LD/CI/Prov/EA/010_06",
"test_objective": "Check that you can append a LanguageProperty property to an entity",
"reference": "ETSI GS CIM 009 V1.4.1 [], clauses 4.5.18, 5.6.3",
"config_id": "",
"parent_release": "v1.4.1",
"clauses": [
"4.5.18",
"5.6.3"
],
"pics_selection": "",
"keywords": [
"Append Attributes Without Params",
"Create Initial Entity",
"Delete Initial Entity"
],
"teardown": "None",
"initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Entity ${entity} \n with an id set to ${entityId} \n}",
"test_cases": [
{
"name": "010_06_01 Append a LanguageProperty property",
"permutation_tp_id": "TP/NGSI-LD/CI/Prov/EA/010_06_01",
"doc": "Check that you can append a LanguageProperty property to an entity",
"tags": [
"4_5_18",
"5_6_3",
"ea-append",
"since_v1.4.1"
],
"setup": "Create Initial Entity",
"teardown": "Delete Initial Entity",
"template": "Append Attributes Without Params",
"then": "then {\n the SUT sends a valid Response for the operations:\n Append Entity Attributes with Response Status Code set to 204 and\n Retrieve Entity by Id with Updated Entity set to ${entity}\n}",
"when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/entities/{id}/attrs'\n method set to 'POST'\n Append Entity Attributes and\n Query Parameter: id set to '${entity_id}' and\n Query Parameter: fragment_filename set to 'vehicle-new-language-property-fragment.jsonld' and\n Query Parameter: content_type set to 'application/ld+json'\n}",
"http_verb": "POST",
"endpoint": "entities/{id}/attrs"
}
],
"permutations": [],
"robotpath": "ContextInformation/Provision/EntityAttributes/AppendEntityAttributes",
"robotfile": "010_06"
}
\ No newline at end of file
{
"tp_id": "TP/NGSI-LD/CI/Prov/EA/010_07",
"test_objective": "Check that you can append a scope to an entity",
"reference": "ETSI GS CIM 009 V1.5.1 [], clauses 4.18, 5.6.3",
"config_id": "",
"parent_release": "v1.5.1",
"clauses": [
"4.18",
"5.6.3"
],
"pics_selection": "",
"keywords": [
"Create Initial Entity",
"Delete Initial Entity"
],
"teardown": "None",
"initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Entity ${entity} \n with an id set to ${entityId} \n}",
"test_cases": [
{
"name": "010_07_01 Append scope to an entity with overwrite enabled",
"permutation_tp_id": "TP/NGSI-LD/CI/Prov/EA/010_07_01",
"doc": "Check that scope is replaced if overwrite is enabled",
"tags": [
"4_18",
"5_6_3",
"ea-append",
"since_v1.5.1"
],
"setup": "Create Initial Entity",
"teardown": "Delete Initial Entity",
"template": null,
"then": "then {\n the SUT sends a valid Response for the operations:\n Append Entity Attributes with Response Status Code set to 204 and\n Append Entity Attributes with Updated Entity set to ${entity}\n}",
"when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/'\n method set to 'GET'\n Request Retrieve Entity by Id and\n Query Parameter: id set to '${entity_id}' and\n Query Parameter: accept set to 'application/json' and\n Query Parameter: context set to 'https://forge.etsi.org/rep/cim/ngsi-ld-test-suite/-/raw/develop/resources/jsonld-contexts/ngsi-ld-test-suite-compound.jsonld'\n}",
"http_verb": "GET",
"endpoint": ""
},
{
"name": "010_07_01 Append scope to an entity with overwrite disabled",
"permutation_tp_id": "TP/NGSI-LD/CI/Prov/EA/010_07_01",
"doc": "Check that scope is appended if overwrite is disabled",
"tags": [
"4_18",
"5_6_3",
"ea-append",
"since_v1.5.1"
],
"setup": "Create Initial Entity",
"teardown": "Delete Initial Entity",
"template": null,
"then": "then {\n the SUT sends a valid Response for the operations:\n Append Entity Attributes With Parameters with Response Status Code set to 204 and\n Append Entity Attributes With Parameters with Updated Entity set to ${entity}\n}",
"when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/'\n method set to 'GET'\n Request Retrieve Entity by Id and\n Query Parameter: id set to '${entity_id}' and\n Query Parameter: accept set to 'application/json' and\n Query Parameter: context set to 'https://forge.etsi.org/rep/cim/ngsi-ld-test-suite/-/raw/develop/resources/jsonld-contexts/ngsi-ld-test-suite-compound.jsonld'\n}",
"http_verb": "GET",
"endpoint": ""
}
],
"permutations": [
"then"
],
"robotpath": "ContextInformation/Provision/EntityAttributes/AppendEntityAttributes",
"robotfile": "010_07"
}
\ No newline at end of file
{
"tp_id": "TP/NGSI-LD/CI/Prov/EA/011_05",
"test_objective": "Check that you can update a scope in an entity",
"reference": "ETSI GS CIM 009 V1.5.1 [], clauses 4.18, 5.6.2",
"config_id": "",
"parent_release": "v1.5.1",
"clauses": [
"4.18",
"5.6.2"
],
"pics_selection": "",
"keywords": [
"Create Initial Entity",
"Delete Initial Entity"
],
"teardown": "None",
"initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Entity ${entity} \n with an id set to ${entityId} \n}",
"test_cases": [
{
"name": "011_05_01 Update scope to an entity already having a scope",
"permutation_tp_id": "TP/NGSI-LD/CI/Prov/EA/011_05_01",
"doc": "Check that scope is replaced if entity already has a scope",
"tags": [
"4_18",
"5_6_2",
"ea-append",
"since_v1.5.1"
],
"setup": "Create Initial Entity",
"teardown": "Delete Initial Entity",
"template": null,
"then": "then {\n the SUT sends a valid Response for the operations:\n Update Entity Attributes with Response Status Code set to 204 and\n Update Entity Attributes with Updated Entity set to ${entity}\n}",
"when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/'\n method set to 'GET'\n Request Retrieve Entity by Id and\n Query Parameter: id set to '${entity_id}' and\n Query Parameter: accept set to 'application/json' and\n Query Parameter: context set to 'https://forge.etsi.org/rep/cim/ngsi-ld-test-suite/-/raw/develop/resources/jsonld-contexts/ngsi-ld-test-suite-compound.jsonld'\n}",
"http_verb": "GET",
"endpoint": ""
},
{
"name": "011_05_02 Update scope to an entity not having a scope",
"permutation_tp_id": "TP/NGSI-LD/CI/Prov/EA/011_05_02",
"doc": "Check that scope is not added if entity does not already have a scope",
"tags": [
"4_18",
"5_6_2",
"ea-append",
"since_v1.5.1"
],
"setup": "Create Initial Entity",
"teardown": "Delete Initial Entity",
"template": null,
"then": "then {\n the SUT sends a valid Response for the operations:\n Update Entity Attributes with Response Status Code set to 207 and\n Update Entity Attributes with Updated Entity set to ${entity}\n}",
"when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/'\n method set to 'GET'\n Request Retrieve Entity by Id and\n Query Parameter: id set to '${entity_id}' and\n Query Parameter: accept set to 'application/json' and\n Query Parameter: context set to 'https://forge.etsi.org/rep/cim/ngsi-ld-test-suite/-/raw/develop/resources/jsonld-contexts/ngsi-ld-test-suite-compound.jsonld'\n}",
"http_verb": "GET",
"endpoint": ""
}
],
"permutations": [
"then"
],
"robotpath": "ContextInformation/Provision/EntityAttributes/UpdateEntityAttributes",
"robotfile": "011_05"
}
\ No newline at end of file
{
"tp_id": "TP/NGSI-LD/CI/Prov/EA/012_04",
"test_objective": "Check that you can perform a partial update on a LanguageProperty property",
"reference": "ETSI GS CIM 009 V1.4.1 [], clauses 4.5.18, 5.6.4",
"config_id": "",
"parent_release": "v1.4.1",
"clauses": [
"4.5.18",
"5.6.4"
],
"pics_selection": "",
"keywords": [
"Update Attributes",
"Initiate Test Case",
"Delete Initial Entities"
],
"teardown": "None",
"initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Entity ${entity} \n with an id set to ${entityId} \n and an attribute with an id set to ${atrId}\n}",
"test_cases": [
{
"name": "012_04_01 Check that you can partially update a LanguageProperty property",
"permutation_tp_id": "TP/NGSI-LD/CI/Prov/EA/012_04_01",
"doc": "Check that you can perform a partial update on a LanguageProperty property",
"tags": [
"4_5_18",
"5_6_4",
"ea-partial-update",
"since_v1.4.1"
],
"setup": "Initiate Test Case",
"teardown": "Delete Initial Entities",
"template": "Update Attributes",
"then": "then {\n the SUT sends a valid Response for the operations:\n Partial Update Entity Attributes with Response Status Code set to 204 and\n Retrieve Entity by Id with Updated Entity set to ${entity}\n}",
"when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/entities/{entityId}/attrs/{attributeId}'\n method set to 'PATCH'\n Request Partial Update Entity Attributes and\n Query Parameter: entityId set to '${entity_id}' and\n Query Parameter: AttributeId set to 'street' and\n Query Parameter: fragment_filename set to 'building-language-property-fragment.jsonld' and\n Query Parameter: content_type set to 'application/ld+json'\n}",
"http_verb": "PATCH",
"endpoint": "entities/{entityId}/attrs/{attributeId}"
}
],
"permutations": [],
"robotpath": "ContextInformation/Provision/EntityAttributes/PartialAttributeUpdate",
"robotfile": "012_04"
}
\ No newline at end of file
{
"tp_id": "TP/NGSI-LD/CI/Prov/EA/013_04",
"test_objective": "Check that you can delete a scope from an entity",
"reference": "ETSI GS CIM 009 V1.5.1 [], clauses 4.18, 5.6.5",
"config_id": "",
"parent_release": "v1.5.1",
"clauses": [
"4.18",
"5.6.5"
],
"pics_selection": "",
"keywords": [
"Create Initial Entity",
"Delete Initial Entity"
],
"teardown": "None",
"initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Entity ${entity} \n with an id set to ${entityId} \n}",
"test_cases": [
{
"name": "013_04 Delete scope from an entity",
"permutation_tp_id": "TP/NGSI-LD/CI/Prov/EA/013_04",
"doc": "Check that you can delete a scope from an entity",
"tags": [
"4_18",
"5_6_5",
"ea-delete",
"since_v1.5.1"
],
"setup": "Create Initial Entity",
"teardown": "Delete Initial Entity",
"template": null,
"then": "then {\n the SUT sends a valid Response for the operations:\n Delete Entity Attributes with Response Status Code set to 204 and\n Delete Entity Attributes with Updated Entity set to ${entity}\n}",
"when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/'\n method set to 'GET'\n Request Retrieve Entity by Id and\n Query Parameter: id set to '${entity_id}' and\n Query Parameter: accept set to 'application/json'\n}",
"http_verb": "GET",
"endpoint": ""
}
],
"permutations": [],
"robotpath": "ContextInformation/Provision/EntityAttributes/DeleteEntityAttribute",
"robotfile": "013_04"
}
\ No newline at end of file
{
"tp_id": "TP/NGSI-LD/CI/SUB/046_16_01",
"test_objective": "If a subscription defines an entity type selection query, a notification shall be sent whenever an entity matches the query.",
"reference": "ETSI GS CIM 009 V1.5.1 [], clause 5.8.6",
"config_id": "",
"parent_release": "v1.5.1",
"clauses": [
"5.8.6"
],
"pics_selection": "",
"keywords": [
"Setup Initial Subscription",
"Before Test",
"After Test"
],
"teardown": "After Test",
"initial_condition": "with {\n the SUT containing an initial state\n}",
"test_cases": [
{
"name": "046_16_01 Check that a notification is sent with entity matching the entity type selection",
"permutation_tp_id": "TP/NGSI-LD/CI/SUB/046_16_01",
"doc": "If a subscription defines an entity type selection query, a notification shall be sent whenever an entity matches the query.",
"tags": [
"5_8_6",
"since_v1.5.1",
"sub-notification"
],
"setup": null,
"teardown": null,
"template": null,
"then": "then {\n the client at '${endpoint}' receives a valid Notification containing:\n Notification received After waiting '5' seconds and\n Notification received Notification data: '${notification}[subscriptionId]' equal to '${subscription_id}' and\n Notification received Notification data: '${notification}[data][0][id]' equal to '${entity_id}' and\n Notification received The dictionary `${notification}' should contain the key 'data' and\n Notification received The variable `${notification}[data]' should not be '${EMPTY}'\n}",
"when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/entities/'\n method set to 'POST'\n Request Header['Content-Type'] set to 'application/ld+json' and\n payload defined in file: 'building-simple-attributes-sample.jsonld'\n}",
"http_verb": "POST",
"endpoint": "entities/"
}
],
"permutations": [],
"robotpath": "ContextInformation/Subscription/SubscriptionNotificationBehaviour",
"robotfile": "046_16_01"
}
\ No newline at end of file
{
"tp_id": "TP/NGSI-LD/CI/SUB/046_16_02",
"test_objective": "If a subscription defines an entity type selection query, a notification shall be sent whenever an entity matches the query.",
"reference": "ETSI GS CIM 009 V1.5.1 [], clause 5.8.6",
"config_id": "",
"parent_release": "v1.5.1",
"clauses": [
"5.8.6"
],
"pics_selection": "",
"keywords": [
"Setup Initial Subscription",
"Before Test",
"After Test"
],
"teardown": "After Test",
"initial_condition": "with {\n the SUT containing an initial state\n}",
"test_cases": [
{
"name": "046_16_02 Check that a notification is not sent if the entity type does not match the entity type selection",
"permutation_tp_id": "TP/NGSI-LD/CI/SUB/046_16_02",
"doc": "If a subscription defines an entity type selection query, a notification shall not be sent if the entity type does not match the query",
"tags": [
"5_8_6",
"since_v1.5.1",
"sub-notification"
],
"setup": null,
"teardown": null,
"template": null,
"then": "then {\n the client at '${endpoint}' receives a valid Notification containing:\n Notification received Waiting for no Notification data and\n Query Parameter: timeout set to '5'\n}",
"when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/entities/'\n method set to 'POST'\n Request Header['Content-Type'] set to 'application/ld+json' and\n payload defined in file: 'vehicle-simple-attributes-sample.jsonld'\n}",
"http_verb": "POST",
"endpoint": "entities/"
}
],
"permutations": [],
"robotpath": "ContextInformation/Subscription/SubscriptionNotificationBehaviour",
"robotfile": "046_16_02"
}
\ No newline at end of file
......@@ -14,6 +14,10 @@ def create_json_of_robotfile(robot_file_to_be_processed: str, computestatistics:
robot_path_to_be_processed, robot_file = find_robot_file(basedir=folder_test_suites,
filename=robot_file_to_be_processed)
if robot_path_to_be_processed is None and robot_file is None:
print(f'No robot file found with name: {robot_file_to_be_processed}')
exit(1)
# Check that the folder '/results' exists and if not, create it
if not exists(folder_result_path):
makedirs(folder_result_path)
......@@ -58,4 +62,5 @@ if __name__ == "__main__":
args = argv[1:]
robot_file_tbp = args[0]
resulting_json = create_json_of_robotfile(robot_file_tbp)
print("Correctly exiting")
print("\nCorrectly exiting")
from generateDocumentationData import create_json_of_robotfile
from os.path import dirname
from os.path import dirname, join
from os import walk
import requests
from requests import delete, post
import json
import re
......@@ -13,9 +13,9 @@ if __name__ == "__main__":
number_of_all_testcases = 0
number_of_successes = 0
ROBOT_FILE_EXTENSION = ".robot"
BASE_URL_OF_FORGE="https://forge.etsi.org/rep/cim/ngsi-ld-test-suite/-/blob/tests-up-to-1_5/TP/NGSI-LD/"
BASE_URL_OF_FORGE = "https://forge.etsi.org/rep/cim/ngsi-ld-test-suite/-/blob/master/TP/NGSI-LD/"
fullpath = basedir+"/TP/NGSI-LD"
fullpath = basedir + "/TP/NGSI-LD"
for root, dirs, files in walk(fullpath):
for filename in files:
if filename.endswith(ROBOT_FILE_EXTENSION):
......@@ -28,22 +28,25 @@ if __name__ == "__main__":
if "error_while_parsing" in json_of_test_case and json_of_test_case["error_while_parsing"]:
statistics[name_of_test_case]["failed"] = True
number_of_failures += 1
# we create a dummy entry in the "sub" test_cases, which has a "permutation_tp_id" equal to the robotfile
# We do not forget to add a trailing slash that will be removed later, and a tail _XX which will
# allow matching from the googlesheet?
json_of_test_case["test_cases"] = [{"permutation_tp_id":"/"+json_of_test_case["robotfile"]+"_XX"}]
# we create a dummy entry in the "sub" test_cases, which has a "permutation_tp_id" equal to the
# robotfile. We do not forget to add a trailing slash that will be removed later, and a tail _XX
# which will allow matching from the googlesheet?
json_of_test_case["test_cases"] = [{"permutation_tp_id": "/"+json_of_test_case["robotfile"]+"_XX"}]
else:
statistics[name_of_test_case]["failed"] = False
number_of_successes += 1
# we add it here because Fernando's code does not, in case of successfull parsing
# we add it here because Fernando's code does not, in case of successful parsing
json_of_test_case["error_while_parsing"] = False
# establish the right configuration
if json_of_test_case["robotpath"].startswith("ContextSource"):
json_of_test_case["config_id"] = "CF_05"
else:
json_of_test_case["config_id"] = "CF_01"
# upgrade the version and add the reference in square brackets
json_of_test_case["reference"] = re.sub(r"V1.3.1 \[\]", "version 1.5.1 [1]", json_of_test_case["reference"])
json_of_test_case["reference"] = (
re.sub(r"V1.3.1 \[\]", "version 1.5.1 [1]", json_of_test_case["reference"]))
# now for each permutation inside this test case, create the permutation's correct parent_release
if "test_cases" in json_of_test_case:
# grab everything that is a permutation_body inside the "sub" test_cases,
......@@ -71,13 +74,14 @@ if __name__ == "__main__":
print(f"Out of {number_of_all_testcases} testcases, {number_of_failures} of them failed to be correctly parsed.")
with open("testcases.json", 'w') as fp:
testcases_file = join(basedir, "doc", "results", "testcases.json")
with open(testcases_file, 'w') as fp:
json.dump(obj=testcases, indent=2, fp=fp)
# determine the structure/schema of a successfully parsed testcase
permutation_template = {}
for testcase in testcases:
if testcase["error_while_parsing"] == False:
if not testcase["error_while_parsing"]:
permutation_metadata_template = {}
# everything that is at the top level shall be extracted
for key, value in testcase.items():
......@@ -99,7 +103,7 @@ if __name__ == "__main__":
# everything that is a permutation_body inside the "sub" test_cases,
# shall rise on its own existenz and be joined with its permutation_metadata
for permutation_body in testcase["test_cases"]:
permutation_body_template = {} # new object, not changing permutation_body
permutation_body_template = {} # new object, not changing permutation_body
if "permutation_tp_id" in permutation_body:
permutation_body_template["stripped_permutation_tp_id"] = "UNKNOWN"
permutation_body_template["robotlink"] = "UNKNOWN"
......@@ -135,33 +139,42 @@ if __name__ == "__main__":
# unpack all permutations of testcases that are under the same .robot file
permutations = []
for testcase in testcases:
#print("--parsing "+testcase["robotfile"])
# print("--parsing "+testcase["robotfile"])
permutation_metadata = {}
# everything that is at the top level shall be extracted
for key, value in testcase.items():
if key != "test_cases":
permutation_metadata[key] = value
# start creating HTML link to robot file in repo
fullurl = BASE_URL_OF_FORGE + permutation_metadata["robotpath"] + "/" + permutation_metadata["robotfile"] + ROBOT_FILE_EXTENSION
fullurl = (BASE_URL_OF_FORGE + permutation_metadata["robotpath"] +
"/" + permutation_metadata["robotfile"] + ROBOT_FILE_EXTENSION)
if "test_cases" in testcase:
# everything that is a permutation_body inside the "sub" test_cases,
# shall rise on its own existenz and be joined with its permutation_metadata
for permutation_body in testcase["test_cases"]:
if "permutation_tp_id" in permutation_body:
ptpid = permutation_body["permutation_tp_id"]
ptpid = permutation_body["permutation_tp_id"]
if "then" not in permutation_body:
print(" no then in " + ptpid)
if "when" not in permutation_body:
print(" no when in " + ptpid)
#print("::: "+ptpid)
# print("::: "+ptpid)
# strip from beginning up to including the last "/"
permutation_body["stripped_permutation_tp_id"] = ptpid[ptpid.rindex("/")+1:]
# use the stripped_permutation_tp_id as text of the link
permutation_body["robotlink"] = "<a href=\""+fullurl+"\">" + permutation_body["stripped_permutation_tp_id"] + "</a>"
permutation_body["robotlink"] = (
"<a href=\""+fullurl+"\">" + permutation_body["stripped_permutation_tp_id"] + "</a>")
# So basically we append to the permutations a new dict that is the | union merge of the
# items of the template merged with the items of the concatenation of {**permutation_metadata, **permutation_body}
# For this last concatenation we use the unpacking python operator ** that strips the container dict from both
#permutations.append(dict(permutation_template.items() | {**permutation_metadata, **permutation_body}.items()))
# items of the template merged with the items of the concatenation of {**permutation_metadata,
# **permutation_body}. For this last concatenation we use the unpacking python operator ** that
# strips the container dict from both permutations.append(dict(permutation_template.items() |
# {**permutation_metadata, **permutation_body}.items()))
a = {**permutation_metadata, **permutation_body}
unpacked_testcase = {**permutation_template, **a}
# Perform a check on the clauses that must be equal to the
......@@ -177,25 +190,24 @@ if __name__ == "__main__":
exit(1)
else:
# there is no "sub" test_cases, it likely is a failed parsing
if testcase["error_while_parsing"] == False:
if not testcase["error_while_parsing"]:
print("PARSING NOT FAILED, BUT no permutations??")
exit(1)
with open("permutations.json", 'w') as fp:
permutations_file = join(basedir, "doc", "results", "permutations.json")
with open(permutations_file, 'w') as fp:
json.dump(obj=permutations, indent=2, fp=fp)
# The URL of the REST endpoint of the NoSQL database
dburl = 'http://ec2-18-153-159-20.eu-central-1.compute.amazonaws.com:5555/fromrobot'
requests.delete(dburl)
delete(dburl)
# Set the appropriate headers for JSON, if required by the endpoint
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
# Include any other headers the API requires
}
# Make the POST request
response = requests.post(dburl, data=json.dumps(permutations), headers=headers)
response = post(dburl, data=json.dumps(permutations), headers=headers)
......@@ -133,6 +133,13 @@ class TestCIConsumptions(TestCase):
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
def test_019_01_06(self):
robot_file = f'{self.folder_test_suites}/TP/NGSI-LD/ContextInformation/Consumption/Entity/QueryEntities/019_01_06.robot'
expected_value = f'{self.folder_test_suites}/doc/files/ContextInformation/Consumption/019_01_06.json'
difference_file = f'{self.folder_test_suites}/doc/results/out_019_01_06.json'
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
def test_019_02_01(self):
robot_file = f'{self.folder_test_suites}/TP/NGSI-LD/ContextInformation/Consumption/Entity/QueryEntities/019_02_01.robot'
expected_value = f'{self.folder_test_suites}/doc/files/ContextInformation/Consumption/019_02_01.json'
......@@ -231,6 +238,13 @@ class TestCIConsumptions(TestCase):
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
def test_019_08(self):
robot_file = f'{self.folder_test_suites}/TP/NGSI-LD/ContextInformation/Consumption/Entity/QueryEntities/019_08.robot'
expected_value = f'{self.folder_test_suites}/doc/files/ContextInformation/Consumption/019_08.json'
difference_file = f'{self.folder_test_suites}/doc/results/out_019_08.json'
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
def test_018_01_01(self):
robot_file = f'{self.folder_test_suites}/TP/NGSI-LD/ContextInformation/Consumption/Entity/RetrieveEntity/018_01_01.robot'
expected_value = f'{self.folder_test_suites}/doc/files/ContextInformation/Consumption/018_01_01.json'
......@@ -294,6 +308,13 @@ class TestCIConsumptions(TestCase):
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
def test_018_07(self):
robot_file = f'{self.folder_test_suites}/TP/NGSI-LD/ContextInformation/Consumption/Entity/RetrieveEntity/018_07.robot'
expected_value = f'{self.folder_test_suites}/doc/files/ContextInformation/Consumption/018_07.json'
difference_file = f'{self.folder_test_suites}/doc/results/out_018_07.json'
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
def test_021_01(self):
robot_file = f'{self.folder_test_suites}/TP/NGSI-LD/ContextInformation/Consumption/TemporalEntity/QueryTemporalEvolutionOfEntities/021_01.robot'
expected_value = f'{self.folder_test_suites}/doc/files/ContextInformation/Consumption/021_01.json'
......@@ -461,3 +482,17 @@ class TestCIConsumptions(TestCase):
difference_file = f'{self.folder_test_suites}/doc/results/out_020_10.json'
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
def test_020_11(self):
robot_file = f'{self.folder_test_suites}/TP/NGSI-LD/ContextInformation/Consumption/TemporalEntity/RetrieveTemporalEvolutionOfEntity/020_11.robot'
expected_value = f'{self.folder_test_suites}/doc/files/ContextInformation/Consumption/020_11.json'
difference_file = f'{self.folder_test_suites}/doc/results/out_020_11.json'
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
def test_020_12(self):
robot_file = f'{self.folder_test_suites}/TP/NGSI-LD/ContextInformation/Consumption/TemporalEntity/RetrieveTemporalEvolutionOfEntity/020_12.robot'
expected_value = f'{self.folder_test_suites}/doc/files/ContextInformation/Consumption/020_12.json'
difference_file = f'{self.folder_test_suites}/doc/results/out_020_12.json'
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
......@@ -105,6 +105,13 @@ class TestCIProvision(TestCase):
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
def test_003_10(self):
robot_file = f'{self.folder_test_suites}/TP/NGSI-LD/ContextInformation/Provision/BatchEntities/CreateBatchOfEntities/003_10.robot'
expected_value = f'{self.folder_test_suites}/doc/files/ContextInformation/Provision/003_10.json'
difference_file = f'{self.folder_test_suites}/doc/results/out_003_10.json'
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
def test_006_01(self):
robot_file = f'{self.folder_test_suites}/TP/NGSI-LD/ContextInformation/Provision/BatchEntities/DeleteBatchOfEntities/006_01.robot'
expected_value = f'{self.folder_test_suites}/doc/files/ContextInformation/Provision/006_01.json'
......@@ -126,6 +133,13 @@ class TestCIProvision(TestCase):
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
def test_006_04(self):
robot_file = f'{self.folder_test_suites}/TP/NGSI-LD/ContextInformation/Provision/BatchEntities/DeleteBatchOfEntities/006_04.robot'
expected_value = f'{self.folder_test_suites}/doc/files/ContextInformation/Provision/006_04.json'
difference_file = f'{self.folder_test_suites}/doc/results/out_006_04.json'
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
def test_005_01(self):
robot_file = f'{self.folder_test_suites}/TP/NGSI-LD/ContextInformation/Provision/BatchEntities/UpdateBatchOfEntities/005_01.robot'
expected_value = f'{self.folder_test_suites}/doc/files/ContextInformation/Provision/005_01.json'
......@@ -196,6 +210,13 @@ class TestCIProvision(TestCase):
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
def test_004_07(self):
robot_file = f'{self.folder_test_suites}/TP/NGSI-LD/ContextInformation/Provision/BatchEntities/UpsertBatchOfEntities/004_07.robot'
expected_value = f'{self.folder_test_suites}/doc/files/ContextInformation/Provision/004_07.json'
difference_file = f'{self.folder_test_suites}/doc/results/out_004_07.json'
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
def test_001_01(self):
robot_file = f'{self.folder_test_suites}/TP/NGSI-LD/ContextInformation/Provision/Entities/CreateEntity/001_01.robot'
expected_value = f'{self.folder_test_suites}/doc/files/ContextInformation/Provision/001_01.json'
......@@ -259,6 +280,20 @@ class TestCIProvision(TestCase):
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
def test_001_10(self):
robot_file = f'{self.folder_test_suites}/TP/NGSI-LD/ContextInformation/Provision/Entities/CreateEntity/001_10.robot'
expected_value = f'{self.folder_test_suites}/doc/files/ContextInformation/Provision/001_10.json'
difference_file = f'{self.folder_test_suites}/doc/results/out_001_10.json'
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
def test_001_11(self):
robot_file = f'{self.folder_test_suites}/TP/NGSI-LD/ContextInformation/Provision/Entities/CreateEntity/001_11.robot'
expected_value = f'{self.folder_test_suites}/doc/files/ContextInformation/Provision/001_11.json'
difference_file = f'{self.folder_test_suites}/doc/results/out_001_11.json'
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
def test_002_01(self):
robot_file = f'{self.folder_test_suites}/TP/NGSI-LD/ContextInformation/Provision/Entities/DeleteEntity/002_01.robot'
expected_value = f'{self.folder_test_suites}/doc/files/ContextInformation/Provision/002_01.json'
......@@ -315,6 +350,20 @@ class TestCIProvision(TestCase):
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
def test_010_06(self):
robot_file = f'{self.folder_test_suites}/TP/NGSI-LD/ContextInformation/Provision/EntityAttributes/AppendEntityAttributes/010_06.robot'
expected_value = f'{self.folder_test_suites}/doc/files/ContextInformation/Provision/010_06.json'
difference_file = f'{self.folder_test_suites}/doc/results/out_010_06.json'
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
def test_010_07(self):
robot_file = f'{self.folder_test_suites}/TP/NGSI-LD/ContextInformation/Provision/EntityAttributes/AppendEntityAttributes/010_07.robot'
expected_value = f'{self.folder_test_suites}/doc/files/ContextInformation/Provision/010_07.json'
difference_file = f'{self.folder_test_suites}/doc/results/out_010_07.json'
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
def test_013_01(self):
robot_file = f'{self.folder_test_suites}/TP/NGSI-LD/ContextInformation/Provision/EntityAttributes/DeleteEntityAttribute/013_01.robot'
expected_value = f'{self.folder_test_suites}/doc/files/ContextInformation/Provision/013_01.json'
......@@ -336,6 +385,13 @@ class TestCIProvision(TestCase):
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
def test_013_04(self):
robot_file = f'{self.folder_test_suites}/TP/NGSI-LD/ContextInformation/Provision/EntityAttributes/DeleteEntityAttribute/013_04.robot'
expected_value = f'{self.folder_test_suites}/doc/files/ContextInformation/Provision/013_04.json'
difference_file = f'{self.folder_test_suites}/doc/results/out_013_04.json'
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
def test_012_01(self):
robot_file = f'{self.folder_test_suites}/TP/NGSI-LD/ContextInformation/Provision/EntityAttributes/PartialAttributeUpdate/012_01.robot'
expected_value = f'{self.folder_test_suites}/doc/files/ContextInformation/Provision/012_01.json'
......@@ -357,6 +413,13 @@ class TestCIProvision(TestCase):
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
def test_012_04(self):
robot_file = f'{self.folder_test_suites}/TP/NGSI-LD/ContextInformation/Provision/EntityAttributes/PartialAttributeUpdate/012_04.robot'
expected_value = f'{self.folder_test_suites}/doc/files/ContextInformation/Provision/012_04.json'
difference_file = f'{self.folder_test_suites}/doc/results/out_012_04.json'
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
def test_011_01(self):
robot_file = f'{self.folder_test_suites}/TP/NGSI-LD/ContextInformation/Provision/EntityAttributes/UpdateEntityAttributes/011_01.robot'
expected_value = f'{self.folder_test_suites}/doc/files/ContextInformation/Provision/011_01.json'
......@@ -385,6 +448,13 @@ class TestCIProvision(TestCase):
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
def test_011_05(self):
robot_file = f'{self.folder_test_suites}/TP/NGSI-LD/ContextInformation/Provision/EntityAttributes/UpdateEntityAttributes/011_05.robot'
expected_value = f'{self.folder_test_suites}/doc/files/ContextInformation/Provision/011_05.json'
difference_file = f'{self.folder_test_suites}/doc/results/out_011_05.json'
self.common_function(robot_file=robot_file, expected_value=expected_value, difference_file=difference_file)
def test_007_01(self):
robot_file = f'{self.folder_test_suites}/TP/NGSI-LD/ContextInformation/Provision/TemporalEntity/CreateTemporalRepresentationOfEntity/007_01.robot'
expected_value = f'{self.folder_test_suites}/doc/files/ContextInformation/Provision/007_01.json'
......