{
    "test_file_exists": {
        "test_name": "Checking if the mandatory files according to the contribution manual are present",
        "success": true,
        "message": [
            "The file 'schema.json' exists",
            "The file 'examples/example.json' exists",
            "The file 'examples/example-normalized.json' exists",
            "The file 'examples/example.jsonld' exists",
            "The file 'examples/example-normalized.jsonld' exists",
            "The file 'notes.yaml' exists",
            "The file 'ADOPTERS.yaml' exists"
        ]
    },
    "test_valid_json": {
        "test_name": "Checking that the mandatory json files are valid json files",
        "success": true,
        "message": [
            "file schema.json is a valid json",
            "file examples/example.json is a valid json",
            "file examples/example-normalized.json is a valid json",
            "file examples/example.jsonld is a valid json",
            "file examples/example-normalized.jsonld is a valid json"
        ]
    },
    "test_yaml_files": {
        "test_name": "Checking that ADOPTERS.yaml and notes.yaml are valid YAML files",
        "success": true,
        "message": [
            "The file 'ADOPTERS.yaml' is a valid YAML file.",
            "The file 'notes.yaml' is a valid YAML file."
        ]
    },
    "test_schema_descriptions": {
        "test_name": "Checking that the schema is properly described in all its attributes",
        "success": true,
        "message": [
            "The schema has a root description.",
            "The attribute 'id' is properly documented.",
            "The attribute 'type' is properly documented.",
            "The attribute 'commandTime' is properly documented.",
            "The attribute 'receivedTime' is properly documented.",
            "The attribute 'receivedStopCommand' is properly documented.",
            "The attribute 'resultsOfStopCommand' is properly documented.",
            "The attribute 'errors' is properly documented."
        ]
    },
    "test_schema_metadata": {
        "test_name": "Validating schema.json metadata",
        "success": true,
        "message": [
            "$schema is valid",
            "Warning: modelTags is empty",
            "$schemaVersion is valid",
            "title is valid",
            "*** description is too short (minimum 50 characters) (found: 27 characters)",
            "Warning the $id is  not pointing to a valid url. Check when publishing",
            "Warning: derivedFrom is missing",
            "required section is valid and contains 'id' and 'type'",
            "Warning: license is missing"
        ]
    },
    "test_string_incorrect": {
        "test_name": "Checking invalid string attributes",
        "success": true,
        "message": []
    },
    "test_valid_keyvalues_examples": {
        "test_name": "Checking that example files are valid against the schema",
        "success": false,
        "message": [
            "example.json: *** JSON data is not valid against the schema: 'result' is a required property\n\nFailed validating 'required' in schema:\n    {'$id': 'https://smart-data-models.github.io/datamodel.AutonomousMobileRobot/StopCommandReturnMessage/schema.json',\n     '$schema': 'https://json-schema.org/draft/2020-12/schema',\n     '$schemaVersion': '0.0.2',\n     'description': 'Stop Command Return Message',\n     'modelTags': '',\n     'properties': {'commandTime': {'$ref': 'https://raw.githubusercontent.com/smart-data-models/dataModel.AutonomousMobileRobot/master/AutonomousMobileRobot-schema.json#/definitions/commandTime'},\n                    'errors': {'$ref': 'https://smart-data-models.github.io/dataModel.AutonomousMobileRobot/AutonomousMobileRobot-schema.json#/definitions/errors'},\n                    'id': {'$ref': 'https://smart-data-models.github.io/data-models/common-schema.json#/definitions/GSMA-Commons/properties/id'},\n                    'receivedStopCommand': {'description': 'Property. The '\n                                                           'stop command '\n                                                           'which the '\n                                                           'robot '\n                                                           'received.',\n                                            'enum': ['stop'],\n                                            'type': 'string'},\n                    'receivedTime': {'$ref': 'https://raw.githubusercontent.com/smart-data-models/dataModel.AutonomousMobileRobot/master/AutonomousMobileRobot-schema.json#/definitions/receivedTime'},\n                    'resultsOfStopCommand': {'$ref': 'https://smart-data-models.github.io/dataModel.AutonomousMobileRobot/AutonomousMobileRobot-schema.json#/definitions/resultsOfStopCommand'},\n                    'type': {'description': 'Property. NGSI Entity type. '\n                                            'It has to be '\n                                            'StopCommandReturnMessage',\n                             'enum': ['StopCommandReturnMessage'],\n                             'type': 'string'}},\n     'required': ['commandTime',\n                  'errors',\n                  'id',\n                  'receivedStopCommand',\n                  'receivedTime',\n                  'result',\n                  'type'],\n     'title': 'Stop Command Return Message ported to Smart Data Models',\n     'type': 'object'}\n\nOn instance:\n    {'commandTime': '2019-06-07T08:39:42.921+09:00',\n     'errors': [],\n     'id': 'Robot:Mega_rover:01',\n     'receivedStopCommand': 'stop',\n     'receivedTime': '2019-06-07T08:39:40.064+09:00',\n     'resultsOfStopCommand': 'ack',\n     'type': 'StopCommandReturnMessage'}",
            "example.jsonld: *** JSON data is not valid against the schema: 'result' is a required property\n\nFailed validating 'required' in schema:\n    {'$id': 'https://smart-data-models.github.io/datamodel.AutonomousMobileRobot/StopCommandReturnMessage/schema.json',\n     '$schema': 'https://json-schema.org/draft/2020-12/schema',\n     '$schemaVersion': '0.0.2',\n     'description': 'Stop Command Return Message',\n     'modelTags': '',\n     'properties': {'commandTime': {'$ref': 'https://raw.githubusercontent.com/smart-data-models/dataModel.AutonomousMobileRobot/master/AutonomousMobileRobot-schema.json#/definitions/commandTime'},\n                    'errors': {'$ref': 'https://smart-data-models.github.io/dataModel.AutonomousMobileRobot/AutonomousMobileRobot-schema.json#/definitions/errors'},\n                    'id': {'$ref': 'https://smart-data-models.github.io/data-models/common-schema.json#/definitions/GSMA-Commons/properties/id'},\n                    'receivedStopCommand': {'description': 'Property. The '\n                                                           'stop command '\n                                                           'which the '\n                                                           'robot '\n                                                           'received.',\n                                            'enum': ['stop'],\n                                            'type': 'string'},\n                    'receivedTime': {'$ref': 'https://raw.githubusercontent.com/smart-data-models/dataModel.AutonomousMobileRobot/master/AutonomousMobileRobot-schema.json#/definitions/receivedTime'},\n                    'resultsOfStopCommand': {'$ref': 'https://smart-data-models.github.io/dataModel.AutonomousMobileRobot/AutonomousMobileRobot-schema.json#/definitions/resultsOfStopCommand'},\n                    'type': {'description': 'Property. NGSI Entity type. '\n                                            'It has to be '\n                                            'StopCommandReturnMessage',\n                             'enum': ['StopCommandReturnMessage'],\n                             'type': 'string'}},\n     'required': ['commandTime',\n                  'errors',\n                  'id',\n                  'receivedStopCommand',\n                  'receivedTime',\n                  'result',\n                  'type'],\n     'title': 'Stop Command Return Message ported to Smart Data Models',\n     'type': 'object'}\n\nOn instance:\n    {'@context': ['https://raw.githubusercontent.com/smart-data-models/dataModel.AutonomousMobileRobot/master/context.jsonld'],\n     'commandTime': '2019-06-07T08:39:42.921+09:00',\n     'errors': [],\n     'id': 'urn:ngsi-ld:Robot:Mega_rover:01',\n     'receivedStopCommand': 'stop',\n     'receivedTime': '2019-06-07T08:39:40.064+09:00',\n     'resultsOfStopCommand': 'ack',\n     'type': 'StopCommandReturnMessage'}",
            "All @context URLs are valid."
        ]
    },
    "test_valid_ngsiv2": {
        "test_name": "Validating example-normalized.json as NGSI v2 normalized format",
        "success": true,
        "message": []
    },
    "test_valid_ngsild": {
        "test_name": "Validating example-normalized.jsonld as NGSI-LD format",
        "success": true,
        "message": [
            "All @context URLs are valid."
        ]
    },
    "test_duplicated_attributes": {
        "test_name": "Checking that all payload attributes are defined in the schema",
        "success": true,
        "message": []
    },
    "test_array_object_structure": {
        "test_name": "Checking array and object attributes structure",
        "success": true,
        "message": []
    },
    "email": "u@e.es"
}