json-schema 2.0.2 → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -12,7 +12,7 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
12
12
  data = {
13
13
  "a" => nil
14
14
  }
15
-
15
+
16
16
  # Test integers
17
17
  schema["properties"]["a"]["type"] = "integer"
18
18
  data["a"] = 5
@@ -20,14 +20,14 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
20
20
 
21
21
  data["a"] = 5.2
22
22
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
23
-
23
+
24
24
  data['a'] = 'string'
25
25
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
26
-
26
+
27
27
  data['a'] = true
28
28
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
29
-
30
-
29
+
30
+
31
31
  # Test numbers
32
32
  schema["properties"]["a"]["type"] = "number"
33
33
  data["a"] = 5
@@ -35,14 +35,14 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
35
35
 
36
36
  data["a"] = 5.2
37
37
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
38
-
38
+
39
39
  data['a'] = 'string'
40
40
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
41
-
41
+
42
42
  data['a'] = true
43
43
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
44
-
45
-
44
+
45
+
46
46
  # Test strings
47
47
  schema["properties"]["a"]["type"] = "string"
48
48
  data["a"] = 5
@@ -50,14 +50,14 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
50
50
 
51
51
  data["a"] = 5.2
52
52
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
53
-
53
+
54
54
  data['a'] = 'string'
55
55
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
56
-
56
+
57
57
  data['a'] = true
58
58
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
59
-
60
-
59
+
60
+
61
61
  # Test booleans
62
62
  schema["properties"]["a"]["type"] = "boolean"
63
63
  data["a"] = 5
@@ -65,17 +65,17 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
65
65
 
66
66
  data["a"] = 5.2
67
67
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
68
-
68
+
69
69
  data['a'] = 'string'
70
70
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
71
-
71
+
72
72
  data['a'] = true
73
73
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
74
-
74
+
75
75
  data['a'] = false
76
76
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
77
-
78
-
77
+
78
+
79
79
  # Test object
80
80
  schema["properties"]["a"]["type"] = "object"
81
81
  data["a"] = {}
@@ -83,14 +83,14 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
83
83
 
84
84
  data["a"] = 5.2
85
85
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
86
-
86
+
87
87
  data['a'] = 'string'
88
88
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
89
-
89
+
90
90
  data['a'] = true
91
91
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
92
-
93
-
92
+
93
+
94
94
  # Test array
95
95
  schema["properties"]["a"]["type"] = "array"
96
96
  data["a"] = []
@@ -98,14 +98,14 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
98
98
 
99
99
  data["a"] = 5.2
100
100
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
101
-
101
+
102
102
  data['a'] = 'string'
103
103
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
104
-
104
+
105
105
  data['a'] = true
106
106
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
107
-
108
-
107
+
108
+
109
109
  # Test null
110
110
  schema["properties"]["a"]["type"] = "null"
111
111
  data["a"] = nil
@@ -113,14 +113,14 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
113
113
 
114
114
  data["a"] = 5.2
115
115
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
116
-
116
+
117
117
  data['a'] = 'string'
118
118
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
119
-
119
+
120
120
  data['a'] = true
121
121
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
122
-
123
-
122
+
123
+
124
124
  # Test any
125
125
  schema["properties"]["a"]["type"] = "any"
126
126
  data["a"] = 5
@@ -128,43 +128,43 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
128
128
 
129
129
  data["a"] = 5.2
130
130
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
131
-
131
+
132
132
  data['a'] = 'string'
133
133
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
134
-
134
+
135
135
  data['a'] = true
136
136
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
137
-
138
-
137
+
138
+
139
139
  # Test a union type
140
140
  schema["properties"]["a"]["type"] = ["integer","string"]
141
141
  data["a"] = 5
142
142
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
143
-
143
+
144
144
  data["a"] = 'boo'
145
145
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
146
-
146
+
147
147
  data["a"] = false
148
148
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
149
-
149
+
150
150
  # Test a union type with schemas
151
151
  schema["properties"]["a"]["type"] = [{ "type" => "string" }, {"type" => "object", "properties" => {"b" => {"type" => "integer"}}}]
152
-
152
+
153
153
  data["a"] = "test"
154
154
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
155
-
155
+
156
156
  data["a"] = 5
