1[
2    {
3        "description": "oneOf",
4        "schema": {
5            "oneOf": [
6                {
7                    "type": "integer"
8                },
9                {
10                    "minimum": 2
11                }
12            ]
13        },
14        "tests": [
15            {
16                "description": "first oneOf valid",
17                "data": 1,
18                "valid": true
19            },
20            {
21                "description": "second oneOf valid",
22                "data": 2.5,
23                "valid": true
24            },
25            {
26                "description": "both oneOf valid",
27                "data": 3,
28                "valid": false
29            },
30            {
31                "description": "neither oneOf valid",
32                "data": 1.5,
33                "valid": false
34            }
35        ]
36    },
37    {
38        "description": "oneOf with base schema",
39        "schema": {
40            "type": "string",
41            "oneOf" : [
42                {
43                    "minLength": 2
44                },
45                {
46                    "maxLength": 4
47                }
48            ]
49        },
50        "tests": [
51            {
52                "description": "mismatch base schema",
53                "data": 3,
54                "valid": false
55            },
56            {
57                "description": "one oneOf valid",
58                "data": "foobar",
59                "valid": true
60            },
61            {
62                "description": "both oneOf valid",
63                "data": "foo",
64                "valid": false
65            }
66        ]
67    },
68    {
69        "description": "oneOf complex types",
70        "schema": {
71            "oneOf": [
72                {
73                    "properties": {
74                        "bar": {"type": "integer"}
75                    },
76                    "required": ["bar"]
77                },
78                {
79                    "properties": {
80                        "foo": {"type": "string"}
81                    },
82                    "required": ["foo"]
83                }
84            ]
85        },
86        "tests": [
87            {
88                "description": "first oneOf valid (complex)",
89                "data": {"bar": 2},
90                "valid": true
91            },
92            {
93                "description": "second oneOf valid (complex)",
94                "data": {"foo": "baz"},
95                "valid": true
96            },
97            {
98                "description": "both oneOf valid (complex)",
99                "data": {"foo": "baz", "bar": 2},
100                "valid": false
101            },
102            {
103                "description": "neither oneOf valid (complex)",
104                "data": {"foo": 2, "bar": "quux"},
105                "valid": false
106            }
107        ]
108    }
109]
110