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

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