157
157
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
158
-
158
+
159
159
  data["a"] = {"b" => 5}
160
160
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
161
-
161
+
162
162
  data["a"] = {"b" => "taco"}
163
163
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
164
164
  end
165
-
166
-
167
-
165
+
166
+
167
+
168
168
  def test_optional
169
169
  # Set up the default datatype
170
170
  schema = {
@@ -173,24 +173,24 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
173
173
  }
174
174
  }
175
175
  data = {}
176
-
176
+
177
177
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
178
178
  data['a'] = "Hello"
179
179
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
180
-
180
+
181
181
  schema = {
182
182
  "properties" => {
183
183
  "a" => {"type" => "integer", "optional" => "true"}
184
184
  }
185
185
  }
186
-
186
+
187
187
  data = {}
188
188
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
189
-
189
+
190
190
  end
191
-
192
-
193
-
191
+
192
+
193
+
194
194
  def test_minimum
195
195
  # Set up the default datatype
196
196
  schema = {
@@ -198,49 +198,49 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
198
198
  "a" => {"minimum" => 5}
199
199
  }
200
200
  }
201
-
201
+
202
202
  data = {
203
203
  "a" => nil
204
204
  }
205
-
206
-
205
+
206
+
207
207
  # Test an integer
208
208
  data["a"] = 5
209
209
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
210
-
210
+
211
211
  data["a"] = 4
212
212
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
213
-
213
+
214
214
  # Test a float
215
215
  data["a"] = 5.0
216
216
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
217
-
217
+
218
218
  data["a"] = 4.9
219
219
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
220
-
220
+
221
221
  # Test a non-number
222
222
  data["a"] = "a string"
223
223
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
224
-
224
+
225
225
  # Test exclusiveMinimum
226
226
  schema["properties"]["a"]["minimumCanEqual"] = false
227
-
227
+
228
228
  data["a"] = 6
229
229
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
230
-
230
+
231
231
  data["a"] = 5
232
232
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
233
-
233
+
234
234
  # Test with float
235
235
  data["a"] = 5.00000001
236
236
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
237
-
237
+
238
238
  data["a"] = 5.0
239
239
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
240
240
  end
241
-
242
-
243
-
241
+
242
+
243
+
244
244
  def test_maximum
245
245
  # Set up the default datatype
246
246
  schema = {
@@ -248,48 +248,48 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
248
248
  "a" => {"maximum" => 5}
249
249
  }
250
250
  }
251
-
251
+
252
252
  data = {
253
253
  "a" => nil
254
254
  }
255
-
256
-
255
+
256
+
257
257
  # Test an integer
258
258
  data["a"] = 5
259
259
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
260
-
260
+
261
261
  data["a"] = 6
262
262
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
263
-
263
+
264
264
  # Test a float
265
265
  data["a"] = 5.0
266
266
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
267
-
267
+
268
268
  data["a"] = 5.1
269
269
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
270
-
270
+
271
271
  # Test a non-number
272
272
  data["a"] = "a string"
273
273
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
274
-
274
+
275
275
  # Test exclusiveMinimum
276
276
  schema["properties"]["a"]["maximumCanEqual"] = false
277
-
277
+
278
278
  data["a"] = 4
279
279
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
280
-
280
+
281
281
  data["a"] = 5
282
282
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
283
-
283
+
284
284
  # Test with float
285
285
  data["a"] = 4.9999999
286
286
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
287
-
287
+
288
288
  data["a"] = 5.0
289
289
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
290
290
  end
291
-
292
-
291
+
292
+
293
293
  def test_min_items
294
294
  # Set up the default datatype
295
295
  schema = {
@@ -297,25 +297,25 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
297
297
  "a" => {"minItems" => 1}
298
298
  }
299
299
  }
300
-
300
+
301
301
  data = {
302
302
  "a" => nil
303
303
  }
304
-
304
+
305
305
  # Test with an array
306
306
  data["a"] = ["boo"]
307
307
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
308
-
308
+
309
309
  data["a"] = []
310
310
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
311
-
311
+
312
312
  # Test with a non-array
313
313
  data["a"] = "boo"
314
314
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
315
315
  end
316
-
317
-
318
-
316
+
317
+
318
+
319
319
  def test_max_items
320
320
  # Set up the default datatype
