{
  "id": "testcase.json",
  "$schema": "http://json-schema.org/draft-04/schema",
  "title": "Testcase",
  "description": "A single test case",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Name of this testcase/scenario"
    },
    "assertion": {
      "type": "string",
      "description": "Description of what this testcase asserts"
    },
    "inputs": {
      "description": "The inputs send to the fixture input ports, or a sequence of such inputs",
      "oneOf": [
        {
          "type": "object"
        },
        {
          "type": "array",
          "items": {
            "type": "object"
          }
        }
      ]
    },
    "expect": {
      "description": "Expected data on fixture output ports.\nCan either be an object, or a sequence of such objects.\n",
      "oneOf": [
        {
          "$ref": "outputdata.json"
        },
        {
          "type": "array",
          "items": [
            {
              "$ref": "outputdata.json"
            }
          ]
        }
      ]
    },
    "timeout": {
      "type": "number",
      "description": "Timeout (in milliseconds). Overrides that set in the suite",
      "default": 2000
    },
    "skip": {
      "type": "string",
      "description": "Flag to skip testcase.\nShould be a description of the reason for skipping.\n"
    }
  },
  "required": [
    "name",
    "assertion",
    "inputs",
    "expect"
  ]
}