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

     1  [
     2  	{
     3  		"description": "oneOf",
     4  		"schema": {
     5  			"$schema": "https://json-schema.org/draft/2020-12/schema",
     6  			"oneOf": [
     7  				{
     8  					"type": "integer"
     9  				},
    10  				{
    11  					"minimum": 2
    12  				}
    13  			]
    14  		},
    15  		"tests": [
    16  			{
    17  				"description": "first oneOf valid",
    18  				"data": 1,
    19  				"valid": true
    20  			},
    21  			{
    22  				"description": "second oneOf valid",
    23  				"data": 2.5,
    24  				"valid": true
    25  			},
    26  			{
    27  				"description": "both oneOf valid",
    28  				"data": 3,
    29  				"valid": false
    30  			},
    31  			{
    32  				"description": "neither oneOf valid",
    33  				"data": 1.5,
    34  				"valid": false
    35  			}
    36  		]
    37  	},
    38  	{
    39  		"description": "oneOf with base schema",
    40  		"schema": {
    41  			"$schema": "https://json-schema.org/draft/2020-12/schema",
    42  			"type": "string",
    43  			"oneOf": [
    44  				{
    45  					"minLength": 2
    46  				},
    47  				{
    48  					"maxLength": 4
    49  				}
    50  			]
    51  		},
    52  		"tests": [
    53  			{
    54  				"description": "mismatch base schema",
    55  				"data": 3,
    56  				"valid": false
    57  			},
    58  			{
    59  				"description": "one oneOf valid",
    60  				"data": "foobar",
    61  				"valid": true
    62  			},
    63  			{
    64  				"description": "both oneOf valid",
    65  				"data": "foo",
    66  				"valid": false
    67  			}
    68  		]
    69  	},
    70  	{
    71  		"description": "oneOf with boolean schemas, all true",
    72  		"schema": {
    73  			"$schema": "https://json-schema.org/draft/2020-12/schema",
    74  			"oneOf": [
    75  				true,
    76  				true,
    77  				true
    78  			]
    79  		},
    80  		"tests": [
    81  			{
    82  				"description": "any value is invalid",
    83  				"data": "foo",
    84  				"valid": false
    85  			}
    86  		]
    87  	},
    88  	{
    89  		"description": "oneOf with boolean schemas, one true",
    90  		"schema": {
    91  			"$schema": "https://json-schema.org/draft/2020-12/schema",
    92  			"oneOf": [
    93  				true,
    94  				false,
    95  				false
    96  			]
    97  		},
    98  		"tests": [
    99  			{
   100  				"description": "any value is valid",
   101  				"data": "foo",
   102  				"valid": true
   103  			}
   104  		]
   105  	},
   106  	{
   107  		"description": "oneOf with boolean schemas, more than one true",
   108  		"schema": {
   109  			"$schema": "https://json-schema.org/draft/2020-12/schema",
   110  			"oneOf": [
   111  				true,
   112  				true,
   113  				false
   114  			]
   115  		},
   116  		"tests": [
   117  			{
   118  				"description": "any value is invalid",
   119  				"data": "foo",
   120  				"valid": false
   121  			}
   122  		]
   123  	},
   124  	{
   125  		"description": "oneOf with boolean schemas, all false",
   126  		"schema": {
   127  			"$schema": "https://json-schema.org/draft/2020-12/schema",
   128  			"oneOf": [
   129  				false,
   130  				false,
   131  				false
   132  			]
   133  		},
   134  		"tests": [
   135  			{
   136  				"description": "any value is invalid",
   137  				"data": "foo",
   138  				"valid": false
   139  			}
   140  		]
   141  	},
   142  	{
   143  		"description": "oneOf complex types",
   144  		"schema": {
   145  			"$schema": "https://json-schema.org/draft/2020-12/schema",
   146  			"oneOf": [
   147  				{
   148  					"properties": {
   149  						"bar": {
   150  							"type": "integer"
   151  						}
   152  					},
   153  					"required": [
   154  						"bar"
   155  					]
   156  				},
   157  				{
   158  					"properties": {
   159  						"foo": {
   160  							"type": "string"
   161  						}
   162  					},
   163  					"required": [
   164  						"foo"
   165  					]
   166  				}
   167  			]
   168  		},
   169  		"tests": [
   170  			{
   171  				"description": "first oneOf valid (complex)",
   172  				"data": {
   173  					"bar": 2
   174  				},
   175  				"valid": true
   176  			},
   177  			{
   178  				"description": "second oneOf valid (complex)",
   179  				"data": {
   180  					"foo": "baz"
   181  				},
   182  				"valid": true
   183  			},
   184  			{
   185  				"description": "both oneOf valid (complex)",
   186  				"data": {
   187  					"foo": "baz",
   188  					"bar": 2
   189  				},
   190  				"valid": false
   191  			},
   192  			{
   193  				"description": "neither oneOf valid (complex)",
   194  				"data": {
   195  					"foo": 2,
   196  					"bar": "quux"
   197  				},
   198  				"valid": false
   199  			}
   200  		]
   201  	},
   202  	{
   203  		"description": "oneOf with empty schema",
   204  		"schema": {
   205  			"$schema": "https://json-schema.org/draft/2020-12/schema",
   206  			"oneOf": [
   207  				{
   208  					"type": "number"
   209  				},
   210  				{}
   211  			]
   212  		},
   213  		"tests": [
   214  			{
   215  				"description": "one valid - valid",
   216  				"data": "foo",
   217  				"valid": true
   218  			},
   219  			{
   220  				"description": "both valid - invalid",
   221  				"data": 123,
   222  				"valid": false
   223  			}
   224  		]
   225  	},
   226  	{
   227  		"description": "oneOf with required",
   228  		"schema": {
   229  			"$schema": "https://json-schema.org/draft/2020-12/schema",
   230  			"type": "object",
   231  			"oneOf": [
   232  				{
   233  					"required": [
   234  						"foo",
   235  						"bar"
   236  					]
   237  				},
   238  				{
   239  					"required": [
   240  						"foo",
   241  						"baz"
   242  					]
   243  				}
   244  			]
   245  		},
   246  		"tests": [
   247  			{
   248  				"description": "both invalid - invalid",
   249  				"data": {
   250  					"bar": 2
   251  				},
   252  				"valid": false
   253  			},
   254  			{
   255  				"description": "first valid - valid",
   256  				"data": {
   257  					"foo": 1,
   258  					"bar": 2
   259  				},
   260  				"valid": true
   261  			},
   262  			{
   263  				"description": "second valid - valid",
   264  				"data": {
   265  					"foo": 1,
   266  					"baz": 3
   267  				},
   268  				"valid": true
   269  			},
   270  			{
   271  				"description": "both valid - invalid",
   272  				"data": {
   273  					"foo": 1,
   274  					"bar": 2,
   275  					"baz": 3
   276  				},
   277  				"valid": false
   278  			}
   279  		]
   280  	},
   281  	{
   282  		"description": "oneOf with missing optional property",
   283  		"schema": {
   284  			"$schema": "https://json-schema.org/draft/2020-12/schema",
   285  			"oneOf": [
   286  				{
   287  					"properties": {
   288  						"bar": true,
   289  						"baz": true
   290  					},
   291  					"required": [
   292  						"bar"
   293  					]
   294  				},
   295  				{
   296  					"properties": {
   297  						"foo": true
   298  					},
   299  					"required": [
   300  						"foo"
   301  					]
   302  				}
   303  			]
   304  		},
   305  		"tests": [
   306  			{
   307  				"description": "first oneOf valid",
   308  				"data": {
   309  					"bar": 8
   310  				},
   311  				"valid": true
   312  			},
   313  			{
   314  				"description": "second oneOf valid",
   315  				"data": {
   316  					"foo": "foo"
   317  				},
   318  				"valid": true
   319  			},
   320  			{
   321  				"description": "both oneOf valid",
   322  				"data": {
   323  					"foo": "foo",
   324  					"bar": 8
   325  				},
   326  				"valid": false
   327  			},
   328  			{
   329  				"description": "neither oneOf valid",
   330  				"data": {
   331  					"baz": "quux"
   332  				},
   333  				"valid": false
   334  			}
   335  		]
   336  	},
   337  	{
   338  		"description": "nested oneOf, to check validation semantics",
   339  		"schema": {
   340  			"$schema": "https://json-schema.org/draft/2020-12/schema",
   341  			"oneOf": [
   342  				{
   343  					"oneOf": [
   344  						{
   345  							"type": "null"
   346  						}
   347  					]
   348  				}
   349  			]
   350  		},
   351  		"tests": [
   352  			{
   353  				"description": "null is valid",
   354  				"data": null,
   355  				"valid": true
   356  			},
   357  			{
   358  				"description": "anything non-null is invalid",
   359  				"data": 123,
   360  				"valid": false
   361  			}
   362  		]
   363  	}
   364  ]