321
321
  schema = {
@@ -323,25 +323,25 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
323
323
  "a" => {"maxItems" => 1}
324
324
  }
325
325
  }
326
-
326
+
327
327
  data = {
328
328
  "a" => nil
329
329
  }
330
-
330
+
331
331
  # Test with an array
332
332
  data["a"] = ["boo"]
333
333
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
334
-
334
+
335
335
  data["a"] = ["boo","taco"]
336
336
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
337
-
337
+
338
338
  # Test with a non-array
339
339
  data["a"] = "boo"
340
340
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
341
341
  end
342
-
343
-
344
-
342
+
343
+
344
+
345
345
  def test_unique_items
346
346
  # Set up the default datatype
347
347
  schema = {
@@ -349,70 +349,70 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
349
349
  "a" => {"uniqueItems" => true}
350
350
  }
351
351
  }
352
-
352
+
353
353
  data = {
354
354
  "a" => nil
355
355
  }
356
-
356
+
357
357
  # Test with nulls
358
358
  data["a"] = [nil,5]
359
359
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
360
-
360
+
361
361
  data["a"] = [nil,nil]
362
362
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
363
-
363
+
364
364
  # Test with booleans
365
365
  data["a"] = [true,4]
366
366
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
367
-
367
+
368
368
  data["a"] = [true,false]
369
369
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
370
-
370
+
371
371
  data["a"] = [true,true]
372
372
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
373
-
373
+
374
374
  # Test with numbers
375
375
  data["a"] = [4,true]
376
376
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
377
-
377
+
378
378
  data["a"] = [4,4.1]
379
379
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
380
-
380
+
381
381
  data["a"] = [4,4]
382
382
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
383
-
383
+
384
384
  # Test with strings
385
385
  data["a"] = ['a',true]
386
386
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
387
-
387
+
388
388
  data["a"] = ['a','ab']
389
389
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
390
-
390
+
391
391
  data["a"] = ['a','a']
392
392
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
393
-
393
+
394
394
  # Test with arrays
395
395
  data["a"] = [[1],true]
396
396
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
397
-
397
+
398
398
  data["a"] = [[1,2],[1,3]]
399
399
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
400
-
400
+
401
401
  data["a"] = [[1,2,3],[1,2,3]]
402
402
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
403
-
403
+
404
404
  # Test with objects
405
405
  data["a"] = [{"a" => 1},true]
406
406
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
407
-
407
+
408
408
  data["a"] = [{"a" => 1},{"a" => 2}]
409
409
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
410
-
410
+
411
411
  data["a"] = [{"a" => 1, "b" => 2}, {"a" => 1, "b" => 2}]
412
412
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
413
413
  end
414
-
415
-
414
+
415
+
416
416
  def test_pattern
417
417
  # Set up the default datatype
418
418
  schema = {
@@ -420,24 +420,24 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
420
420
  "a" => {"pattern" => "\\d+ taco"}
421
421
  }
422
422
  }
423
-
423
+
424
424
  data = {
425
425
  "a" => nil
426
426
  }
427
-
427
+
428
428
  # Test strings
429
429
  data["a"] = "156 taco bell"
430
430
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
431
-
431
+
432
432
  # Test a non-string
433
433
  data["a"] = 5
434
434
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
435
-
435
+
436
436
  data["a"] = "taco"
437
437
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
438
438
  end
439
-
440
-
439
+
440
+
441
441
  def test_min_length
442
442
  # Set up the default datatype
443
443
  schema = {
@@ -445,24 +445,24 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
445
445
  "a" => {"minLength" => 1}
446
446
  }
447
447
  }
448
-
448
+
449
449
  data = {
450
450
  "a" => nil
451
451
  }
452
-
452
+
453
453
  # Try out strings
454
454
  data["a"] = "t"
455
455
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
456
-
456
+
457
457
  data["a"] = ""
458
458
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
459
-
459
+
460
460
  # Try out non-string
461
461
  data["a"] = 5
462
462
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
463
463
  end
464
-
465
-
464
+
465
+
466
466
  def test_max_length
467
467
  # Set up the default datatype
468
468
  schema = {
@@ -470,24 +470,24 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
470
470
  "a" => {"maxLength" => 1}
471
471
  }
472
472
  }
