cuelang.org/go@v0.13.0/encoding/jsonschema/testdata/external/tests/draft4/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 one empty schema",
   165  		"schema": {
   166  			"allOf": [
   167  				{}
   168  			]
   169  		},
   170  		"tests": [
   171  			{
   172  				"description": "any data is valid",
   173  				"data": 1,
   174  				"valid": true
   175  			}
   176  		]
   177  	},
   178  	{
   179  		"description": "allOf with two empty schemas",
   180  		"schema": {
   181  			"allOf": [
   182  				{},
   183  				{}
   184  			]
   185  		},
   186  		"tests": [
   187  			{
   188  				"description": "any data is valid",
   189  				"data": 1,
   190  				"valid": true
   191  			}
   192  		]
   193  	},
   194  	{
   195  		"description": "allOf with the first empty schema",
   196  		"schema": {
   197  			"allOf": [
   198  				{},
   199  				{
   200  					"type": "number"
   201  				}
   202  			]
   203  		},
   204  		"tests": [
   205  			{
   206  				"description": "number is valid",
   207  				"data": 1,
   208  				"valid": true
   209  			},
   210  			{
   211  				"description": "string is invalid",
   212  				"data": "foo",
   213  				"valid": false
   214  			}
   215  		]
   216  	},
   217  	{
   218  		"description": "allOf with the last empty schema",
   219  		"schema": {
   220  			"allOf": [
   221  				{
   222  					"type": "number"
   223  				},
   224  				{}
   225  			]
   226  		},
   227  		"tests": [
   228  			{
   229  				"description": "number is valid",
   230  				"data": 1,
   231  				"valid": true
   232  			},
   233  			{
   234  				"description": "string is invalid",
   235  				"data": "foo",
   236  				"valid": false
   237  			}
   238  		]
   239  	},
   240  	{
   241  		"description": "nested allOf, to check validation semantics",
   242  		"schema": {
   243  			"allOf": [
   244  				{
   245  					"allOf": [
   246  						{
   247  							"type": "null"
   248  						}
   249  					]
   250  				}
   251  			]
   252  		},
   253  		"tests": [
   254  			{
   255  				"description": "null is valid",
   256  				"data": null,
   257  				"valid": true
   258  			},
   259  			{
   260  				"description": "anything non-null is invalid",
   261  				"data": 123,
   262  				"valid": false
   263  			}
   264  		]
   265  	},
   266  	{
   267  		"description": "allOf combined with anyOf, oneOf",
   268  		"schema": {
   269  			"allOf": [
   270  				{
   271  					"multipleOf": 2
   272  				}
   273  			],
   274  			"anyOf": [
   275  				{
   276  					"multipleOf": 3
   277  				}
   278  			],
   279  			"oneOf": [
   280  				{
   281  					"multipleOf": 5
   282  				}
   283  			]
   284  		},
   285  		"tests": [
   286  			{
   287  				"description": "allOf: false, anyOf: false, oneOf: false",
   288  				"data": 1,
   289  				"valid": false
   290  			},
   291  			{
   292  				"description": "allOf: false, anyOf: false, oneOf: true",
   293  				"data": 5,
   294  				"valid": false
   295  			},
   296  			{
   297  				"description": "allOf: false, anyOf: true, oneOf: false",
   298  				"data": 3,
   299  				"valid": false
   300  			},
   301  			{
   302  				"description": "allOf: false, anyOf: true, oneOf: true",
   303  				"data": 15,
   304  				"valid": false
   305  			},
   306  			{
   307  				"description": "allOf: true, anyOf: false, oneOf: false",
   308  				"data": 2,
   309  				"valid": false
   310  			},
   311  			{
   312  				"description": "allOf: true, anyOf: false, oneOf: true",
   313  				"data": 10,
   314  				"valid": false
   315  			},
   316  			{
   317  				"description": "allOf: true, anyOf: true, oneOf: false",
   318  				"data": 6,
   319  				"valid": false
   320  			},
   321  			{
   322  				"description": "allOf: true, anyOf: true, oneOf: true",
   323  				"data": 30,
   324  				"valid": true
   325  			}
   326  		]
   327  	}
   328  ]