[
  {
    "description": "minProperties validation",
    "database": {
      "schemas": [
        {
          "minProperties": 1,
          "extensible": true,
          "$id": "minProperties_0_0"
        }
      ]
    },
    "tests": [
      {
        "description": "longer is valid",
        "data": {
          "foo": 1,
          "bar": 2
        },
        "schema_id": "minProperties_0_0",
        "action": "validate",
        "expect": {
          "success": true
        }
      },
      {
        "description": "exact length is valid",
        "data": {
          "foo": 1
        },
        "schema_id": "minProperties_0_0",
        "action": "validate",
        "expect": {
          "success": true
        }
      },
      {
        "description": "too short is invalid",
        "data": {},
        "schema_id": "minProperties_0_0",
        "action": "validate",
        "expect": {
          "success": false
        }
      },
      {
        "description": "ignores arrays",
        "data": [],
        "schema_id": "minProperties_0_0",
        "action": "validate",
        "expect": {
          "success": true
        }
      },
      {
        "description": "ignores strings",
        "data": "",
        "schema_id": "minProperties_0_0",
        "action": "validate",
        "expect": {
          "success": true
        }
      },
      {
        "description": "ignores other non-objects",
        "data": 12,
        "schema_id": "minProperties_0_0",
        "action": "validate",
        "expect": {
          "success": true
        }
      }
    ]
  },
  {
    "description": "minProperties validation with a decimal",
    "database": {
      "schemas": [
        {
          "minProperties": 1,
          "extensible": true,
          "$id": "minProperties_1_0"
        }
      ]
    },
    "tests": [
      {
        "description": "longer is valid",
        "data": {
          "foo": 1,
          "bar": 2
        },
        "schema_id": "minProperties_1_0",
        "action": "validate",
        "expect": {
          "success": true
        }
      },
      {
        "description": "too short is invalid",
        "data": {},
        "schema_id": "minProperties_1_0",
        "action": "validate",
        "expect": {
          "success": false
        }
      }
    ]
  },
  {
    "description": "extensible: true allows extra properties in minProperties",
    "database": {
      "schemas": [
        {
          "minProperties": 1,
          "extensible": true,
          "$id": "minProperties_2_0"
        }
      ]
    },
    "tests": [
      {
        "description": "extra property counts towards minProperties",
        "data": {
          "foo": 1
        },
        "schema_id": "minProperties_2_0",
        "action": "validate",
        "expect": {
          "success": true
        }
      }
    ]
  }
]