473
-
473
+
474
474
  data = {
475
475
  "a" => nil
476
476
  }
477
-
477
+
478
478
  # Try out strings
479
479
  data["a"] = "t"
480
480
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
481
-
481
+
482
482
  data["a"] = "tt"
483
483
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
484
-
484
+
485
485
  # Try out non-string
486
486
  data["a"] = 5
487
487
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
488
488
  end
489
-
490
-
489
+
490
+
491
491
  def test_enum
492
492
  # Set up the default datatype
493
493
  schema = {
@@ -495,34 +495,34 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
495
495
  "a" => {"enum" => [1,'boo',[1,2,3],{"a" => "b"}], "optional" => true}
496
496
  }
497
497
  }
498
-
498
+
499
499
  data = {
500
500
  "a" => nil
501
501
  }
502
-
502
+
503
503
  # Make sure all of the above are valid...
504
504
  data["a"] = 1
505
505
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
506
-
506
+
507
507
  data["a"] = 'boo'
508
508
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
509
-
509
+
510
510
  data["a"] = [1,2,3]
511
511
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
512
-
512
+
513
513
  data["a"] = {"a" => "b"}
514
514
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
515
-
515
+
516
516
  # Test something that doesn't exist
517
517
  data["a"] = 'taco'
518
518
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
519
-
519
+
520
520
  # Try it without the key
521
521
  data = {}
522
522
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
523
523
  end
524
-
525
-
524
+
525
+
526
526
  def test_divisible_by
527
527
  # Set up the default datatype
528
528
  schema = {
@@ -530,32 +530,32 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
530
530
  "a" => {"divisibleBy" => 1.1}
531
531
  }
532
532
  }
533
-
533
+
534
534
  data = {
535
535
  "a" => nil
536
536
  }
537
-
537
+
538
538
  data["a"] = 3.3
539
539
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
540
-
540
+
541
541
  data["a"] = 3.4
542
542
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
543
-
543
+
544
544
  schema["properties"]["a"]["divisibleBy"] = 2.0
545
-
545
+
546
546
  data["a"] = 4.0
547
547
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
548
-
548
+
549
549
  data["a"] = 'boo'
550
550
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
551
-
551
+
552
552
  data["a"] = 5
553
553
  schema["properties"]["a"]["divisibleBy"] = 0
554
554
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
555
555
  end
556
-
557
-
558
-
556
+
557
+
558
+
559
559
  def test_disallow
560
560
  # Set up the default datatype
561
561
  schema = {
@@ -563,33 +563,33 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
563
563
  "a" => {"disallow" => "integer"}
564
564
  }
565
565
  }
566
-
566
+
567
567
  data = {
568
568
  "a" => nil
569
569
  }
570
-
571
-
570
+
571
+
572
572
  data["a"] = 'string'
573
573
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
574
-
574
+
575
575
  data["a"] = 5
576
576
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
577
-
578
-
577
+
578
+
579
579
  schema["properties"]["a"]["disallow"] = ["integer","string"]
580
580
  data["a"] = 'string'
581
581
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
582
-
582
+
583
583
  data["a"] = 5
584
584
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
585
-
585
+
586
586
  data["a"] = false
587
587
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
588
588
 
589
589
  end
590
-
591
-
592
-
590
+
591
+
592
+
593
593
  def test_additional_properties
594
594
  # Test no additional properties allowed
595
595
  schema = {
@@ -598,15 +598,15 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
598
598
  },
599
599
  "additionalProperties" => false
600
600
  }
601
-
601
+
602
602
  data = {
603
603
  "a" => 10
604
604
  }
605
-
605
+
606
606
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
607
607
  data["b"] = 5
608
608
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
609
-
609
+
610
610
  # Test additional properties match a schema
611
611
  schema["additionalProperties"] = { "type" => "string" }
612
612
  data["b"] = "taco"
@@ -614,41 +614,41 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
614
614
  data["b"] = 5
615
615
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
616
616
  end
617
-
618
-
617
+
618
+
619
619
  def test_items
620
620
  schema = {
621
621
  "items" => { "type" => "integer" }
622
622
  }
623
-
623
+
624
624
  data = [1,2,4]
625
625
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
626
626
  data = [1,2,"string"]
