dc-kwalify 0.7.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/contrib/kwalify +1 -1
  4. data/dc-kwalify.gemspec +27 -0
  5. data/lib/kwalify/main.rb +1 -1
  6. data/lib/kwalify/util/testcase-helper.rb +1 -1
  7. data/lib/kwalify/version.rb +5 -0
  8. data/lib/kwalify.rb +1 -7
  9. metadata +83 -203
  10. data/setup.rb +0 -1585
  11. data/test/Rookbook.yaml +0 -10
  12. data/test/data/users-guide/AddressBook.java.expected +0 -40
  13. data/test/data/users-guide/BABEL.data.yaml +0 -24
  14. data/test/data/users-guide/BABEL.schema.yaml +0 -30
  15. data/test/data/users-guide/ExampleAddressBook.java +0 -47
  16. data/test/data/users-guide/Group.java.expected +0 -24
  17. data/test/data/users-guide/Person.java.expected +0 -44
  18. data/test/data/users-guide/address_book.rb +0 -52
  19. data/test/data/users-guide/address_book.schema.yaml +0 -28
  20. data/test/data/users-guide/address_book.yaml +0 -27
  21. data/test/data/users-guide/answers-schema.yaml +0 -12
  22. data/test/data/users-guide/answers-validator.rb +0 -52
  23. data/test/data/users-guide/babel_genclass.result +0 -26
  24. data/test/data/users-guide/config.schema.yaml +0 -7
  25. data/test/data/users-guide/config.yaml +0 -4
  26. data/test/data/users-guide/document01a.yaml +0 -3
  27. data/test/data/users-guide/document01b.yaml +0 -3
  28. data/test/data/users-guide/document02a.yaml +0 -4
  29. data/test/data/users-guide/document02b.yaml +0 -4
  30. data/test/data/users-guide/document03a.yaml +0 -6
  31. data/test/data/users-guide/document03b.yaml +0 -6
  32. data/test/data/users-guide/document04a.yaml +0 -9
  33. data/test/data/users-guide/document04b.yaml +0 -9
  34. data/test/data/users-guide/document05a.yaml +0 -11
  35. data/test/data/users-guide/document05b.yaml +0 -12
  36. data/test/data/users-guide/document06a.yaml +0 -15
  37. data/test/data/users-guide/document06b.yaml +0 -16
  38. data/test/data/users-guide/document07a.yaml +0 -9
  39. data/test/data/users-guide/document07b.yaml +0 -7
  40. data/test/data/users-guide/document12a.json +0 -10
  41. data/test/data/users-guide/document12b.json +0 -6
  42. data/test/data/users-guide/document13a.yaml +0 -17
  43. data/test/data/users-guide/document14a.yaml +0 -3
  44. data/test/data/users-guide/document14b.yaml +0 -3
  45. data/test/data/users-guide/document15a.yaml +0 -6
  46. data/test/data/users-guide/document15b.yaml +0 -5
  47. data/test/data/users-guide/example_address_book.rb +0 -10
  48. data/test/data/users-guide/example_address_book_java.result +0 -32
  49. data/test/data/users-guide/example_address_book_ruby.result +0 -31
  50. data/test/data/users-guide/genclass_java.result +0 -4
  51. data/test/data/users-guide/howto-validation-with-parsing.rb +0 -28
  52. data/test/data/users-guide/howto-validation.rb +0 -25
  53. data/test/data/users-guide/howto3.rb +0 -6
  54. data/test/data/users-guide/howto3.result +0 -5
  55. data/test/data/users-guide/howto3.yaml +0 -8
  56. data/test/data/users-guide/howto5_databinding.result +0 -111
  57. data/test/data/users-guide/invalid01.result +0 -3
  58. data/test/data/users-guide/invalid02.result +0 -5
  59. data/test/data/users-guide/invalid03.result +0 -5
  60. data/test/data/users-guide/invalid04.result +0 -4
  61. data/test/data/users-guide/invalid05.result +0 -11
  62. data/test/data/users-guide/invalid06.result +0 -4
  63. data/test/data/users-guide/invalid07.result +0 -3
  64. data/test/data/users-guide/invalid08.result +0 -3
  65. data/test/data/users-guide/invalid12.json +0 -8
  66. data/test/data/users-guide/invalid14.result +0 -4
  67. data/test/data/users-guide/invalid15.result +0 -4
  68. data/test/data/users-guide/loadbabel.rb +0 -27
  69. data/test/data/users-guide/loadconfig.rb +0 -16
  70. data/test/data/users-guide/loadconfig.result +0 -6
  71. data/test/data/users-guide/models.rb +0 -22
  72. data/test/data/users-guide/option_ha.result +0 -6
  73. data/test/data/users-guide/option_ha_genclass_java.result +0 -7
  74. data/test/data/users-guide/schema01.yaml +0 -3
  75. data/test/data/users-guide/schema02.yaml +0 -12
  76. data/test/data/users-guide/schema03.yaml +0 -9
  77. data/test/data/users-guide/schema04.yaml +0 -20
  78. data/test/data/users-guide/schema05.yaml +0 -29
  79. data/test/data/users-guide/schema06.yaml +0 -11
  80. data/test/data/users-guide/schema12.json +0 -12
  81. data/test/data/users-guide/schema13.yaml +0 -13
  82. data/test/data/users-guide/schema14.yaml +0 -5
  83. data/test/data/users-guide/schema15.yaml +0 -21
  84. data/test/data/users-guide/valid01.result +0 -2
  85. data/test/data/users-guide/valid02.result +0 -2
  86. data/test/data/users-guide/valid03.result +0 -2
  87. data/test/data/users-guide/valid04.result +0 -2
  88. data/test/data/users-guide/valid05.result +0 -2
  89. data/test/data/users-guide/valid06.result +0 -2
  90. data/test/data/users-guide/valid07.result +0 -2
  91. data/test/data/users-guide/valid08.result +0 -2
  92. data/test/data/users-guide/valid12.result +0 -2
  93. data/test/data/users-guide/valid13.result +0 -2
  94. data/test/data/users-guide/valid14.result +0 -2
  95. data/test/data/users-guide/valid15.result +0 -2
  96. data/test/data/users-guide/validate08.rb +0 -37
  97. data/test/test-action.rb +0 -78
  98. data/test/test-action.yaml +0 -738
  99. data/test/test-databinding.rb +0 -83
  100. data/test/test-databinding.yaml +0 -339
  101. data/test/test-main.rb +0 -157
  102. data/test/test-main.yaml +0 -415
  103. data/test/test-metavalidator.rb +0 -80
  104. data/test/test-metavalidator.yaml +0 -1179
  105. data/test/test-parser-yaml.rb +0 -57
  106. data/test/test-parser-yaml.yaml +0 -1749
  107. data/test/test-rule.rb +0 -26
  108. data/test/test-rule.yaml +0 -317
  109. data/test/test-users-guide.rb +0 -75
  110. data/test/test-util.rb +0 -125
  111. data/test/test-validator.rb +0 -95
  112. data/test/test-validator.yaml +0 -986
  113. data/test/test-yaml-parser.rb +0 -47
  114. data/test/test-yaml-parser.yaml +0 -1226
  115. data/test/test.rb +0 -61
