cuelang.org/go@v0.13.0/encoding/jsonschema/testdata/external/tests/draft4/oneOf.json (about)

     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": {
    75  							"type": "integer"
    76  						}
    77  					},
    78  					"required": [
    79  						"bar"
    80  					]
    81  				},
    82  				{
    83  					"properties": {
    84  						"foo": {
    85  							"type": "string"
    86  						}
    87  					},
    88  					"required": [
    89  						"foo"
    90  					]
    91  				}
    92  			]
    93  		},
    94  		"tests": [
    95  			{
    96  				"description": "first oneOf valid (complex)",
    97  				"data": {
    98  					"bar": 2
    99  				},
   100  				"valid": true
   101  			},
   102  			{
   103  				"description": "second oneOf valid (complex)",
   104  				"data": {
   105  					"foo": "baz"
   106  				},
   107  				"valid": true
   108  			},
   109  			{
   110  				"description": "both oneOf valid (complex)",
   111  				"data": {
   112  					"foo": "baz",
   113  					"bar": 2
   114  				},
   115  				"valid": false
   116  			},
   117  			{
   118  				"description": "neither oneOf valid (complex)",
   119  				"data": {
   120  					"foo": 2,
   121  					"bar": "quux"
   122  				},
   123  				"valid": false
   124  			}
   125  		]
   126  	},
   127  	{
   128  		"description": "oneOf with empty schema",
   129  		"schema": {
   130  			"oneOf": [
   131  				{
   132  					"type": "number"
   133  				},
   134  				{}
   135  			]
   136  		},
   137  		"tests": [
   138  			{
   139  				"description": "one valid - valid",
   140  				"data": "foo",
   141  				"valid": true
   142  			},
   143  			{
   144  				"description": "both valid - invalid",
   145  				"data": 123,
   146  				"valid": false
   147  			}
   148  		]
   149  	},
   150  	{
   151  		"description": "oneOf with required",
   152  		"schema": {
   153  			"type": "object",
   154  			"oneOf": [
   155  				{
   156  					"required": [
   157  						"foo",
   158  						"bar"
   159  					]
   160  				},
   161  				{
   162  					"required": [
   163  						"foo",
   164  						"baz"
   165  					]
   166  				}
   167  			]
   168  		},
   169  		"tests": [
   170  			{
   171  				"description": "both invalid - invalid",
   172  				"data": {
   173  					"bar": 2
   174  				},
   175  				"valid": false
   176  			},
   177  			{
   178  				"description": "first valid - valid",
   179  				"data": {
   180  					"foo": 1,
   181  					"bar": 2
   182  				},
   183  				"valid": true
   184  			},
   185  			{
   186  				"description": "second valid - valid",
   187  				"data": {
   188  					"foo": 1,
   189  					"baz": 3
   190  				},
   191  				"valid": true
   192  			},
   193  			{
   194  				"description": "both valid - invalid",
   195  				"data": {
   196  					"foo": 1,
   197  					"bar": 2,
   198  					"baz": 3
   199  				},
   200  				"valid": false
   201  			}
   202  		]
   203  	},
   204  	{
   205  		"description": "oneOf with missing optional property",
   206  		"schema": {
   207  			"oneOf": [
   208  				{
   209  					"properties": {
   210  						"bar": {},
   211  						"baz": {}
   212  					},
   213  					"required": [
   214  						"bar"
   215  					]
   216  				},
   217  				{
   218  					"properties": {
   219  						"foo": {}
   220  					},
   221  					"required": [
   222  						"foo"
   223  					]
   224  				}
   225  			]
   226  		},
   227  		"tests": [
   228  			{
   229  				"description": "first oneOf valid",
   230  				"data": {
   231  					"bar": 8
   232  				},
   233  				"valid": true
   234  			},
   235  			{
   236  				"description": "second oneOf valid",
   237  				"data": {
   238  					"foo": "foo"
   239  				},
   240  				"valid": true
   241  			},
   242  			{
   243  				"description": "both oneOf valid",
   244  				"data": {
   245  					"foo": "foo",
   246  					"bar": 8
   247  				},
   248  				"valid": false
   249  			},
   250  			{
   251  				"description": "neither oneOf valid",
   252  				"data": {
   253  					"baz": "quux"
   254  				},
   255  				"valid": false
   256  			}
   257  		]
   258  	},
   259  	{
   260  		"description": "nested oneOf, to check validation semantics",
   261  		"schema": {
   262  			"oneOf": [
   263  				{
   264  					"oneOf": [
   265  						{
   266  							"type": "null"
   267  						}
   268  					]
   269  				}
   270  			]
   271  		},
   272  		"tests": [
   273  			{
   274  				"description": "null is valid",
   275  				"data": null,
   276  				"valid": true
   277  			},
   278  			{
   279  				"description": "anything non-null is invalid",
   280  				"data": 123,
   281  				"valid": false
   282  			}
   283  		]
   284  	}
   285  ]