627
627
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
628
-
628
+
629
629
  schema = {
630
630
  "items" => [
631
631
  {"type" => "integer"},
632
632
  {"type" => "string"}
633
633
  ]
634
634
  }
635
-
635
+
636
636
  data = [1,"string"]
637
637
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
638
638
  data = [1,"string",3]
639
639
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
640
640
  data = ["string",1]
641
641
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
642
-
642
+
643
643
  end
644
-
645
-
644
+
645
+
646
646
  def test_format_ipv4
647
647
  schema = {
648
648
  "type" => "object",
649
649
  "properties" => { "a" => {"type" => "string", "format" => "ip-address"}}
650
650
  }
651
-
651
+
652
652
  data = {"a" => "1.1.1.1"}
653
653
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
654
654
  data = {"a" => "1.1.1"}
@@ -663,14 +663,14 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
663
663
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
664
664
  data = {"a" => "b1.1.1.1"}
665
665
  end
666
-
667
-
666
+
667
+
668
668
  def test_format_ipv6
669
669
  schema = {
670
670
  "type" => "object",
671
671
  "properties" => { "a" => {"type" => "string", "format" => "ipv6"}}
672
672
  }
673
-
673
+
674
674
  data = {"a" => "1111:2222:8888:9999:aaaa:cccc:eeee:ffff"}
675
675
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
676
676
  data = {"a" => "1111:0:8888:0:0:0:eeee:ffff"}
@@ -686,13 +686,13 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
686
686
  data = {"a" => "1111:2222:8888:9999:aaaa:cccc:eeee:ffff:bbbb"}
687
687
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
688
688
  end
689
-
689
+
690
690
  def test_format_time
691
691
  schema = {
692
692
  "type" => "object",
693
693
  "properties" => { "a" => {"type" => "string", "format" => "time"}}
694
694
  }
695
-
695
+
696
696
  data = {"a" => "12:00:00"}
697
697
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
698
698
  data = {"a" => "12:00"}
@@ -710,14 +710,14 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
710
710
  data = {"a" => "12:00:00b"}
711
711
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
712
712
  end
713
-
714
-
713
+
714
+
715
715
  def test_format_date
716
716
  schema = {
717
717
  "type" => "object",
718
718
  "properties" => { "a" => {"type" => "string", "format" => "date"}}
719
719
  }
720
-
720
+
721
721
  data = {"a" => "2010-01-01"}
722
722
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
723
723
  data = {"a" => "2010-01-32"}
@@ -731,13 +731,13 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
731
731
  data = {"a" => "2010-01-01n"}
732
732
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
733
733
  end
734
-
734
+
735
735
  def test_format_datetime
736
736
  schema = {
737
737
  "type" => "object",
738
738
  "properties" => { "a" => {"type" => "string", "format" => "date-time"}}
739
739
  }
740
-
740
+
741
741
  data = {"a" => "2010-01-01T12:00:00Z"}
742
742
  assert(JSON::Validator.validate(schema,data,:version => :draft2))
743
743
  data = {"a" => "2010-01-32T12:00:00Z"}
@@ -750,19 +750,17 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
750
750
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
751
751
  data = {"a" => "2010-01-01T12:00:60Z"}
752
752
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
753
- data = {"a" => "2010-01-01T12:00:00"}
754
- assert(!JSON::Validator.validate(schema,data,:version => :draft2))
755
753
  data = {"a" => "2010-01-01T12:00:00z"}
756
754
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
757
755
  data = {"a" => "2010-01-0112:00:00Z"}
758
756
  assert(!JSON::Validator.validate(schema,data,:version => :draft2))
759
757
  end
760
-
761
-
758
+
759
+
762
760
  def test_format_union
763
761
  data1 = {"a" => "boo"}
764
762
  data2 = {"a" => nil}
765
-
763
+
766
764
  schema = {
767
765
  "type" => "object",
768
766
  "properties" => { "a" => {"type" => ["string","null"], "format" => "ip-address"}}
@@ -770,6 +768,6 @@ class JSONSchemaDraft2Test < Test::Unit::TestCase
770
768
  assert(!JSON::Validator.validate(schema,data1,:version => :draft2))
771
769
  assert(JSON::Validator.validate(schema,data2,:version => :draft2))
772
770
  end
773
-
771
+
774
772
  end
775
773