{
    "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": false,
        "message": [
            "The schema has a root description.",
            "The attribute 'allOf[0].id' is properly documented.",
            "The attribute 'allOf[0].dateCreated' is properly documented.",
            "The attribute 'allOf[0].dateModified' is properly documented.",
            "The attribute 'allOf[0].source' is properly documented.",
            "The attribute 'allOf[0].name' is properly documented.",
            "The attribute 'allOf[0].alternateName' is properly documented.",
            "The attribute 'allOf[0].description' is properly documented.",
            "The attribute 'allOf[0].dataProvider' is properly documented.",
            "The attribute 'allOf[0].owner' is properly documented.",
            "The attribute 'allOf[0].owner.items.anyOf[0]' is properly documented.",
            "The attribute 'allOf[0].owner.items.anyOf[1]' is properly documented.",
            "The attribute 'allOf[0].seeAlso' is properly documented.",
            "The attribute 'allOf[1].location' is properly documented.",
            "The attribute 'allOf[1].address' is properly documented.",
            "The attribute 'allOf[1].address.streetAddress' is properly documented.",
            "The attribute 'allOf[1].address.addressLocality' is properly documented.",
            "The attribute 'allOf[1].address.addressRegion' is properly documented.",
            "The attribute 'allOf[1].address.addressCountry' is properly documented.",
            "The attribute 'allOf[1].address.postalCode' is properly documented.",
            "The attribute 'allOf[1].address.postOfficeBoxNumber' is properly documented.",
            "The attribute 'allOf[1].address.streetNr' is properly documented.",
            "The attribute 'allOf[1].address.district' is properly documented.",
            "The attribute 'allOf[1].areaServed' is properly documented.",
            "The attribute 'allOf[2].openingHoursSpecification' is properly documented.",
            "The attribute 'allOf[2].openingHoursSpecification.items.opens' is properly documented.",
            "The attribute 'allOf[2].openingHoursSpecification.items.closes' is properly documented.",
            "The attribute 'allOf[2].openingHoursSpecification.items.dayOfWeek' is properly documented.",
            "The attribute 'allOf[2].openingHoursSpecification.items.validFrom' is properly documented.",
            "The attribute 'allOf[2].openingHoursSpecification.items.validThrough' is properly documented.",
            "The attribute 'allOf[2].startDate' is properly documented.",
            "The attribute 'allOf[2].endDate' is properly documented.",
            "The attribute 'allOf[2].openingHours' is properly documented.",
            "The attribute 'allOf[3].type' is properly documented.",
            "The attribute 'allOf[3].category' is properly documented.",
            "*** The attribute 'allOf[3].category.items' is missing a description.",
            "The attribute 'allOf[3].contactPoint.contactType' is properly documented.",
            "The attribute 'allOf[3].contactPoint.email' is properly documented.",
            "The attribute 'allOf[3].contactPoint.telephone' is properly documented.",
            "The attribute 'allOf[3].contactPoint.name' is properly documented.",
            "The attribute 'allOf[3].contactPoint.url' is properly documented.",
            "The attribute 'allOf[3].contactPoint.areaServed' is properly documented.",
            "The attribute 'allOf[3].contactPoint.availableLanguage' is properly documented.",
            "The attribute 'allOf[3].contactPoint.contactOption' is properly documented.",
            "The attribute 'allOf[3].contactPoint.faxNumber' is properly documented.",
            "The attribute 'allOf[3].contactPoint.productSupported' is properly documented.",
            "The attribute 'allOf[3].contactPoint.availabilityRestriction' is properly documented.",
            "The attribute 'allOf[3].contactPoint' is properly documented.",
            "The attribute 'allOf[3].refSeeAlso' is properly documented.",
            "*** The attribute 'allOf[3].refSeeAlso.items.anyOf[0]' is missing a description.",
            "The attribute 'allOf[3].wardId' is properly documented.",
            "The attribute 'allOf[3].zoneId' is properly documented.",
            "The attribute 'allOf[3].additionalInfoURL' is properly documented.",
            "The attribute 'allOf[3].zoneName' is properly documented.",
            "*** The attribute 'allOf[3].municipalityInfo' has an invalid description: *** Invalid format for 'Model:'. Expected format: Model:'value'.",
            "The attribute 'allOf[3].municipalityInfo.district' is properly documented.",
            "The attribute 'allOf[3].municipalityInfo.ulbName' is properly documented.",
            "The attribute 'allOf[3].municipalityInfo.cityID' is properly documented.",
            "The attribute 'allOf[3].municipalityInfo.wardID' is properly documented.",
            "The attribute 'allOf[3].municipalityInfo.stateName' is properly documented.",
            "The attribute 'allOf[3].municipalityInfo.cityName' is properly documented.",
            "The attribute 'allOf[3].municipalityInfo.zoneName' is properly documented.",
            "The attribute 'allOf[3].municipalityInfo.zoneID' is properly documented.",
            "The attribute 'allOf[3].municipalityInfo.wardName' is properly documented.",
            "The attribute 'allOf[3].municipalityInfo.wardNum' is properly documented.",
            "The attribute 'allOf[3].title' is properly documented.",
            "The attribute 'allOf[3].relevance' is properly documented.",
            "The attribute 'allOf[3].image' is properly documented.",
            "The attribute 'allOf[3].priceRange' is properly documented.",
            "The attribute 'allOf[3].capacity' is properly documented.",
            "The attribute 'allOf[3].occupancy' is properly documented.",
            "The attribute 'allOf[3].openingHours' is properly documented.",
            "The attribute 'allOf[3].openingHoursSpecification' is properly documented."
        ]
    },
    "test_schema_metadata": {
        "test_name": "Validating schema.json metadata",
        "success": true,
        "message": [
            "$schema is valid",
            "modelTags is present and not empty",
            "$schemaVersion is valid",
            "title is valid",
            "description is valid",
            "$id is valid and points to a real site",
            "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: {'type': 'Property', 'value': [{'dayOfWeek': 'http://schema.org/Monday', 'opens': '00:00', 'closes': '23:59'}, {'dayOfWeek': 'http://schema.org/Tuesday', 'opens': '00:00', 'closes': '23:59'}, {'dayOfWeek': 'http://schema.org/Wednesday', 'opens': '00:00', 'closes': '23:59'}, {'dayOfWeek': 'http://schema.org/Thursday', 'opens': '00:00', 'closes': '23:59'}, {'dayOfWeek': 'http://schema.org/Friday', 'opens': '00:00', 'closes': '23:59'}, {'dayOfWeek': 'http://schema.org/Saturday', 'opens': '00:00', 'closes': '23:59'}, {'dayOfWeek': 'http://schema.org/Sunday', 'opens': '00:00', 'closes': '23:59'}]} is not of type 'array'\n\nFailed validating 'type' in schema['allOf'][2]['properties']['openingHoursSpecification']:\n    {'description': 'Property. A structured value providing information '\n                    'about the opening hours of a place or a certain '\n                    'service inside a place. '\n                    \"Model:'https://schema.org/openingHoursSpecification'\",\n     'items': {'properties': {'closes': {'description': 'Property.  \\tThe '\n                                                        'closing hour of '\n                                                        'the place or '\n                                                        'service on the '\n                                                        'given day(s) of '\n                                                        'the week',\n                                         'format': 'time',\n                                         'type': 'string'},\n                              'dayOfWeek': {'anyOf': [{'description': 'Property. '\n                                                                      'Array '\n                                                                      'of '\n                                                                      'days '\n                                                                      'of '\n                                                                      'the '\n                                                                      'week',\n                                                       'enum': ['Monday',\n                                                                'Tuesday',\n                                                                'Wednesday',\n                                                                'Thursday',\n                                                                'Friday',\n                                                                'Saturday',\n                                                                'Sunday',\n                                                                'PublicHolidays'],\n                                                       'type': 'string'},\n                                                      {'description': 'Property. '\n                                                                      'Array '\n                                                                      'of '\n                                                                      'days '\n                                                                      'of '\n                                                                      'the '\n                                                                      'week',\n                                                       'enum': ['https://schema.org/Monday',\n                                                                'https://schema.org/Tuesday',\n                                                                'https://schema.org/Wednesday',\n                                                                'https://schema.org/Thursday',\n                                                                'https://schema.org/Friday',\n                                                                'https://schema.org/Saturday',\n                                                                'https://schema.org/Sunday',\n                                                                'https://schema.org/PublicHolidays'],\n                                                       'type': 'string'}],\n                                            'description': 'Property. '\n                                                           \"Model:'http://schema.org/dayOfWeek'. \"\n                                                           'The day of the '\n                                                           'week for which '\n                                                           'these opening '\n                                                           'hours are '\n                                                           'valid. URLs '\n                                                           'from '\n                                                           'GoodRelations '\n                                                           '(http://purl.org/goodrelations/v1) '\n                                                           'are used (for '\n                                                           'Monday, '\n                                                           'Tuesday, '\n                                                           'Wednesday, '\n                                                           'Thursday, '\n                                                           'Friday, '\n                                                           'Saturday, '\n                                                           'Sunday plus a '\n                                                           'special entry '\n                                                           'for '\n                                                           'PublicHolidays)',\n                                            'type': 'string'},\n                              'opens': {'description': 'Property. The '\n                                                       'opening hour of '\n                                                       'the place or '\n                                                       'service on the '\n                                                       'given day(s) of '\n                                                       'the week',\n                                        'format': 'time',\n                                        'type': 'string'},\n                              'validFrom': {'anyOf': [{'description': 'Property. '\n                                                                      \"Model:'http://schema.org/Date\",\n                                                       'format': 'date',\n                                                       'type': 'string'},\n                                                      {'description': 'Property. '\n                                                                      \"Model:'http://schema.org/DateTime\",\n                                                       'format': 'date-time',\n                                                       'type': 'string'}],\n                                            'description': 'Property. The '\n                                                           'date when the '\n                                                           'item becomes '\n                                                           'valid. A date '\n                                                           'value in the '\n                                                           'form '\n                                                           'CCYY-MM-DD or '\n                                                           'a combination '\n                                                           'of date and '\n                                                           'time of day in '\n                                                           'the form '\n                                                           '[-]CCYY-MM-DDThh:mm:ss[Z|(+|-)hh:mm] '\n                                                           'in ISO 8601 '\n                                                           'date format'},\n                              'validThrough': {'anyOf': [{'description': 'Property. '\n                                                                         \"Model:'http://schema.org/Date\",\n                                                          'format': 'date',\n                                                          'type': 'string'},\n                                                         {'description': 'Property. '\n                                                                         \"Model:'http://schema.org/DateTime\",\n                                                          'format': 'date-time',\n                                                          'type': 'string'}],\n                                               'description': 'Property. '\n                                                              'The date '\n                                                              'after when '\n                                                              'the item is '\n                                                              'not valid. '\n                                                              'For example '\n                                                              'the end of '\n                                                              'an offer, '\n                                                              'salary '\n                                                              'period, or '\n                                                              'a period of '\n                                                              'opening '\n                                                              'hours. A '\n                                                              'date value '\n                                                              'in the form '\n                                                              'CCYY-MM-DD '\n                                                              'or a '\n                                                              'combination '\n                                                              'of date and '\n                                                              'time of day '\n                                                              'in the form '\n                                                              '[-]CCYY-MM-DDThh:mm:ss[Z|(+|-)hh:mm] '\n                                                              'in ISO 8601 '\n                                                              'date format',\n                                               'type': 'string'}},\n               'type': 'object'},\n     'minItems': 1,\n     'type': 'array'}\n\nOn instance['openingHoursSpecification']:\n    {'type': 'Property',\n     'value': [{'closes': '23:59',\n                'dayOfWeek': 'http://schema.org/Monday',\n                'opens': '00:00'},\n               {'closes': '23:59',\n                'dayOfWeek': 'http://schema.org/Tuesday',\n                'opens': '00:00'},\n               {'closes': '23:59',\n                'dayOfWeek': 'http://schema.org/Wednesday',\n                'opens': '00:00'},\n               {'closes': '23:59',\n                'dayOfWeek': 'http://schema.org/Thursday',\n                'opens': '00:00'},\n               {'closes': '23:59',\n                'dayOfWeek': 'http://schema.org/Friday',\n                'opens': '00:00'},\n               {'closes': '23:59',\n                'dayOfWeek': 'http://schema.org/Saturday',\n                'opens': '00:00'},\n               {'closes': '23:59',\n                'dayOfWeek': 'http://schema.org/Sunday',\n                'opens': '00:00'}]}",
            "example.jsonld: *** JSON data is not valid against the schema: 'http://schema.org/Monday' is not valid under any of the given schemas\n\nFailed validating 'anyOf' in schema['allOf'][2]['properties']['openingHoursSpecification']['items']['properties']['dayOfWeek']:\n    {'anyOf': [{'description': 'Property. Array of days of the week',\n                'enum': ['Monday',\n                         'Tuesday',\n                         'Wednesday',\n                         'Thursday',\n                         'Friday',\n                         'Saturday',\n                         'Sunday',\n                         'PublicHolidays'],\n                'type': 'string'},\n               {'description': 'Property. Array of days of the week',\n                'enum': ['https://schema.org/Monday',\n                         'https://schema.org/Tuesday',\n                         'https://schema.org/Wednesday',\n                         'https://schema.org/Thursday',\n                         'https://schema.org/Friday',\n                         'https://schema.org/Saturday',\n                         'https://schema.org/Sunday',\n                         'https://schema.org/PublicHolidays'],\n                'type': 'string'}],\n     'description': \"Property. Model:'http://schema.org/dayOfWeek'. The \"\n                    'day of the week for which these opening hours are '\n                    'valid. URLs from GoodRelations '\n                    '(http://purl.org/goodrelations/v1) are used (for '\n                    'Monday, Tuesday, Wednesday, Thursday, Friday, '\n                    'Saturday, Sunday plus a special entry for '\n                    'PublicHolidays)',\n     'type': 'string'}\n\nOn instance['openingHoursSpecification'][0]['dayOfWeek']:\n    'http://schema.org/Monday'",
            "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": false,
        "message": [
            "The following attributes in the payload are not defined in the schema:",
            "*** Attribute 'openingHours.type' in the payload is not defined in the schema.",
            "*** Attribute 'openingHours.value' in the payload is not defined in the schema.",
            "*** Attribute 'openingHoursSpecification.type' in the payload is not defined in the schema.",
            "*** Attribute 'openingHoursSpecification.value' in the payload is not defined in the schema.",
            "*** Attribute 'openingHoursSpecification.value.closes' in the payload is not defined in the schema.",
            "*** Attribute 'openingHoursSpecification.value.dayOfWeek' in the payload is not defined in the schema.",
            "*** Attribute 'openingHoursSpecification.value.opens' in the payload is not defined in the schema."
        ]
    },
    "test_array_object_structure": {
        "test_name": "Checking array and object attributes structure",
        "success": true,
        "message": []
    },
    "email": "alberto.abella@fiware.org"
}