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

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