@@ -1,1749 +0,0 @@
1
- ##
2
- ## $Rev: 59 $
3
- ## $Release: 0.7.2 $
4
- ## copyright(c) 2005-2010 kuwata-lab all rights reserved.
5
- ##
6
- ---
7
- name: sequence1
8
- desc: basic sequence
9
- input: |
10
- - aaa
11
- - bbb
12
- - ccc
13
- expected: |
14
- ["aaa", "bbb", "ccc"]
15
- locations:
16
- - [ "/", 1, 1 ]
17
- - [ "/0", 1, 3 ]
18
- - [ "/1", 2, 3 ]
19
- - [ "/2", 3, 3 ]
20
- ##
21
- ---
22
- name: sequence2
23
- desc: nested sequence
24
- input: |
25
- - A
26
- -
27
- - B1
28
- - B2
29
- -
30
- - B2.1
31
- - B2.2
32
- - C
33
- expected: |
34
- ["A", ["B1", "B2", ["B2.1", "B2.2"]], "C"]
35
- locations:
36
- - [ "/", 1, 1 ]
37
- - [ "/0", 1, 3 ]
38
- - [ "/1", 3, 3 ]
39
- - [ "/1/0", 3, 5 ]
40
- - [ "/1/1", 4, 5 ]
41
- - [ "/1/2", 6, 5 ]
42
- - [ "/1/2/0", 6, 7 ]
43
- - [ "/1/2/1", 7, 7 ]
44
- - [ "/2", 8, 3 ]
45
- ##
46
- ---
47
- name: sequence3
48
- desc: null item of sequence
49
- input: |
50
- - A
51
- -
52
- - C
53
- -
54
- -
55
- -
56
- - G
57
- expected: |
58
- ["A", nil, "C", nil, nil, nil, "G"]
59
- locations:
60
- - [ "/", 1, 1 ]
61
- - [ "/0", 1, 3 ]
62
- - [ "/1", 3, 1 ]
63
- - [ "/2", 3, 3 ]
64
- - [ "/3", 5, 1 ]
65
- - [ "/6", 7, 3 ]
66
- ##
67
- ---
68
- name: sequence4
69
- desc: null item of nested sequence
70
- #
71
- input: |
72
- -
73
- -
74
- -
75
- -
76
- -
77
- -
78
- #
79
- expected: |
80
- [[[nil, nil, nil]], nil]
81
- locations:
82
- - [ "/", 1, 1 ]
83
- - [ "/0", 2, 3 ]
84
- - [ "/0/0", 3, 5 ]
85
- - [ "/0/0/0", 4, 5 ]
86
- - [ "/1", 7, 1 ]
87
- ##
88
- ---
89
- name: sequence5
90
- desc: sequence with empty lines
91
- input: |
92
-
93
- - A
94
-
95
- -
96
-
97
-
98
- - B
99
-
100
-
101
- -
102
- expected: |
103
- ["A", ["B"], nil]
104
- locations:
105
- - [ "/", 2, 1 ]
106
- - [ "/0", 2, 3 ]
107
- - [ "/1", 7, 5 ]
108
- - [ "/2", 11, 1 ]
109
- ##
110
- ---
111
- name: sequence6
112
- desc: syntax error - invalid indent of sequence.
113
- exception*: { ruby: Kwalify::SyntaxError, java: kwalify.SyntaxException }
114
- #
115
- input: |
116
- - AAA
117
- - BBB1
118
- - BBB2
119
- - CCC
120
- #
121
- expected: |
122
- locations:
123
- ##
124
- ---
125
- name: sequence7
126
- desc: syntax error - sequence item is exepcted.
127
- exception*: { ruby: Kwalify::SyntaxError, java: kwalify.SyntaxException }
128
- input: |
129
- -
130
- - a1
131
- - a2
132
- a3
133
- -
134
- - b1
135
- - b2
136
- b3
137
- expected: |
138
- locations:
139
- ##
140
- ---
141
- name: mapping1
142
- desc: basic mapping
143
- input: |
144
- A: foo
145
- B: bar
146
- C : baz
147
- expected: |
148
- {"A"=>"foo", "B"=>"bar", "C"=>"baz"}
149
- locations:
150
- - [ "/", 1, 1 ]
151
- - [ "/A", 1, 4 ]
152
- - [ "/B", 2, 4 ]
153
- - [ "/C", 3, 6 ]
154
- ##
155
- ---
156
- name: mapping2
157
- desc: nested mapping
158
- input: |
159
- A: 10
160
- B:
161
- B1:
162
- B1-1: 21
163
- B1-2: 22
164
- B1-3: 23
165
- C: 30
166
- expected: |
167
- {"A"=>10, "B"=>{"B1"=>{"B1-1"=>21, "B1-2"=>22, "B1-3"=>23}}, "C"=>30}
168
- locations:
169
- - [ "/", 1, 1 ]
170
- - [ "/A", 1, 4 ]
171
- - [ "/B", 3, 3 ]
172
- - [ "/B/B1", 4, 5 ]
173
- - [ "/B/B1/B1-1", 4, 11 ]
174
- - [ "/B/B1/B1-2", 5, 11 ]
175
- - [ "/B/B1/B1-3", 6, 11 ]
176
- - [ "/C", 7, 4 ]
177
- ##
178
- ---
179
- name: mapping3
180
- desc: null item in mapping
181
- input: |
182
- A:
183
- B:
184
- B1:
185
- B1-2:
186
- C:
187
- expected: |
188
- {"A"=>nil, "B"=>{"B1"=>{"B1-2"=>nil}}, "C"=>nil}
189
- locations:
190
- - [ "/", 1, 1 ]
191
- - [ "/A", 2, 1 ]
192
- - [ "/B", 3, 3 ]
193
- - [ "/B/B1", 4, 5 ]
194
- - [ "/B/B1/B1-2", 5, 1 ]
195
- - [ "/C", 6, 1 ]
196
- ##
197
- ---
198
- name: mapping4
199
- desc: mapping with empty lines
200
- input: |
201
-
202
- A: 1
203
-
204
- B:
205
-
206
-
207
- B1:
208
-
209
-
210
-
211
- B1a: 2
212
- C: 3
213
-
214
- expected: |
215
- {"A"=>1, "B"=>{"B1"=>{"B1a"=>2}}, "C"=>3}
216
- locations:
217
- - [ "/", 2, 1 ]
218
- - [ "/A", 2, 4 ]
219
- - [ "/B", 7, 3 ]
220
- - [ "/B/B1", 11, 5 ]
221
- - [ "/B/B1/B1a", 11, 10 ]
222
- - [ "/C", 12, 4 ]
223
- ##
224
- ---
225
- name: mapping5
226
- desc: parse error - invalid indent of mapping.
227
- exception*: { ruby: Kwalify::SyntaxError, java: kwalify.SyntaxException }
228
- input: |
229
- A: 10
230
- B: 20
231
- B1: 21
232
- B2: 22
233
- C: 30
234
- expected: |
235
- ##
236
- ---
237
- name: mapping6
238
- desc: parse error - mapping item is expected.
239
- exception*: { ruby: Kwalify::SyntaxError, java: kwalify.SyntaxException }
240
- input: |
241
- A:
242
- a1: 1
243
- a2: 2
244
- a3 3
245
- B:
246
- b1: 1
247
- b2: 2
248
- b3 3
249
- expected: |
250
- locations:
251
- ##
252
- ---
253
- name: combination1
254
- desc: seq of mapping
255
- #
256
- input: |
257
- -
258
- x: 10
259
- y: 20
260
- -
261
- x: 15
262
- y: 25
263
- #
264
- expected: |
265
- [{"x"=>10, "y"=>20}, {"x"=>15, "y"=>25}]
266
- locations:
267
- - [ "/", 1, 1 ]
268
- - [ "/0", 2, 3 ]
269
- - [ "/0/x", 2, 6 ]
270
- - [ "/0/y", 3, 6 ]
271
- - [ "/1", 5, 3 ]
272
- - [ "/1/x", 5, 6 ]
273
- - [ "/1/y", 6, 6 ]
274
- ##
275
- ---
276
- name: combination2
277
- desc: seq of mapping (in same line)
278
- #
279
- input: |
280
- - x: 10
281
- y: 20
282
- - x: 15
283
- y: 25
284
- #
285
- expected: |
286
- [{"x"=>10, "y"=>20}, {"x"=>15, "y"=>25}]
287
- locations:
288
- - [ "/", 1, 1 ]
289
- - [ "/0", 1, 3 ]
290
- - [ "/0/x", 1, 6 ]
291
- - [ "/0/y", 2, 6 ]
292
- - [ "/1", 3, 3 ]
293
- - [ "/1/x", 3, 6 ]
294
- - [ "/1/y", 4, 6 ]
295
- ##
296
- ---
297
- name: combination3
298
- desc: seq of seq of seq
299
- #
300
- input: |
301
- - - - a
302
- - b
303
- - - - c
304
- - d
305
- #
306
- expected: |
307
- [[["a", "b"]], [["c", "d"]]]
308
- locations:
309
- - [ "/", 1, 1 ]
310
- - [ "/0", 1, 3 ]
311
- - [ "/0/0", 1, 5 ]
312
- - [ "/0/0/0", 1, 7 ]
313
- - [ "/0/0/1", 2, 7 ]
314
- - [ "/1", 3, 3 ]
315
- - [ "/1/0", 3, 5 ]
316
- - [ "/1/0/0", 3, 7 ]
317
- - [ "/1/0/1", 4, 7 ]
318
- ##
319
- ---
320
- name: combination4
321
- desc: map of sequence
322
- #
323
- input: |
324
- A:
325
- - 1
326
- - 2
327
- - 3
328
- B:
329
- - 4
330
- - 5
331
- - 6
332
- #
333
- expected: |
334
- {"A"=>[1, 2, 3], "B"=>[4, 5, 6]}
335
- locations:
336
- - [ "/", 1, 1 ]
337
- - [ "/A", 2, 3 ]
338
- - [ "/A/0", 2, 5 ]
339
- - [ "/A/1", 3, 5 ]
340
- - [ "/A/2", 4, 5 ]
341
- - [ "/B", 6, 3 ]
342
- - [ "/B/0", 6, 5 ]
343
- - [ "/B/1", 7, 5 ]
344
- - [ "/B/2", 8, 5 ]
345
- ##
346
- ---
347
- name: combination5
348
- desc: map of sequence (in same line)
349
- #
350
- input: |
351
- A: - 1
352
- - 2
353
- - 3
354
- B: - 4
355
- - 5
356
- - 6
357
- #
358
- expected: |
359
- {"A"=>[1, 2, 3], "B"=>[4, 5, 6]}
360
- locations:
361
- - [ "/", 1, 1 ]
362
- - [ "/A", 1, 4 ]
363
- - [ "/A/0", 1, 6 ]
364
- - [ "/A/1", 2, 6 ]
365
- - [ "/A/2", 3, 6 ]
366
- - [ "/B", 4, 4 ]
367
- - [ "/B/0", 4, 6 ]
368
- - [ "/B/1", 5, 6 ]
369
- - [ "/B/2", 6, 6 ]
370
- ##
371
- ---
372
- name: combination6
373
- desc: map of map of map
374
- #
375
- input: |
376
- A: a: 1: 100
377
- 2: 200
378
- B: b: 3: 300
379
- "4": 400
380
- #
381
- expected: |
382
- {"A"=>{"a"=>{1=>100, 2=>200}}, "B"=>{"b"=>{3=>300, "4"=>400}}}
383
- locations:
384
- - [ "/", 1, 1 ]
385
- - [ "/A", 1, 4 ]
386
- - [ "/A/a", 1, 7 ]
387
- - [ "/A/a/1", 1, 10 ]
388
- - [ "/A/a/2", 2, 10 ]
389
- - [ "/B", 3, 4 ]
390
- - [ "/B/b", 3, 7 ]
391
- - [ "/B/b/3", 3, 10 ]
392
- - [ "/B/b/'4'", 4, 12 ]
393
- ##
394
- ---
395
- name: comment1
396
- desc: line comment
397
- input: |
398
- # comment
399
- - A
400
- - B
401
- # comment
402
- -
403
- # comment
404
- - C
405
- #
406
- expected: |
407
- ["A", "B", ["C"]]
408
- locations:
409
- - [ "/", 2, 1 ]
410
- - [ "/0", 2, 3 ]
411
- - [ "/1", 3, 3 ]
412
- - [ "/2", 7, 3 ]
413
- - [ "/2/0", 7, 5 ]
414
- ##
415
- ---
416
- name: comment2
417
- desc: escape line comment
418
- #
419
- input: |
420
- # comment
421
- - A
422
- - B:
423
- "# comment"
424
- -
425
- '# comment'
426
- #
427
- expected: |
428
- ["A", {"B"=>"# comment"}, "# comment"]
429
- locations:
430
- - [ "/", 2, 1 ]
431
- - [ "/0", 2, 3 ]
432
- - [ "/1", 3, 3 ]
433
- - [ "/1/B", 4, 4 ]
434
- - [ "/2", 6, 3 ]
435
- ##
436
- ---
437
- name: comment3
438
- desc: line comment with seq and map
439
- #
440
- input: |
441
- - A # comment
442
- - B: # comment
443
- C: foo # comment
444
- D: "bar#bar" #comment
445
- #
446
- expected: |
447
- ["A", {"B"=>{"C"=>"foo", "D"=>"bar#bar"}}]
448
- locations:
449
- - [ "/", 1, 1 ]
450
- - [ "/0", 1, 3 ]
451
- - [ "/1", 2, 3 ]
452
- - [ "/1/B", 3, 5 ]
453
- - [ "/1/B/C", 3, 8 ]
454
- - [ "/1/B/D", 4, 8 ]
455
- ##
456
- ---
457
- name: comment4
458
- desc: line comment with anchor and alias
459
- #
460
- input: |
461
- - &a1 # comment
462
- foo
463
- - *a1 # comment
464
- #
465
- expected: |
466
- ["foo", "foo"]
467
- locations:
468
- - [ "/", 1, 1 ]
469
- - [ "/0", 1, 3 ]
470
- - [ "/1", 3, 3 ]
471
- ##
472
- ---
473
- name: flowseq1
474
- desc: flow style sequence
475
- #
476
- input: |
477
- - [ 10, 20 ]
478
- - [15,25,35]
479
- #
480
- expected: |
481
- [[10, 20], ["15,25,35"]]
482
- # [[10, 20], [15, 25, 35]]
483
- locations:
484
- - [ "/", 1, 1 ]
485
- - [ "/0", 1, 3 ]
486
- - [ "/0/0", 1, 5 ]
487
- - [ "/0/1", 1, 9 ]
488
- - [ "/1", 2, 3 ]
489
- - [ "/1/0", 2, 4 ]
490
- ##
491
- ---
492
- name: flowseq2
493
- desc: nested flow style sequence
494
- #
495
- input: |
496
- 1: [ A, [B1, B2]]
497
- '2': [[[X]]]
498
- 3: [[1, 1], [2, "2"], ['3', 3]]
499
- #
500
- expected: |
501
- {1=>["A", ["B1", "B2"]], "2"=>[[["X"]]], 3=>[[1, 1], [2, "2"], ["3", 3]]}
502
- #expected: |
503
- # {1=>["A", ["B1", "B2"]],
504
- # "2"=>[[["X"]]],
505
- # 3=>[["x1", "y1"], ["x2", "y2"], ["x3", "y3"]]}
506
- locations:
507
- - [ "/", 1, 1 ]
508
- - [ "/1", 1, 4 ]
509
- - [ "/1/0", 1, 6 ]
510
- - [ "/1/1", 1, 9 ]
511
- - [ "/1/1/0", 1, 10 ]
512
- - [ "/1/1/1", 1, 14 ]
513
- - [ "/'2'", 2, 6 ]
514
- - [ "/'2'/0", 2, 7 ]
515
- - [ "/'2'/0/0", 2, 8 ]
516
- - [ "/'2'/0/0/0", 2, 9 ]
517
- - [ "/3", 3, 4 ]
518
- - [ "/3/0", 3, 5 ]
519
- - [ "/3/0/0", 3, 6 ]
520
- - [ "/3/0/1", 3, 9 ]
521
- - [ "/3/1", 3, 13 ]
522
- - [ "/3/1/0", 3, 14 ]
523
- - [ "/3/1/1", 3, 17 ]
524
- - [ "/3/2", 3, 23 ]
525
- - [ "/3/2/0", 3, 24 ]
526
- - [ "/3/2/1", 3, 29 ]
527
- ##
528
- ---
529
- name: flowseq3
530
- desc: flow style sequence with some lines
531
- #
532
- input: |
533
- A: [ [10, 20],
534
- [11, 21],
535
- [12, 22]]
536
- B: [
537
- [1.1,
538
- 1.2,
539
- 1.3
540
- ]
541
- ]
542
- #
543
- expected: |
544
- {"A"=>[[10, 20], [11, 21], [12, 22]], "B"=>[[1.1, 1.2, 1.3]]}
545
- locations:
546
- - [ "/", 1, 1 ]
547
- - [ "/A", 1, 4 ]
548
- - [ "/A/0", 1, 6 ]
549
- - [ "/A/0/0", 1, 7 ]
550
- - [ "/A/0/1", 1, 11 ]
551
- - [ "/A/1", 2, 6 ]
552
- - [ "/A/1/0", 2, 7 ]
553
- - [ "/A/1/1", 2, 11 ]
554
- - [ "/A/2", 3, 6 ]
555
- - [ "/A/2/0", 3, 7 ]
556
- - [ "/A/2/1", 3, 11 ]
557
- - [ "/B", 4, 4 ]
558
- - [ "/B/0", 5, 3 ]
559
- - [ "/B/0/0", 5, 4 ]
560
- - [ "/B/0/1", 6, 4 ]
561
- - [ "/B/0/2", 7, 4 ]
562
- ##
563
- ---
564
- name: flowseq4
565
- desc: invalid flow style seq (sequence item required (or last comma is extra).)
566
- mesg: sequence item required (or last comma is extra).
567
- exception*: { ruby: Kwalify::SyntaxError, java: kwalify.SyntaxException }
568
- #
569
- input: |
570
- A: [ [10,20], ]
571
- #
572
- expected: |
573
- locations:
574
- ##
575
- ---
576
- name: flowseq5
577
- desc: invalid flow style seq (flow style sequence requires ']').
578
- mesg: flow style sequence requires ']'
579
- exception*: { ruby: Kwalify::SyntaxError, java: kwalify.SyntaxException }
580
- #
581
- input: |
582
- A: [ [10,20]
583
- B: [ [30, 40]]
584
- #
585
- expected: |
586
- locations:
587
- ##
588
- ---
589
- name: flowseq6
590
- desc: invalid flow style seq (flow style sequence requires ']').
591
- mesg: flow style sequence is closed but got ']'.
592
- exception*: { ruby: Kwalify::SyntaxError, java: kwalify.SyntaxException }
593
- #
594
- input: |
595
- [ 10 ]]
596
- #
597
- expected: |
598
- locations:
599
- ##
600
- ---
601
- name: flowmap1
602
- desc: flow style map
603
- #
604
- input: |
605
- - { A1: 10, A2: 20 }
606
- - {B1: 15, 'B2': 25, "B3": 35}
607
- #
608
- expected: |
609
- [{"A1"=>10, "A2"=>20}, {"B1"=>15, "B2"=>25, "B3"=>35}]
610
- locations:
611
- - [ "/", 1, 1 ]
612
- - [ "/0", 1, 3 ]
613
- - [ "/0/A1", 1, 9 ]
614
- - [ "/0/A2", 1, 17 ]
615
- - [ "/1", 2, 3 ]
616
- - [ "/1/B1", 2, 8 ]
617
- - [ "/1/B2", 2, 18 ]
618
- - [ "/1/B3", 2, 28 ]
619
- ##
620
- ---
621
- name: flowmap2
622
- desc: flow style map nested
623
- #
624
- input: |
625
- A: { x: {y: {z: 10}}}
626
- B: { a: 1, b: {c: 2, d: 3, e: {f: 4}}, g: 5}
627
- #
628
- expected: |
629
- {"A"=>{"x"=>{"y"=>{"z"=>10}}}, "B"=>{"a"=>1, "b"=>{"c"=>2, "d"=>3, "e"=>{"f"=>4}}, "g"=>5}}
630
- #expected: |
631
- # {"A"=>{"x"=>{"y"=>{"z"=>10}}},
632
- # "B"=>{"a"=>1, "b"=>{"c"=>2, "d"=>3, "e"=>{"f"=>4}}, "g"=>5}}
633
- locations:
634
- - [ "/", 1, 1 ]
635
- - [ "/A", 1, 4 ]
636
- - [ "/A/x", 1, 9 ]
637
- - [ "/A/x/y", 1, 13 ]
638
- - [ "/A/x/y/z", 1, 17 ]
639
- - [ "/B", 2, 4 ]
640
- - [ "/B/a", 2, 9 ]
641
- - [ "/B/b", 2, 15 ]
642
- - [ "/B/b/c", 2, 19 ]
643
- - [ "/B/b/d", 2, 25 ]
644
- - [ "/B/b/e", 2, 31 ]
645
- - [ "/B/b/e/f", 2, 35 ]
646
- - [ "/B/g", 2, 43 ]
647
- ##
648
- ---
649
- name: flowmap3
650
- desc: flow style map with some lines
651
- #
652
- input: |
653
- A: { x:
654
- {y:
655
- {z: 10}
656
- }
657
- }
658
- B: {
659
- a: 1,
660
- b: {
661
- c: 2,
662
- d: 3,
663
- e: {
664
- f: 4
665
- }
666
- },
667
- g: 5
668
- }
669
- #
670
- expected: |
671
- {"A"=>{"x"=>{"y"=>{"z"=>10}}}, "B"=>{"a"=>1, "b"=>{"c"=>2, "d"=>3, "e"=>{"f"=>4}}, "g"=>5}}
672
- #expected: |
673
- # {"A"=>{"x"=>{"y"=>{"z"=>10}}},
674
- # "B"=>{"a"=>1, "b"=>{"c"=>2, "d"=>3, "e"=>{"f"=>4}}, "g"=>5}}
675
- locations:
676
- - [ "/", 1, 1 ]
677
- - [ "/A", 1, 4 ]
678
- - [ "/A/x", 2, 6 ]
679
- - [ "/A/x/y", 3, 8 ]
680
- - [ "/A/x/y/z", 3, 12 ]
681
- - [ "/B", 6, 4 ]
682
- - [ "/B/a", 7, 6 ]
683
- - [ "/B/b", 8, 6 ]
684
- - [ "/B/b/c", 9, 8 ]
685
- - [ "/B/b/d", 10, 8 ]
686
- - [ "/B/b/e", 11, 8 ]
687
- - [ "/B/b/e/f", 12, 10 ]
688
- - [ "/B/g", 15, 6 ]
689
- ##
690
- ---
691
- name: flowmap4
692
- desc: invalid flow style map (mapping item required (or last comma is extra).)
693
- mesg: mapping item required (or last comma is extra).
694
- exception*: { ruby: Kwalify::SyntaxError, java: kwalify.SyntaxException }
695
- #
696
- input: |
697
- - {A: 10, B: 20, }
698
- #
699
- expected: |
700
- locations:
701
- ##
702
- ---
703
- name: flowmap5
704
- desc: invalid flow style map (flow style mapping requires '}').
705
- mesg: flow style mapping requires '}'
706
- exception*: { ruby: Kwalify::SyntaxError, java: kwalify.SyntaxException }
707
- #
708
- input: |
709
- - {A: { x: 10, y: 20 }
710
- - {A: { x: 11, y: 21 }}
711
- #
712
- expected: |
713
- locations:
714
- ##
715
- ---
716
- name: flowmap6
717
- desc: invalid flow style map (flow style mapping requires ']').
718
- mesg: flow style mapping is closed but got '}'.
719
- exception*: { ruby: Kwalify::SyntaxError, java: kwalify.SyntaxException }
720
- #
721
- input: |
722
- { x: 10 }}
723
- #
724
- expected: |
725
- locations:
726
- ##
727
- ---
728
- name: flowscalar1
729
- desc: string containing backslash escape
730
- #
731
- input: |
732
- [ {"key1": "\"\\\n"},
733
- {'key2': '\'\\\n'} ]
734
- #
735
- expected: |
736
- [{"key1"=>"\"\\\n"}, {"key2"=>"'\\\\n"}]
737
- locations:
738
- - [ "/", 1, 1 ]
739
- - [ "/0", 1, 3 ]
740
- - [ "/0/key1", 1, 12 ]
741
- - [ "/1", 2, 3 ]
742
- - [ "/1/key2", 2, 12 ]
743
- ##
744
- ---
745
- name: flowcombination1
746
- desc: combination of flow style seq and map
747
- #
748
- input: |
749
- [
750
- {name: ' foo ',
751
- e-mail: foo@mail.com},
752
- {name: ba z,
753
- e-mail: ba__z@mail.com }
754
- ]
755
- #
756
- expected: |
757
- [{"e-mail"=>"foo@mail.com", "name"=>" foo "}, {"e-mail"=>"ba__z@mail.com", "name"=>"ba z"}]
758
- locations:
759
- - [ "/", 1, 1 ]
760
- - [ "/0", 2, 3 ]
761
- - [ "/0/name", 2, 10 ]
762
- - [ "/0/e-mail", 3, 12 ]
763
- - [ "/1", 4, 3 ]
764
- - [ "/1/name", 4, 10 ]
765
- - [ "/1/e-mail", 5, 12 ]
766
- ##
767
- ---
768
- name: blocktext01
769
- desc: parse_blocktext
770
- #
771
- input: |
772
- - text1: |
773
- foo
774
- bar
775
- baz
776
- - text2: |
777
- aaa
778
- bbb
779
- ccc
780
- - |
781
- foo
782
- bar
783
- baz
784
- - |
785
- aaa
786
- bbb
787
- ccc
788
- #
789
- expected: |
790
- [{"text1"=>"foo\nbar\nbaz\n"}, {"text2"=>"aaa\n bbb\n ccc\n"}, "foo\nbar\nbaz\n", "aaa\n bbb\n ccc\n"]
791
- locations:
792
- - [ "/", 1, 1 ]
793
- - [ "/0", 1, 3 ]
794
- - [ "/0/text1", 1, 10 ]
795
- - [ "/1", 5, 3 ]
796
- - [ "/1/text2", 5, 10 ]
797
- - [ "/2", 9, 3 ]
798
- - [ "/3", 13, 3 ]
799
- ##
800
- ---
801
- name: blocktext02
802
- desc: block text with '|+' or '|-'
803
- #
804
- input: |
805
- - text1: |
806
- A
807
-
808
- B
809
- C
810
-
811
-
812
- - text2: |+
813
- A
814
-
815
- B
816
- C
817
-
818
-
819
- - text3: |-
820
- A
821
-
822
- B
823
- C
824
-
825
-
826
- #
827
- expected: |
828
- [{"text1"=>"A\n\nB\nC\n"}, {"text2"=>"A\n\nB\nC\n\n\n"}, {"text3"=>"A\n\nB\nC"}]
829
- locations:
830
- - [ "/", 1, 1 ]
831
- - [ "/0", 1, 3 ]
832
- - [ "/0/text1", 1, 10 ]
833
- - [ "/1", 8, 3 ]
834
- - [ "/1/text2", 8, 10 ]
835
- - [ "/2", 15, 3 ]
836
- - [ "/2/text3", 15, 10 ]
837
- ##
838
- ---
839
- name: blocktext03
840
- desc: block text with '|n'
841
- #
842
- input: |
843
- - text1: |3
844
- A
845
-
846
- B
847
- C
848
-
849
-
850
- - text2: |+3
851
- A
852
-
853
- B
854
- C
855
-
856
-
857
- - text3: |-3
858
- A
859
-
860
- B
861
- C
862
-
863
-
864
- #
865
- expected: |
866
- [{"text1"=>" A\n\n B\n C\n"}, {"text2"=>" A\n\n B\n C\n\n\n"}, {"text3"=>" A\n\n B\n C"}]
867
- locations:
868
- - [ "/", 1, 1 ]
869
- - [ "/0", 1, 3 ]
870
- - [ "/0/text1", 1, 10 ]
871
- - [ "/1", 8, 3 ]
872
- - [ "/1/text2", 8, 10 ]
873
- - [ "/2", 15, 3 ]
874
- - [ "/2/text3", 15, 10 ]
875
- ##
876
- #---
877
- #name: blocktext04
878
- #desc: block text with '| foo'
879
- ##
880
- #input: |
881
- # - text1: | foo
882
- # A
883
- #
884
- # B
885
- # C
886
- #
887
- # - | foo
888
- # A
889
- # B
890
- # C
891
- ##
892
- #expected: |
893
- # [{"text1"=>"foo A\n\nB\nC\n"}, "fooA\n B\n C\n"]
894
- ###
895
- ---
896
- name: blocktext05
897
- desc: block text with '#' (comment)
898
- #
899
- input: |
900
- #
901
- - text1: |
902
- A
903
- #
904
- B
905
- #
906
- text2: |
907
- #
908
- #
909
- #
910
- - |
911
- A
912
- #
913
- B
914
- #
915
- - |
916
- #
917
- #
918
- #
919
- - x
920
-
921
- #
922
- expected: |
923
- [{"text1"=>"A\n#\nB\n", "text2"=>"#\n#\n"}, "A\n#\nB\n", "#\n#\n", "x"]
924
- locations:
925
- - [ "/", 2, 3 ]
926
- - [ "/0", 2, 5 ]
927
- - [ "/0/text1", 2, 12 ]
928
- - [ "/0/text2", 7, 12 ]
929
- - [ "/1", 11, 5 ]
930
- - [ "/2", 16, 5 ]
931
- - [ "/3", 20, 5 ]
932
- ##
933
- ---
934
- name: blocktext06
935
- desc: invalid block text
936
- exception*: { ruby: Kwalify::SyntaxError, java: kwalify.SyntaxException }
937
- #
938
- input: |
939
- - |
940
- a
941
- b
942
- c
943
- #
944
- expected: |
945
- ##
946
- ---
947
- name: blocktext11
948
- desc: parse_blocktext (>)
949
- #
950
- input: |
951
- - text1: >
952
- foo
953
- bar
954
- baz
955
- - text2: >
956
- aaa
957
- bbb
958
- ccc
959
- - >
960
- foo
961
- bar
962
- baz
963
- - >
964
- aaa
965
- bbb
966
- ccc
967
- #
968
- expected: |
969
- [{"text1"=>"foo bar baz\n"}, {"text2"=>"aaa\n bbb\n ccc\n"}, "foo bar baz\n", "aaa\n bbb\n ccc\n"]
970
- # [{"text1"=>"foo bar baz\n"}, {"text2"=>"aaa bbb ccc\n"}, "foo bar baz\n", "aaa bbb ccc\n"]
971
- locations:
972
- - [ "/", 1, 1 ]
973
- - [ "/0", 1, 3 ]
974
- - [ "/0/text1", 1, 10 ]
975
- - [ "/1", 5, 3 ]
976
- - [ "/1/text2", 5, 10 ]
977
- - [ "/2", 9, 3 ]
978
- - [ "/3", 13, 3 ]
979
- ##
980
- ---
981
- name: blocktext12
982
- desc: block text with '>+' or '>-'
983
- #
984
- input: |
985
- - text1: >
986
- A
987
-
988
- B
989
- C
990
-
991
-
992
- - text2: >+
993
- A
994
-
995
- B
996
- C
997
-
998
-
999
- - text3: >-
1000
- A
1001
-
1002
- B
1003
- C
1004
-
1005
-
1006
- #
1007
- expected: |
1008
- [{"text1"=>"A\nB C\n"}, {"text2"=>"A\nB C\n\n\n"}, {"text3"=>"A\nB C"}]
1009
- locations:
1010
- - [ "/", 1, 1 ]
1011
- - [ "/0", 1, 3 ]
1012
- - [ "/0/text1", 1, 10 ]
1013
- - [ "/1", 8, 3 ]
1014
- - [ "/1/text2", 8, 10 ]
1015
- - [ "/2", 15, 3 ]
1016
- - [ "/2/text3", 15, 10 ]
1017
- ##
1018
- ---
1019
- name: blocktext13
1020
- desc: block text with '>n'
1021
- #
1022
- input: |
1023
- - >2
1024
- A
1025
-
1026
- B
1027
- C
1028
-
1029
-
1030
- - >+2
1031
- A
1032
-
1033
- B
1034
- C
1035
-
1036
-
1037
- - >-2
1038
- A
1039
-
1040
- B
1041
- C
1042
-
1043
-
1044
- #
1045
- expected: |
1046
- [" A\n\n B\n C\n", " A\n\n B\n C\n\n\n", " A\n\n B\n C"]
1047
- # [" A\n B C\n", " A\n B C\n\n\n", " A\n B C"]
1048
- locations:
1049
- - [ "/", 1, 1 ]
1050
- - [ "/0", 1, 3 ]
1051
- - [ "/1", 8, 3 ]
1052
- - [ "/2", 15, 3 ]
1053
- ##
1054
- #---
1055
- #name: blocktext14
1056
- #desc: block text with '> foo'
1057
- ##
1058
- #input: |
1059
- # - text1: > foo
1060
- # A
1061
- #
1062
- # B
1063
- # C
1064
- #
1065
- # - > foo
1066
- # A
1067
- # B
1068
- # C
1069
- ##
1070
- #expected: |
1071
- # [{"text1"=>"foo A\nB C\n"}, "fooA B C\n"]
1072
- ###
1073
- ---
1074
- name: blocktext15
1075
- desc: block text with '#' (comment)
1076
- #
1077
- input: |
1078
- #
1079
- - text1: >
1080
- AA
1081
- ##
1082
- BB
1083
- #
1084
- text2: >
1085
- #
1086
- #
1087
- #
1088
- - >
1089
- AA
1090
- ##
1091
- BB
1092
- #
1093
- - >
1094
- #
1095
- #
1096
- #
1097
- - x
1098
-
1099
- #
1100
- expected: |
1101
- [{"text1"=>"AA ## BB\n", "text2"=>"# #\n"}, "AA ## BB\n", "# #\n", "x"]
1102
- locations:
1103
- - [ "/", 2, 3 ]
1104
- - [ "/0", 2, 5 ]
1105
- - [ "/0/text1", 2, 12 ]
1106
- - [ "/0/text2", 7, 12 ]
1107
- - [ "/1", 11, 5 ]
1108
- - [ "/2", 16, 5 ]
1109
- - [ "/3", 20, 5 ]
1110
- ##
1111
- ---
1112
- name: blocktext16
1113
- desc: invalid block text
1114
- exception*: { ruby: Kwalify::SyntaxError, java: kwalify.SyntaxException }
1115
- #
1116
- input: |
1117
- - >
1118
- a
1119
- b
1120
- c
1121
- #
1122
- expected: |
1123
- ##
1124
- ---
1125
- name: anchor1
1126
- desc: parse_anchor, parse_alias
1127
- #
1128
- input: |
1129
- - &a1 foo
1130
- - &a2
1131
- bar
1132
- - *a1
1133
- - *a2
1134
- #
1135
- expected: |
1136
- ["foo", "bar", "foo", "bar"]
1137
- locations:
1138
- - [ "/", 1, 1 ]
1139
- - [ "/0", 1, 3 ]
1140
- - [ "/1", 2, 3 ]
1141
- - [ "/2", 4, 3 ]
1142
- - [ "/3", 5, 3 ]
1143
- ##
1144
- ---
1145
- name: anchor2
1146
- desc: parse_anchor, parse_alias
1147
- #
1148
- input: |
1149
- - A: &a1
1150
- x: 10
1151
- y: 20
1152
- - B: bar
1153
- - C: *a1
1154
- #
1155
- expected: |
1156
- [{"A"=>{"x"=>10, "y"=>20}}, {"B"=>"bar"}, {"C"=>{"x"=>10, "y"=>20}}]
1157
- locations:
1158
- - [ "/", 1, 1 ]
1159
- - [ "/0", 1, 3 ]
1160
- - [ "/0/A", 1, 6 ]
1161
- - [ "/0/A/x", 2, 7 ]
1162
- - [ "/0/A/y", 3, 7 ]
1163
- - [ "/1", 4, 3 ]
1164
- - [ "/1/B", 4, 6 ]
1165
- - [ "/2", 5, 3 ]
1166
- - [ "/2/C", 5, 6 ]
1167
- ##
1168
- ---
1169
- name: anchor3
1170
- desc: anchor on child node
1171
- testopts: { recursive: yes }
1172
- #
1173
- input: |
1174
- - A: &a1
1175
- x: 10
1176
- y: 20
1177
- z: *a1
1178
- #
1179
- expected: |
1180
- [{"A"=>{"x"=>10, "y"=>20, "z"=>{...}}}]
1181
- locations:
1182
- - [ "/", 1, 1 ]
1183
- - [ "/0", 1, 3 ]
1184
- - [ "/0/A", 1, 6 ]
1185
- - [ "/0/A/x", 2, 7 ]
1186
- - [ "/0/A/y", 3, 7 ]
1187
- - [ "/0/A/z", 4, 7 ]
1188
- ##
1189
- ---
1190
- name: anchor4
1191
- desc: preceding anchor
1192
- #
1193
- input: |
1194
- - *a1
1195
- - *a1
1196
- - foo
1197
- - &a1 bar
1198
- #
1199
- exception*: { ruby: Kwalify::SyntaxError, java: kwalify.SyntaxException }
1200
- errormsg: anchor 'a1' not found.
1201
- expected: |
1202
- ["bar", "bar", "foo", "bar"]
1203
- locations:
1204
- - [ "/", 1, 1 ]
1205
- - [ "/0", 1, 3 ]
1206
- - [ "/1", 2, 3 ]
1207
- - [ "/2", 3, 3 ]
1208
- - [ "/3", 4, 3 ]
1209
- ##
1210
- ---
1211
- name: anchor5
1212
- desc: anchor not found
1213
- exception*: { ruby: Kwalify::SyntaxError, java: kwalify.SyntaxException }
1214
- mesg: anchor 'a2' not found (Kwalify::SyntaxError)
1215
- #
1216
- input: |
1217
- - &a1 foo
1218
- - bar
1219
- - *a2
1220
- #
1221
- expected: |
1222
- locations:
1223
- ##
1224
- ---
1225
- name: anchor6
1226
- desc: anchor on child node
1227
- testopts: { recursive: yes }
1228
- #
1229
- input: |
1230
- type: seq
1231
- sequence:
1232
- - &employee
1233
- type: map
1234
- mapping:
1235
- name:
1236
- type: str
1237
- post:
1238
- type: str
1239
- enum:
1240
- - exective
1241
- - manager
1242
- - clerk
1243
- supervisor: *employee
1244
- #
1245
- expected*:
1246
- ruby: |
1247
- {"sequence"=>
1248
- [{"type"=>"map",
1249
- "mapping"=>
1250
- {"name"=>{"type"=>"str"},
1251
- "post"=>{"enum"=>["exective", "manager", "clerk"], "type"=>"str"},
1252
- "supervisor"=>{...}}}],
1253
- "type"=>"seq"}
1254
- java: |
1255
- {"sequence"=>[{"mapping"=>{"name"=>{"type"=>"str"}, "post"=>{"enum"=>["exective", "manager", "clerk"], "type"=>"str"}, "supervisor"=>{...}}, "type"=>"map"}], "type"=>"seq"}
1256
- locations:
1257
- - [ "/", 1, 1 ]
1258
- - [ "/type", 1, 14 ]
1259
- - [ "/sequence", 3, 3 ]
1260
- - [ "/sequence/0", 3, 5 ]
1261
- - [ "/sequence/0/type", 4, 14 ]
1262
- - [ "/sequence/0/mapping", 6, 7 ]
1263
- - [ "/sequence/0/mapping/name", 7, 9 ]
1264
- - [ "/sequence/0/mapping/name/type", 7, 17 ]
1265
- - [ "/sequence/0/mapping/post", 9, 9 ]
1266
- - [ "/sequence/0/mapping/post/type", 9, 17 ]
1267
- - [ "/sequence/0/mapping/post/enum", 11, 11 ]
1268
- - [ "/sequence/0/mapping/post/enum/0", 11, 13 ]
1269
- - [ "/sequence/0/mapping/post/enum/1", 12, 13 ]
1270
- - [ "/sequence/0/mapping/post/enum/2", 13, 13 ]
1271
- - [ "/sequence/0/mapping/supervisor", 14, 19 ]
1272
- ##
1273
- ---
1274
- name: anchor7
1275
- desc: anchor and alias with flow style data
1276
- #
1277
- input: |
1278
- - &a1 {v: &a2 [1, 2, 3]}
1279
- - [x, *a1, y]
1280
- - {z: *a2}
1281
- #
1282
- expected*:
1283
- ruby: |
1284
- [{"v"=>[1, 2, 3]}, ["x", {"v"=>[1, 2, 3]}, "y"], {"z"=>[1, 2, 3]}]
1285
- java: |
1286
- [{"v"=>[1, 2, 3]}, ["x", {"v"=>[1, 2, 3]}, "y"], {"z"=>[1, 2, 3]}]
1287
- ##
1288
- ---
1289
- name: anchor8
1290
- desc: recursive alias with flow style data
1291
- testopts: { recursive: yes }
1292
- #
1293
- input: |
1294
- - &a1
1295
- {v: &a2 [*a1, *a2]}
1296
- #
1297
- expected*:
1298
- ruby: |
1299
- [{"v"=>[{...}, [...]]}]
1300
- java: |
1301
- [{"v"=>[{...}, [...]]}]
1302
- ##
1303
- ---
1304
- name: preceding1
1305
- desc: preceding anchor
1306
- testopts: { preceding_alias: yes }
1307
- #
1308
- input: |
1309
- - *a1
1310
- - &a1 AAA
1311
- #
1312
- expected*:
1313
- ruby: |
1314
- ["AAA", "AAA"]
1315
- java: |
1316
- ["AAA", "AAA"]
1317
- locations:
1318
- - [ "/", 1, 1 ]
1319
- - [ "/0", 1, 3 ]
1320
- - [ "/1", 2, 3 ]
1321
- ##
1322
- ---
1323
- name: preceding2
1324
- desc: preceding anchor
1325
- testopts: { preceding_alias: yes, pp: yes }
1326
- #
1327
- input: |
1328
- groups:
1329
- - name: wheel
1330
- owner: *ROOT
1331
- - name: users
1332
- owner: *USER1
1333
-
1334
- users:
1335
- - &ROOT
1336
- name: root
1337
- email: root@localhost
1338
- - &USER1
1339
- name: user1
1340
- email: user1@localhost
1341
- #
1342
- expected*:
1343
- ruby: |
1344
- {"groups"=>
1345
- [{"name"=>"wheel", "owner"=>{"name"=>"root", "email"=>"root@localhost"}},
1346
- {"name"=>"users", "owner"=>{"name"=>"user1", "email"=>"user1@localhost"}}],
1347
- "users"=>
1348
- [{"name"=>"root", "email"=>"root@localhost"},
1349
- {"name"=>"user1", "email"=>"user1@localhost"}]}
1350
- java: |
1351
- locations:
1352
- - [ "/", 1, 1 ]
1353
- - [ "/groups", 2, 3 ]
1354
- - [ "/groups/0", 2, 5 ]
1355
- - [ "/groups/0/name", 2, 12 ]
1356
- - [ "/groups/0/owner", 3, 12 ]
1357
- - [ "/groups/1", 4, 5 ]
1358
- - [ "/groups/1/name", 4, 12 ]
1359
- - [ "/groups/1/owner", 5, 12 ]
1360
- - [ "/users", 8, 3 ]
1361
- - [ "/users/0", 8, 5 ]
1362
- - [ "/users/0/name", 9, 11 ]
1363
- - [ "/users/0/email", 10, 12 ]
1364
- - [ "/users/1", 11, 5 ]
1365
- - [ "/users/1/name", 12, 11 ]
1366
- - [ "/users/1/email", 13, 12 ]
1367
- ##
1368
- ---
1369
- name: preceding3
1370
- desc: preceding anchor not found
1371
- testopts: { preceding_alias: yes }
1372
- #
1373
- input: |
1374
- groups:
1375
- - name: wheel
1376
- owner: *ROOT
1377
- - name: users
1378
- owner: *USER1
1379
-
1380
- users:
1381
- - &ROOT
1382
- name: root
1383
- email: root@localhost
1384
- - &USER2
1385
- name: user1
1386
- email: user1@localhost
1387
- #
1388
- exception*:
1389
- ruby: Kwalify::SyntaxError
1390
- #java: kwalify.SyntaxError
1391
- errormsg*:
1392
- ruby: "*USER1: anchor not found."
1393
- #java: "*USER1: anchor not found."
1394
- location: { linenum: 5, column: 13 }
1395
- locations:
1396
- ##
1397
- ---
1398
- name: tag1
1399
- desc: tag
1400
- #
1401
- input: |
1402
- - !str 123
1403
- - foo: !text 123
1404
- #
1405
- expected: |
1406
- [123, {"foo"=>123}]
1407
- locations:
1408
- - [ "/", 1, 1 ]
1409
- - [ "/0", 1, 3 ]
1410
- - [ "/1", 2, 3 ]
1411
- - [ "/1/foo", 2, 8 ]
1412
- ##
1413
- ---
1414
- name: docend1
1415
- desc: ... (document end)
1416
- #
1417
- input: |
1418
- - aaa
1419
- - bbb
1420
- ...
1421
- - ccc
1422
- #
1423
- expected: |
1424
- ["aaa", "bbb"]
1425
- locations:
1426
- - [ "/", 1, 1 ]
1427
- - [ "/0", 1, 3 ]
1428
- - [ "/1", 2, 3 ]
1429
- - [ "/2", null, null ]
1430
- ##
1431
- #---
1432
- name: docend2
1433
- desc: ... (document end) in block text
1434
- #
1435
- input: |
1436
- - |
1437
- foo
1438
- ...
1439
- bar
1440
- #
1441
- expected: |
1442
- ["foo\n...\nbar\n"]
1443
- locations:
1444
- - [ "/", 1, 1 ]
1445
- - [ "/0", 1, 3 ]
1446
- ##
1447
- ---
1448
- name: docstart1
1449
- desc: --- (document start)
1450
- #
1451
- input: |
1452
- # comment
1453
- ---
1454
- - foo
1455
- - bar
1456
- #
1457
- expected: |
1458
- ["foo", "bar"]
1459
- locations:
1460
- - [ "/", 3, 1 ]
1461
- - [ "/0", 3, 3 ]
1462
- - [ "/1", 4, 3 ]
1463
- ##
1464
- ---
1465
- name: docstart2
1466
- desc: --- (document start) with tag
1467
- #
1468
- input: |
1469
- # comment
1470
- --- %YAML !seq
1471
- - foo
1472
- - bar
1473
- #
1474
- expected: |
1475
- ["foo", "bar"]
1476
- locations:
1477
- - [ "/", 3, 1 ]
1478
- - [ "/0", 3, 3 ]
1479
- - [ "/1", 4, 3 ]
1480
- ##
1481
- ---
1482
- name: docstart3
1483
- desc: --- (document start) with tag
1484
- #
1485
- input: |
1486
- - |
1487
- foo
1488
- ---
1489
- bar
1490
- ---
1491
- baz
1492
- #
1493
- expected: |
1494
- ["foo\n---\nbar\n---\nbaz\n"]
1495
- locations:
1496
- - [ "/", 1, 1 ]
1497
- - [ "/0", 1, 3 ]
1498
- ##
1499
- ---
1500
- name: default1
1501
- desc: map default value
1502
- #
1503
- input: |
1504
- - A: 10
1505
- B: 20
1506
- =: -1
1507
- - K:
1508
- x: 10
1509
- y: 20
1510
- =:
1511
- x: 0
1512
- y: 0
1513
- #
1514
- expected: |
1515
- [{"A"=>10, "B"=>20}, {"K"=>{"x"=>10, "y"=>20}}]
1516
- locations:
1517
- - [ "/", 1, 1 ]
1518
- - [ "/0", 1, 3 ]
1519
- - [ "/0/A", 1, 6 ]
1520
- - [ "/0/B", 2, 6 ]
1521
- - [ "/1", 4, 3 ]
1522
- - [ "/1/K", 5, 5 ]
1523
- - [ "/1/K/x", 5, 8 ]
1524
- - [ "/1/K/y", 6, 8 ]
1525
- ##
1526
- ---
1527
- name: merge1
1528
- desc: merge key '<<'
1529
- #
1530
- input: |
1531
- - &a1
1532
- A: 10
1533
- B: 20
1534
- - C: 30
1535
- <<: *a1
1536
- A: ~
1537
- #
1538
- expected: |
1539
- [{"A"=>10, "B"=>20}, {"A"=>nil, "B"=>20, "C"=>30}]
1540
- locations:
1541
- - [ "/", 1, 1 ]
1542
- - [ "/0", 1, 3 ]
1543
- - [ "/0/A", 2, 6 ]
1544
- - [ "/0/B", 3, 6 ]
1545
- - [ "/1", 4, 3 ]
1546
- - [ "/1/C", 4, 6 ]
1547
- - [ "/1/A", 6, 6 ]
1548
- ##
1549
- ---
1550
- name: scalar1
1551
- desc: scalar with sequence
1552
- input: |
1553
- - abc
1554
- - 123
1555
- - 3.14
1556
- - true
1557
- - false
1558
- - yes
1559
- - no
1560
- - ~
1561
- - null
1562
- - "123"
1563
- - '456'
1564
- - 2005-01-01
1565
- - :sym
1566
- expected*:
1567
- ruby: |
1568
- ["abc", 123, 3.14, true, false, true, false, nil, nil, "123", "456", #<Date: 4906743/2,0,2299161>, :sym]
1569
- # ruby: |
1570
- # ["abc",
1571
- # 123,
1572
- # 3.14,
1573
- # true,
1574
- # false,
1575
- # true,
1576
- # false,
1577
- # nil,
1578
- # nil,
1579
- # "123",
1580
- # "456",
1581
- # #<Date: 4906743/2,0,2299161>,
1582
- # :sym]
1583
- java: |
1584
- ["abc", 123, 3.14, true, false, true, false, nil, nil, "123", "456", Tue Feb 01 00:00:00 JST 2005, ":sym"]
1585
- # ["abc", 123, true, false, true, false, nil, nil, "123", "456", #<Date: 4906743/2,0,2299161>, :sym]
1586
- ##
1587
- ---
1588
- name: scalar2
1589
- desc: mapping of scalar
1590
- testopts: { pp: yes }
1591
- input: |
1592
- - abc : ABC
1593
- - 123 : 123
1594
- - 3.14 : 3.14
1595
- - true : true
1596
- - false : false
1597
- - yes : yes
1598
- - no : no
1599
- - null : ~
1600
- - null : null
1601
- - "123" : "123"
1602
- - '456' : '456'
1603
- - 2005-01-01 : 2005-01-01
1604
- - :sym : :sym
1605
- # - ~ : ~
1606
- # - 2005-01-01 00:00:00 : 2005-01-01 00:00:00
1607
- expected*:
1608
- ruby: |
1609
- [{"abc"=>"ABC"},
1610
- {123=>123},
1611
- {3.14=>3.14},
1612
- {true=>true},
1613
- {false=>false},
1614
- {true=>true},
1615
- {false=>false},
1616
- {nil=>nil},
1617
- {nil=>nil},
1618
- {"123"=>"123"},
1619
- {"456"=>"456"},
1620
- {#<Date: 4906743/2,0,2299161>=>#<Date: 4906743/2,0,2299161>},
1621
- {:sym=>:sym}]
1622
- java: |
1623
- [{"abc"=>"ABC"}, {123=>123}, {3.14=>3.14}, {true=>true}, {false=>false}, {true=>true}, {false=>false}, "~ : ~", {nil=>nil}, {"123"=>"123"}, {"456"=>"456"}, {Tue Feb 01 00:00:00 JST 2005=>Tue Feb 01 00:00:00 JST 2005}, {":sym"=>":sym"}]
1624
- # {123=>1.23, 3.14=>314, "abc"=>"ABC"}
1625
- # {"abc"=>"ABC", 3.14=>314, 123=>1.23}
1626
- locations:
1627
- - [ "/", 1, 1 ]
1628
- - [ "/0/abc", 1, 9 ]
1629
- - [ "/1/123", 2, 9 ]
1630
- - [ "/2/3.14", 3, 10 ]
1631
- - [ "/3/true", 4, 10 ]
1632
- - [ "/4/false", 5, 11 ]
1633
- - [ "/5/yes", 6, 9 ]
1634
- - [ "/6/no", 7, 8 ]
1635
- - [ "/7/null", 8, 10 ]
1636
- - [ "/8/null", 9, 10 ]
1637
- - [ '/9/"123"/', 10, 11 ]
1638
- - [ "/10/'456'/", 11, 11 ]
1639
- - [ "/11/2005-01-01", 12, 16 ]
1640
- - [ "/12/:sym", 13, 10 ]
1641
- ##
1642
- ---
1643
- name: str1
1644
- desc: single/double quoted
1645
- input: |
1646
- -
1647
- - 'a'
1648
- - "b"
1649
- - 'A': 'a'
1650
- "B": 'b'
1651
- - ['C', "c"]
1652
- - {"D": "d"}
1653
- expected: |
1654
- [["a", "b"], {"A"=>"a", "B"=>"b"}, ["C", "c"], {"D"=>"d"}]
1655
- locations:
1656
- - [ "/", 1, 1 ]
1657
- - [ "/0", 2, 2 ]
1658
- - [ "/0/0", 2, 4 ]
1659
- - [ "/0/1", 3, 4 ]
1660
- - [ "/1", 4, 3 ]
1661
- - [ "/1/A", 4, 8 ]
1662
- - [ "/1/B", 5, 8 ]
1663
- - [ "/2", 6, 3 ]
1664
- - [ "/2/0", 6, 4 ]
1665
- - [ "/2/1", 6, 9 ]
1666
- - [ "/3", 7, 3 ]
1667
- - [ "/3/D", 7, 9 ]
1668
- ##
1669
- ---
1670
- name: str2
1671
- desc: escape sequence
1672
- input: |
1673
- -
1674
- - '\\\'\t\b\r\n'
1675
- - "\\\"\t\b\r\n"
1676
- - 'A': '\\\'\t\b\r\n'
1677
- "B": "\\\"\t\b\r\n"
1678
- - ['\\\'\t\b\r\n', "\\\"\t\b\r\n"]
1679
- - {'A': '\\\'\t\b\r\n',
1680
- "B": "\\\"\t\b\r\n"}
1681
- expected: |
1682
- [["\\'\\t\\b\\r\\n", "\\\"\t\b\r\n"], {"A"=>"\\'\\t\\b\\r\\n", "B"=>"\\\"\t\b\r\n"}, ["\\'\\t\\b\\r\\n", "\\\"\t\b\r\n"], {"A"=>"\\'\\t\\b\\r\\n", "B"=>"\\\"\t\b\r\n"}]
1683
- locations:
1684
- - [ "/", 1, 1 ]
1685
- - [ "/0", 2, 2 ]
1686
- - [ "/0/0", 2, 4 ]
1687
- - [ "/0/1", 3, 4 ]
1688
- - [ "/1", 4, 3 ]
1689
- - [ "/1/A", 4, 8 ]
1690
- - [ "/1/B", 5, 8 ]
1691
- - [ "/2", 6, 3 ]
1692
- - [ "/2/0", 6, 4 ]
1693
- - [ "/2/1", 6, 20 ]
1694
- - [ "/3", 7, 3 ]
1695
- - [ "/3/A", 7, 9 ]
1696
- - [ "/3/B", 8, 9 ]
1697
- ##
1698
- ---
1699
- name: str3
1700
- desc: binary and unicode
1701
- input: |
1702
- -
1703
- - "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e"
1704
- - "\u65e5\u672c\u8a9e"
1705
- - 'A': "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e"
1706
- "B": "\u65e5\u672c\u8a9e"
1707
- - ["\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e", "\u65e5\u672c\u8a9e"]
1708
- - {'A': "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e",
1709
- "B": "\u65e5\u672c\u8a9e" }
1710
- expected: |
1711
- [["\346\227\245\346\234\254\350\252\236", "\346\227\245\346\234\254\350\252\236"], {"A"=>"\346\227\245\346\234\254\350\252\236", "B"=>"\346\227\245\346\234\254\350\252\236"}, ["\346\227\245\346\234\254\350\252\236", "\346\227\245\346\234\254\350\252\236"], {"A"=>"\346\227\245\346\234\254\350\252\236", "B"=>"\346\227\245\346\234\254\350\252\236"}]
1712
- locations:
1713
- - [ "/", 1, 1 ]
1714
- - [ "/0", 2, 2 ]
1715
- - [ "/0/0", 2, 4 ]
1716
- - [ "/0/1", 3, 4 ]
1717
- - [ "/1", 4, 3 ]
1718
- - [ "/1/A", 4, 8 ]
1719
- - [ "/1/B", 5, 8 ]
1720
- - [ "/2", 6, 3 ]
1721
- - [ "/2/0", 6, 4 ]
1722
- - [ "/2/1", 6, 44 ]
1723
- - [ "/3", 7, 3 ]
1724
- - [ "/3/A", 7, 9 ]
1725
- - [ "/3/B", 8, 9 ]
1726
- ##
1727
- ---
1728
- name: mapkey1
1729
- desc: mapping key test
1730
- input: |
1731
- - key1: A
1732
- - .key.2: B
1733
- - key3*: C
1734
- - :key4: D
1735
- # - k:e:y:5: E
1736
- expected*:
1737
- ruby: |
1738
- [{"key1"=>"A"}, {".key.2"=>"B"}, {"key3*"=>"C"}, {:key4=>"D"}]
1739
- # [{"key1"=>"A"}, {".key.2"=>"B"}, {"key3*"=>"C"}, {:key4=>"D"}, {"k:e:y:5"=>"E"}]
1740
- java: |
1741
- [{"key1"=>"A"}, {".key.2"=>"B"}, {"key3*"=>"C"}, {:key4=>"D"}]
1742
- # [{"key1"=>"A"}, {".key.2"=>"B"}, {"key3*"=>"C"}, {:key4=>"D"}, {"k:e:y:5"=>"E"}]
1743
- locations:
1744
- - [ "/", 1, 1 ]
1745
- - [ "/0/key1", 1, 11 ]
1746
- - [ "/1/.key.2", 2, 11 ]
1747
- - [ "/2/key3*", 3, 11 ]
1748
- - [ "/3/:key4", 4, 11 ]
1749
- ##