kwalify 0.6.1 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGES.txt +232 -0
- data/MIT-LICENSE +20 -0
- data/README.txt +16 -19
- data/bin/kwalify +3 -3
- data/contrib/inline-require +6 -4
- data/contrib/kwalify +3719 -2427
- data/doc-api/classes/CommandOptionError.html +17 -17
- data/doc-api/classes/CommandOptionParser.html +63 -63
- data/doc-api/classes/Kwalify.html +29 -7
- data/doc-api/classes/Kwalify/AssertionError.html +9 -9
- data/doc-api/classes/Kwalify/BaseError.html +72 -71
- data/doc-api/classes/Kwalify/BaseParser.html +461 -0
- data/doc-api/classes/Kwalify/CommandOptionError.html +11 -11
- data/doc-api/classes/Kwalify/ErrorHelper.html +51 -46
- data/doc-api/classes/Kwalify/HashInterface.html +13 -135
- data/doc-api/classes/Kwalify/Json.html +105 -0
- data/doc-api/classes/Kwalify/Main.html +129 -126
- data/doc-api/classes/Kwalify/MetaValidator.html +248 -232
- data/doc-api/classes/Kwalify/Parser.html +12 -12
- data/doc-api/classes/Kwalify/PlainYamlParser.html +166 -163
- data/doc-api/classes/Kwalify/PlainYamlParser/Alias.html +11 -11
- data/doc-api/classes/Kwalify/Rule.html +152 -130
- data/doc-api/classes/Kwalify/SchemaError.html +10 -10
- data/doc-api/classes/Kwalify/SyntaxError.html +185 -0
- data/doc-api/classes/Kwalify/Types.html +26 -25
- data/doc-api/classes/Kwalify/Util.html +389 -0
- data/doc-api/classes/Kwalify/Util/HashLike.html +246 -0
- data/doc-api/classes/Kwalify/Util/OrderedHash.html +330 -0
- data/doc-api/classes/Kwalify/ValidationError.html +10 -10
- data/doc-api/classes/Kwalify/Validator.html +153 -86
- data/doc-api/classes/Kwalify/Yaml.html +181 -0
- data/doc-api/classes/Kwalify/Yaml/Parser.html +1538 -0
- data/doc-api/classes/Kwalify/YamlParser.html +190 -183
- data/doc-api/classes/Kwalify/YamlSyntaxError.html +8 -57
- data/doc-api/created.rid +1 -1
- data/doc-api/files/__/README_txt.html +17 -22
- data/doc-api/files/kwalify/errors_rb.html +2 -2
- data/doc-api/files/kwalify/main_rb.html +4 -3
- data/doc-api/files/kwalify/messages_rb.html +2 -2
- data/doc-api/files/kwalify/meta-validator_rb.html +3 -3
- data/doc-api/files/kwalify/{util/yaml-helper_rb.html → parser/base_rb.html} +8 -6
- data/doc-api/files/kwalify/parser/yaml_rb.html +117 -0
- data/doc-api/files/kwalify/rule_rb.html +2 -2
- data/doc-api/files/kwalify/types_rb.html +2 -2
- data/doc-api/files/kwalify/util/assert-text-equal_rb.html +2 -2
- data/doc-api/files/kwalify/util/hash-interface_rb.html +9 -2
- data/doc-api/files/kwalify/util/hashlike_rb.html +107 -0
- data/doc-api/files/kwalify/util/option-parser_rb.html +2 -2
- data/doc-api/files/kwalify/util/ordered-hash_rb.html +107 -0
- data/doc-api/files/kwalify/util/testcase-helper_rb.html +2 -2
- data/doc-api/files/kwalify/util_rb.html +107 -0
- data/doc-api/files/kwalify/validator_rb.html +2 -2
- data/doc-api/files/kwalify/yaml-parser_rb.html +2 -2
- data/doc-api/files/kwalify_rb.html +3 -2
- data/doc-api/fr_class_index.html +8 -1
- data/doc-api/fr_file_index.html +5 -1
- data/doc-api/fr_method_index.html +128 -69
- data/doc/img/fig01.png +0 -0
- data/doc/users-guide.html +882 -717
- data/examples/address-book/address-book.schema.yaml +2 -2
- data/examples/data-binding/BABEL.data.yaml +63 -0
- data/examples/data-binding/BABEL.schema.yaml +31 -0
- data/examples/data-binding/Makefile +8 -0
- data/examples/data-binding/Rakefile +13 -0
- data/examples/data-binding/main.rb +27 -0
- data/examples/invoice/invoice.schema.yaml +3 -3
- data/examples/tapkit/tapkit.schema.yaml +2 -2
- data/lib/kwalify.rb +41 -4
- data/lib/kwalify/errors.rb +118 -96
- data/lib/kwalify/kwalify.schema.yaml +58 -0
- data/lib/kwalify/main.rb +384 -377
- data/lib/kwalify/messages.rb +41 -27
- data/lib/kwalify/meta-validator.rb +251 -331
- data/lib/kwalify/parser/base.rb +127 -0
- data/lib/kwalify/parser/yaml.rb +837 -0
- data/lib/kwalify/rule.rb +545 -487
- data/lib/kwalify/templates/genclass-java.eruby +189 -162
- data/lib/kwalify/templates/genclass-php.eruby +104 -0
- data/lib/kwalify/templates/genclass-ruby.eruby +95 -66
- data/lib/kwalify/types.rb +107 -106
- data/lib/kwalify/util.rb +157 -0
- data/lib/kwalify/util/assert-text-equal.rb +33 -31
- data/lib/kwalify/util/hash-interface.rb +11 -30
- data/lib/kwalify/util/hashlike.rb +51 -0
- data/lib/kwalify/util/option-parser.rb +144 -144
- data/lib/kwalify/util/ordered-hash.rb +57 -0
- data/lib/kwalify/util/testcase-helper.rb +3 -3
- data/lib/kwalify/validator.rb +267 -212
- data/lib/kwalify/yaml-parser.rb +822 -768
- data/setup.rb +861 -607
- data/test/Rookbook.yaml +10 -0
- data/test/{tmp.dir/Context.java → data/users-guide/AddressBook.java.expected} +11 -11
- data/test/data/users-guide/BABEL.data.yaml +24 -0
- data/test/data/users-guide/BABEL.schema.yaml +30 -0
- data/test/data/users-guide/ExampleAddressBook.java +47 -0
- data/test/{tmp.dir/Group.java → data/users-guide/Group.java.expected} +2 -11
- data/test/data/users-guide/Person.java.expected +44 -0
- data/test/data/users-guide/address_book.rb +52 -0
- data/test/data/users-guide/address_book.schema.yaml +28 -0
- data/test/data/users-guide/address_book.yaml +27 -0
- data/test/data/users-guide/answers-schema.yaml +12 -0
- data/test/data/users-guide/answers-validator.rb +52 -0
- data/test/data/users-guide/babel_genclass.result +26 -0
- data/test/data/users-guide/config.schema.yaml +7 -0
- data/test/data/users-guide/config.yaml +4 -0
- data/test/{tmp.dir/silent1.document → data/users-guide/document01a.yaml} +0 -0
- data/test/data/users-guide/document01b.yaml +3 -0
- data/test/data/users-guide/document02a.yaml +4 -0
- data/test/data/users-guide/document02b.yaml +4 -0
- data/test/data/users-guide/document03a.yaml +6 -0
- data/test/data/users-guide/document03b.yaml +6 -0
- data/test/data/users-guide/document04a.yaml +9 -0
- data/test/data/users-guide/document04b.yaml +9 -0
- data/test/data/users-guide/document05a.yaml +11 -0
- data/test/data/users-guide/document05b.yaml +12 -0
- data/test/data/users-guide/document06a.yaml +15 -0
- data/test/data/users-guide/document06b.yaml +16 -0
- data/test/data/users-guide/document07a.yaml +9 -0
- data/test/data/users-guide/document07b.yaml +7 -0
- data/test/data/users-guide/document12a.json +10 -0
- data/test/data/users-guide/document12b.json +6 -0
- data/test/data/users-guide/document13a.yaml +17 -0
- data/test/data/users-guide/document14a.yaml +3 -0
- data/test/data/users-guide/document14b.yaml +3 -0
- data/test/data/users-guide/document15a.yaml +6 -0
- data/test/data/users-guide/document15b.yaml +5 -0
- data/test/data/users-guide/example_address_book.rb +10 -0
- data/test/data/users-guide/example_address_book_java.result +32 -0
- data/test/data/users-guide/example_address_book_ruby.result +31 -0
- data/test/data/users-guide/genclass_java.result +4 -0
- data/test/data/users-guide/howto-validation-with-parsing.rb +28 -0
- data/test/data/users-guide/howto-validation.rb +25 -0
- data/test/data/users-guide/howto3.rb +6 -0
- data/test/data/users-guide/howto3.result +5 -0
- data/test/data/users-guide/howto3.yaml +8 -0
- data/test/data/users-guide/howto5_databinding.result +111 -0
- data/test/data/users-guide/invalid01.result +3 -0
- data/test/data/users-guide/invalid02.result +5 -0
- data/test/data/users-guide/invalid03.result +5 -0
- data/test/data/users-guide/invalid04.result +4 -0
- data/test/data/users-guide/invalid05.result +11 -0
- data/test/data/users-guide/invalid06.result +4 -0
- data/test/data/users-guide/invalid07.result +3 -0
- data/test/data/users-guide/invalid08.result +3 -0
- data/test/data/users-guide/invalid12.json +8 -0
- data/test/data/users-guide/invalid14.result +4 -0
- data/test/data/users-guide/invalid15.result +4 -0
- data/test/data/users-guide/loadbabel.rb +27 -0
- data/test/data/users-guide/loadconfig.rb +15 -0
- data/test/data/users-guide/loadconfig.result +2 -0
- data/test/data/users-guide/models.rb +22 -0
- data/test/data/users-guide/option_ha.result +6 -0
- data/test/data/users-guide/option_ha_genclass_java.result +7 -0
- data/test/{tmp.dir/meta1.schema → data/users-guide/schema01.yaml} +0 -0
- data/test/data/users-guide/schema02.yaml +12 -0
- data/test/data/users-guide/schema03.yaml +9 -0
- data/test/data/users-guide/schema04.yaml +20 -0
- data/test/data/users-guide/schema05.yaml +29 -0
- data/test/data/users-guide/schema06.yaml +11 -0
- data/test/data/users-guide/schema12.json +12 -0
- data/test/data/users-guide/schema13.yaml +13 -0
- data/test/data/users-guide/schema14.yaml +5 -0
- data/test/data/users-guide/schema15.yaml +21 -0
- data/test/data/users-guide/valid01.result +2 -0
- data/test/data/users-guide/valid02.result +2 -0
- data/test/data/users-guide/valid03.result +2 -0
- data/test/data/users-guide/valid04.result +2 -0
- data/test/data/users-guide/valid05.result +2 -0
- data/test/data/users-guide/valid06.result +2 -0
- data/test/data/users-guide/valid07.result +2 -0
- data/test/data/users-guide/valid08.result +2 -0
- data/test/data/users-guide/valid12.result +2 -0
- data/test/data/users-guide/valid13.result +2 -0
- data/test/data/users-guide/valid14.result +2 -0
- data/test/data/users-guide/valid15.result +2 -0
- data/test/data/users-guide/validate08.rb +37 -0
- data/test/test-action.rb +78 -0
- data/test/test-action.yaml +738 -0
- data/test/test-databinding.rb +80 -0
- data/test/test-databinding.yaml +301 -0
- data/test/test-main.rb +129 -150
- data/test/test-main.yaml +126 -321
- data/test/test-metavalidator.rb +47 -47
- data/test/test-metavalidator.yaml +77 -21
- data/test/test-parser-yaml.rb +57 -0
- data/test/test-parser-yaml.yaml +1749 -0
- data/test/test-rule.rb +14 -15
- data/test/test-rule.yaml +6 -3
- data/test/test-users-guide.rb +75 -0
- data/test/test-validator.rb +77 -52
- data/test/test-validator.yaml +168 -6
- data/test/test-yaml-parser.rb +47 -0
- data/test/{test-yamlparser.yaml → test-yaml-parser.yaml} +159 -52
- data/test/test.rb +37 -21
- metadata +136 -37
- data/COPYING +0 -340
- data/ChangeLog +0 -70
- data/doc-api/classes/YamlHelper.html +0 -259
- data/lib/kwalify/util/yaml-helper.rb +0 -82
- data/test/test-yamlparser.rb +0 -58
- data/test/tmp.dir/User.java +0 -43
- data/test/tmp.dir/action1.document +0 -18
- data/test/tmp.dir/action1.schema +0 -32
- data/test/tmp.dir/action2.document +0 -18
- data/test/tmp.dir/action2.schema +0 -32
- data/test/tmp.dir/emacs.document +0 -6
- data/test/tmp.dir/emacs.schema +0 -6
- data/test/tmp.dir/meta1.document +0 -0
- data/test/tmp.dir/meta2.document +0 -0
- data/test/tmp.dir/meta2.schema +0 -3
- data/test/tmp.dir/silent1.schema +0 -3
- data/test/tmp.dir/silent2.document +0 -7
- data/test/tmp.dir/silent2.schema +0 -3
- data/test/tmp.dir/stream.invalid +0 -8
- data/test/tmp.dir/stream.schema +0 -3
- data/test/tmp.dir/stream.valid +0 -8
- data/test/tmp.dir/untabify.document +0 -5
- data/test/tmp.dir/untabify.schema +0 -10
- data/todo.txt +0 -34
@@ -0,0 +1,47 @@
|
|
1
|
+
###
|
2
|
+
### $Rev: 83 $
|
3
|
+
### $Release: 0.7.0 $
|
4
|
+
### copyright(c) 2005-2008 kuwata-lab all rights reserved.
|
5
|
+
###
|
6
|
+
|
7
|
+
require File.dirname(__FILE__) + '/test.rb'
|
8
|
+
|
9
|
+
|
10
|
+
class ParserTest < Test::Unit::TestCase
|
11
|
+
|
12
|
+
filename = __FILE__.sub(/\.rb$/, '.yaml')
|
13
|
+
load_yaml_testdata(filename, :lang=>'ruby')
|
14
|
+
|
15
|
+
def _test()
|
16
|
+
if @exception
|
17
|
+
@error_class = @exception.split(/::/).inject(Kernel) { |k,s| k = k.const_get(s) }
|
18
|
+
#@error_class = Kwalify::YamlSyntaxError if @error_class == Kwalify::SyntaxError
|
19
|
+
end
|
20
|
+
parser = Kwalify::YamlParser.new(@input)
|
21
|
+
if @error_class
|
22
|
+
assert_raise(@error_class) do
|
23
|
+
doc = parser.parse()
|
24
|
+
end
|
25
|
+
else
|
26
|
+
doc = parser.parse()
|
27
|
+
#if @recursive || @pp
|
28
|
+
if @testopts && (@testopts['recursive'] || @testopts['pp'])
|
29
|
+
s = StringWriter.new
|
30
|
+
PP.pp(doc, s)
|
31
|
+
actual = s
|
32
|
+
else
|
33
|
+
actual = doc.inspect + "\n"
|
34
|
+
end
|
35
|
+
if $log
|
36
|
+
File.open("#{@name}.expected", 'w') { |f| f.write(@expected) }
|
37
|
+
File.open("#{@name}.actual", 'w') { |f| f.write(actual) }
|
38
|
+
end
|
39
|
+
if $print
|
40
|
+
print actual
|
41
|
+
else
|
42
|
+
assert_text_equal(@expected, actual)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
##
|
2
|
-
## $Rev:
|
3
|
-
## $Release: 0.
|
4
|
-
## copyright(c) 2005 kuwata-lab all rights reserved.
|
2
|
+
## $Rev: 92 $
|
3
|
+
## $Release: 0.7.0 $
|
4
|
+
## copyright(c) 2005-2008 kuwata-lab all rights reserved.
|
5
5
|
##
|
6
6
|
---
|
7
7
|
name: sequence1
|
@@ -27,7 +27,7 @@ input: |
|
|
27
27
|
- C
|
28
28
|
expected: |
|
29
29
|
["A", ["B1", "B2", ["B2.1", "B2.2"]], "C"]
|
30
|
-
|
30
|
+
##
|
31
31
|
---
|
32
32
|
name: sequence3
|
33
33
|
desc: null item of sequence
|
@@ -41,7 +41,7 @@ input: |
|
|
41
41
|
- G
|
42
42
|
expected: |
|
43
43
|
["A", nil, "C", nil, nil, nil, "G"]
|
44
|
-
|
44
|
+
##
|
45
45
|
---
|
46
46
|
name: sequence4
|
47
47
|
desc: null item of nested sequence
|
@@ -56,7 +56,7 @@ input: |
|
|
56
56
|
#
|
57
57
|
expected: |
|
58
58
|
[[[nil, nil, nil]], nil]
|
59
|
-
|
59
|
+
##
|
60
60
|
---
|
61
61
|
name: sequence5
|
62
62
|
desc: sequence with empty lines
|
@@ -73,11 +73,11 @@ input: |
|
|
73
73
|
-
|
74
74
|
expected: |
|
75
75
|
["A", ["B"], nil]
|
76
|
-
|
76
|
+
##
|
77
77
|
---
|
78
78
|
name: sequence6
|
79
79
|
desc: syntax error - invalid indent of sequence.
|
80
|
-
exception*: { ruby: YamlSyntaxError, java: kwalify.SyntaxException }
|
80
|
+
exception*: { ruby: Kwalify::YamlSyntaxError, java: kwalify.SyntaxException }
|
81
81
|
#
|
82
82
|
input: |
|
83
83
|
- AAA
|
@@ -86,11 +86,11 @@ input: |
|
|
86
86
|
- CCC
|
87
87
|
#
|
88
88
|
expected: |
|
89
|
-
|
89
|
+
##
|
90
90
|
---
|
91
91
|
name: sequence7
|
92
92
|
desc: syntax error - sequence item is exepcted.
|
93
|
-
exception*: { ruby: YamlSyntaxError, java: kwalify.SyntaxException }
|
93
|
+
exception*: { ruby: Kwalify::YamlSyntaxError, java: kwalify.SyntaxException }
|
94
94
|
input: |
|
95
95
|
-
|
96
96
|
- a1
|
@@ -161,7 +161,7 @@ expected: |
|
|
161
161
|
---
|
162
162
|
name: mapping5
|
163
163
|
desc: parse error - invalid indent of mapping.
|
164
|
-
exception*: { ruby: YamlSyntaxError, java: kwalify.SyntaxException }
|
164
|
+
exception*: { ruby: Kwalify::YamlSyntaxError, java: kwalify.SyntaxException }
|
165
165
|
input: |
|
166
166
|
A: 10
|
167
167
|
B: 20
|
@@ -173,7 +173,7 @@ expected: |
|
|
173
173
|
---
|
174
174
|
name: mapping6
|
175
175
|
desc: parse error - mapping item is expected.
|
176
|
-
exception*: { ruby: YamlSyntaxError, java: kwalify.SyntaxException }
|
176
|
+
exception*: { ruby: Kwalify::YamlSyntaxError, java: kwalify.SyntaxException }
|
177
177
|
input: |
|
178
178
|
A:
|
179
179
|
a1: 1
|
@@ -266,10 +266,10 @@ input: |
|
|
266
266
|
A: a: 1: 100
|
267
267
|
2: 200
|
268
268
|
B: b: 3: 300
|
269
|
-
4: 400
|
269
|
+
"4": 400
|
270
270
|
#
|
271
271
|
expected: |
|
272
|
-
{"A"=>{"a"=>{1=>100, 2=>200}}, "B"=>{"b"=>{3=>300, 4=>400}}}
|
272
|
+
{"A"=>{"a"=>{1=>100, 2=>200}}, "B"=>{"b"=>{3=>300, "4"=>400}}}
|
273
273
|
##
|
274
274
|
---
|
275
275
|
name: comment1
|
@@ -300,7 +300,7 @@ input: |
|
|
300
300
|
#
|
301
301
|
expected: |
|
302
302
|
["A", {"B"=>"# comment"}, "# comment"]
|
303
|
-
|
303
|
+
##
|
304
304
|
---
|
305
305
|
name: comment3
|
306
306
|
desc: line comment with seq and map
|
@@ -313,7 +313,7 @@ input: |
|
|
313
313
|
#
|
314
314
|
expected: |
|
315
315
|
["A", {"B"=>{"C"=>"foo", "D"=>"bar#bar"}}]
|
316
|
-
|
316
|
+
##
|
317
317
|
---
|
318
318
|
name: comment4
|
319
319
|
desc: line comment with anchor and alias
|
@@ -325,7 +325,7 @@ input: |
|
|
325
325
|
#
|
326
326
|
expected: |
|
327
327
|
["foo", "foo"]
|
328
|
-
|
328
|
+
##
|
329
329
|
---
|
330
330
|
name: flowseq1
|
331
331
|
desc: flow style sequence
|
@@ -336,6 +336,7 @@ input: |
|
|
336
336
|
#
|
337
337
|
expected: |
|
338
338
|
[[10, 20], [15, 25, 35]]
|
339
|
+
# [[10, 20], ["15,25,35"]]
|
339
340
|
##
|
340
341
|
---
|
341
342
|
name: flowseq2
|
@@ -343,14 +344,14 @@ desc: nested flow style sequence
|
|
343
344
|
#
|
344
345
|
input: |
|
345
346
|
1: [ A, [B1, B2]]
|
346
|
-
2: [[[X]]]
|
347
|
-
3: [[1,1],[2,"2"],['3',3]]
|
347
|
+
'2': [[[X]]]
|
348
|
+
3: [[1, 1], [2, "2"], ['3', 3]]
|
348
349
|
#
|
349
350
|
expected: |
|
350
|
-
{1=>["A", ["B1", "B2"]], 2=>[[["X"]]], 3=>[[1, 1], [2, "2"], ["3", 3]]}
|
351
|
+
{1=>["A", ["B1", "B2"]], "2"=>[[["X"]]], 3=>[[1, 1], [2, "2"], ["3", 3]]}
|
351
352
|
#expected: |
|
352
353
|
# {1=>["A", ["B1", "B2"]],
|
353
|
-
# 2=>[[["X"]]],
|
354
|
+
# "2"=>[[["X"]]],
|
354
355
|
# 3=>[["x1", "y1"], ["x2", "y2"], ["x3", "y3"]]}
|
355
356
|
##
|
356
357
|
---
|
@@ -358,9 +359,9 @@ name: flowseq3
|
|
358
359
|
desc: flow style sequence with some lines
|
359
360
|
#
|
360
361
|
input: |
|
361
|
-
A: [ [10,20],
|
362
|
-
[11,21],
|
363
|
-
[12,22]]
|
362
|
+
A: [ [10, 20],
|
363
|
+
[11, 21],
|
364
|
+
[12, 22]]
|
364
365
|
B: [
|
365
366
|
[1.1,
|
366
367
|
1.2,
|
@@ -375,30 +376,30 @@ expected: |
|
|
375
376
|
name: flowseq4
|
376
377
|
desc: invalid flow style seq (sequence item required (or last comma is extra).)
|
377
378
|
mesg: sequence item required (or last comma is extra).
|
378
|
-
exception*: { ruby: YamlSyntaxError, java: kwalify.SyntaxException }
|
379
|
+
exception*: { ruby: Kwalify::YamlSyntaxError, java: kwalify.SyntaxException }
|
379
380
|
#
|
380
381
|
input: |
|
381
382
|
A: [ [10,20], ]
|
382
383
|
#
|
383
384
|
expected: |
|
384
|
-
|
385
|
+
##
|
385
386
|
---
|
386
387
|
name: flowseq5
|
387
388
|
desc: invalid flow style seq (flow style sequence requires ']').
|
388
389
|
mesg: flow style sequence requires ']'
|
389
|
-
exception*: { ruby: YamlSyntaxError, java: kwalify.SyntaxException }
|
390
|
+
exception*: { ruby: Kwalify::YamlSyntaxError, java: kwalify.SyntaxException }
|
390
391
|
#
|
391
392
|
input: |
|
392
393
|
A: [ [10,20]
|
393
394
|
B: [ [30, 40]]
|
394
395
|
#
|
395
396
|
expected: |
|
396
|
-
|
397
|
+
##
|
397
398
|
---
|
398
399
|
name: flowseq6
|
399
400
|
desc: invalid flow style seq (flow style sequence requires ']').
|
400
401
|
mesg: flow style sequence is closed but got ']'.
|
401
|
-
exception*: { ruby: YamlSyntaxError, java: kwalify.SyntaxException }
|
402
|
+
exception*: { ruby: Kwalify::YamlSyntaxError, java: kwalify.SyntaxException }
|
402
403
|
#
|
403
404
|
input: |
|
404
405
|
[ 10 ]]
|
@@ -415,14 +416,14 @@ input: |
|
|
415
416
|
#
|
416
417
|
expected: |
|
417
418
|
[{"A1"=>10, "A2"=>20}, {"B1"=>15, "B2"=>25, "B3"=>35}]
|
418
|
-
|
419
|
+
##
|
419
420
|
---
|
420
421
|
name: flowmap2
|
421
422
|
desc: flow style map nested
|
422
423
|
#
|
423
424
|
input: |
|
424
425
|
A: { x: {y: {z: 10}}}
|
425
|
-
B: { a: 1, b:{c: 2, d: 3, e:{f: 4}}, g: 5}
|
426
|
+
B: { a: 1, b: {c: 2, d: 3, e: {f: 4}}, g: 5}
|
426
427
|
#
|
427
428
|
expected: |
|
428
429
|
{"A"=>{"x"=>{"y"=>{"z"=>10}}}, "B"=>{"a"=>1, "b"=>{"c"=>2, "d"=>3, "e"=>{"f"=>4}}, "g"=>5}}
|
@@ -462,30 +463,30 @@ expected: |
|
|
462
463
|
name: flowmap4
|
463
464
|
desc: invalid flow style map (mapping item required (or last comma is extra).)
|
464
465
|
mesg: mapping item required (or last comma is extra).
|
465
|
-
exception*: { ruby: YamlSyntaxError, java: kwalify.SyntaxException }
|
466
|
+
exception*: { ruby: Kwalify::YamlSyntaxError, java: kwalify.SyntaxException }
|
466
467
|
#
|
467
468
|
input: |
|
468
469
|
- {A: 10, B: 20, }
|
469
470
|
#
|
470
471
|
expected: |
|
471
|
-
|
472
|
+
##
|
472
473
|
---
|
473
474
|
name: flowmap5
|
474
475
|
desc: invalid flow style map (flow style mapping requires '}').
|
475
476
|
mesg: flow style mapping requires '}'
|
476
|
-
exception*: { ruby: YamlSyntaxError, java: kwalify.SyntaxException }
|
477
|
+
exception*: { ruby: Kwalify::YamlSyntaxError, java: kwalify.SyntaxException }
|
477
478
|
#
|
478
479
|
input: |
|
479
480
|
- {A: { x: 10, y: 20 }
|
480
481
|
- {A: { x: 11, y: 21 }}
|
481
482
|
#
|
482
483
|
expected: |
|
483
|
-
|
484
|
+
##
|
484
485
|
---
|
485
486
|
name: flowmap6
|
486
487
|
desc: invalid flow style map (flow style mapping requires ']').
|
487
488
|
mesg: flow style mapping is closed but got '}'.
|
488
|
-
exception*: { ruby: YamlSyntaxError, java: kwalify.SyntaxException }
|
489
|
+
exception*: { ruby: Kwalify::YamlSyntaxError, java: kwalify.SyntaxException }
|
489
490
|
#
|
490
491
|
input: |
|
491
492
|
{ x: 10 }}
|
@@ -655,7 +656,7 @@ expected: |
|
|
655
656
|
#---
|
656
657
|
#name: blocktext06
|
657
658
|
#desc: invalid block text
|
658
|
-
#exception*: { ruby: YamlSyntaxError, java: kwalify.SyntaxException }
|
659
|
+
#exception*: { ruby: Kwalify::YamlSyntaxError, java: kwalify.SyntaxException }
|
659
660
|
##
|
660
661
|
#input: |
|
661
662
|
# - |
|
@@ -750,7 +751,7 @@ input: |
|
|
750
751
|
expected: |
|
751
752
|
[" A\n B C\n", " A\n B C\n\n\n", " A\n B C"]
|
752
753
|
# [" A\n\n B\n C\n", " A\n\n B\n C\n\n\n", " A\n\n B\n C"]
|
753
|
-
|
754
|
+
##
|
754
755
|
---
|
755
756
|
name: blocktext14
|
756
757
|
desc: block text with '> foo'
|
@@ -769,7 +770,7 @@ input: |
|
|
769
770
|
#
|
770
771
|
expected: |
|
771
772
|
[{"text1"=>"foo A\nB C\n"}, "fooA B C\n"]
|
772
|
-
|
773
|
+
##
|
773
774
|
---
|
774
775
|
name: blocktext15
|
775
776
|
desc: block text with '#' (comment)
|
@@ -799,11 +800,11 @@ input: |
|
|
799
800
|
#
|
800
801
|
expected: |
|
801
802
|
[{"text1"=>"AA ## BB\n", "text2"=>"# #\n"}, "AA ## BB\n", "# #\n", "x"]
|
802
|
-
|
803
|
+
##
|
803
804
|
#---
|
804
805
|
#name: blocktext16
|
805
806
|
#desc: invalid block text
|
806
|
-
#exception*: { ruby: YamlSyntaxError, java: kwalify.SyntaxException }
|
807
|
+
#exception*: { ruby: Kwalify::YamlSyntaxError, java: kwalify.SyntaxException }
|
807
808
|
##
|
808
809
|
#input: |
|
809
810
|
# - >
|
@@ -826,7 +827,7 @@ input: |
|
|
826
827
|
#
|
827
828
|
expected: |
|
828
829
|
["foo", "bar", "foo", "bar"]
|
829
|
-
|
830
|
+
##
|
830
831
|
---
|
831
832
|
name: anchor2
|
832
833
|
desc: parse_anchor, parse_alias
|
@@ -840,11 +841,11 @@ input: |
|
|
840
841
|
#
|
841
842
|
expected: |
|
842
843
|
[{"A"=>{"x"=>10, "y"=>20}}, {"B"=>"bar"}, {"C"=>{"x"=>10, "y"=>20}}]
|
843
|
-
|
844
|
+
##
|
844
845
|
---
|
845
846
|
name: anchor3
|
846
847
|
desc: anchor on child node
|
847
|
-
recursive: yes
|
848
|
+
testopts: { recursive: yes }
|
848
849
|
#
|
849
850
|
input: |
|
850
851
|
- A: &a1
|
@@ -857,7 +858,7 @@ expected: |
|
|
857
858
|
##
|
858
859
|
---
|
859
860
|
name: anchor4
|
860
|
-
desc:
|
861
|
+
desc: preceding anchor
|
861
862
|
#
|
862
863
|
input: |
|
863
864
|
- *a1
|
@@ -871,8 +872,8 @@ expected: |
|
|
871
872
|
---
|
872
873
|
name: anchor5
|
873
874
|
desc: anchor not found
|
874
|
-
exception*: { ruby: YamlSyntaxError, java: kwalify.SyntaxException }
|
875
|
-
mesg: anchor 'a2' not found (YamlSyntaxError)
|
875
|
+
exception*: { ruby: Kwalify::YamlSyntaxError, java: kwalify.SyntaxException }
|
876
|
+
mesg: anchor 'a2' not found (Kwalify::YamlSyntaxError)
|
876
877
|
#
|
877
878
|
input: |
|
878
879
|
- &a1 foo
|
@@ -884,7 +885,7 @@ expected: |
|
|
884
885
|
---
|
885
886
|
name: anchor6
|
886
887
|
desc: anchor on child node
|
887
|
-
recursive: yes
|
888
|
+
testopts: { recursive: yes }
|
888
889
|
#
|
889
890
|
input: |
|
890
891
|
type: seq
|
@@ -915,6 +916,109 @@ expected*:
|
|
915
916
|
{"sequence"=>[{"mapping"=>{"name"=>{"type"=>"str"}, "post"=>{"enum"=>["exective", "manager", "clerk"], "type"=>"str"}, "supervisor"=>{...}}, "type"=>"map"}], "type"=>"seq"}
|
916
917
|
##
|
917
918
|
---
|
919
|
+
name: anchor7
|
920
|
+
desc: anchor and alias with flow style data
|
921
|
+
#
|
922
|
+
input: |
|
923
|
+
- &a1 {v: &a2 [1, 2, 3]}
|
924
|
+
- [x, *a1, y]
|
925
|
+
- {z: *a2}
|
926
|
+
#
|
927
|
+
expected*:
|
928
|
+
ruby: |
|
929
|
+
[{"v"=>[1, 2, 3]}, ["x", {"v"=>[1, 2, 3]}, "y"], {"z"=>[1, 2, 3]}]
|
930
|
+
java: |
|
931
|
+
[{"v"=>[1, 2, 3]}, ["x", {"v"=>[1, 2, 3]}, "y"], {"z"=>[1, 2, 3]}]
|
932
|
+
##
|
933
|
+
---
|
934
|
+
name: anchor8
|
935
|
+
desc: recursive alias with flow style data
|
936
|
+
testopts: { recursive: yes }
|
937
|
+
#
|
938
|
+
input: |
|
939
|
+
- &a1
|
940
|
+
{v: &a2 [*a1, *a2]}
|
941
|
+
#
|
942
|
+
expected*:
|
943
|
+
ruby: |
|
944
|
+
[{"v"=>[{...}, [...]]}]
|
945
|
+
java: |
|
946
|
+
[{"v"=>[{...}, [...]]}]
|
947
|
+
##
|
948
|
+
---
|
949
|
+
name: preceding1
|
950
|
+
desc: preceding anchor
|
951
|
+
testopts: { allow_preceding_alias: yes }
|
952
|
+
#
|
953
|
+
input: |
|
954
|
+
- *a1
|
955
|
+
- &a1 AAA
|
956
|
+
#
|
957
|
+
expected*:
|
958
|
+
ruby: |
|
959
|
+
["AAA", "AAA"]
|
960
|
+
java: |
|
961
|
+
["AAA", "AAA"]
|
962
|
+
##
|
963
|
+
---
|
964
|
+
name: preceding2
|
965
|
+
desc: preceding anchor
|
966
|
+
testopts: { allow_preceding_alias: yes, pp: yes }
|
967
|
+
#
|
968
|
+
input: |
|
969
|
+
groups:
|
970
|
+
- name: wheel
|
971
|
+
owner: *ROOT
|
972
|
+
- name: users
|
973
|
+
owner: *USER1
|
974
|
+
|
975
|
+
users:
|
976
|
+
- &ROOT
|
977
|
+
name: root
|
978
|
+
email: root@localhost
|
979
|
+
- &USER1
|
980
|
+
name: user1
|
981
|
+
email: user1@localhost
|
982
|
+
#
|
983
|
+
expected*:
|
984
|
+
ruby: |
|
985
|
+
{"groups"=>
|
986
|
+
[{"name"=>"wheel", "owner"=>{"name"=>"root", "email"=>"root@localhost"}},
|
987
|
+
{"name"=>"users", "owner"=>{"name"=>"user1", "email"=>"user1@localhost"}}],
|
988
|
+
"users"=>
|
989
|
+
[{"name"=>"root", "email"=>"root@localhost"},
|
990
|
+
{"name"=>"user1", "email"=>"user1@localhost"}]}
|
991
|
+
java: |
|
992
|
+
##
|
993
|
+
---
|
994
|
+
name: preceding3
|
995
|
+
desc: preceding anchor not found
|
996
|
+
testopts: { allow_preceding_alias: yes }
|
997
|
+
#
|
998
|
+
input: |
|
999
|
+
groups:
|
1000
|
+
- name: wheel
|
1001
|
+
owner: *ROOT
|
1002
|
+
- name: users
|
1003
|
+
owner: *USER1
|
1004
|
+
|
1005
|
+
users:
|
1006
|
+
- &ROOT
|
1007
|
+
name: root
|
1008
|
+
email: root@localhost
|
1009
|
+
- &USER2
|
1010
|
+
name: user1
|
1011
|
+
email: user1@localhost
|
1012
|
+
#
|
1013
|
+
exception*:
|
1014
|
+
ruby: Kwalify::YamlSyntaxError
|
1015
|
+
#java: kwalify.SyntaxError
|
1016
|
+
errormsg*:
|
1017
|
+
ruby: "*USER1: anchor not found."
|
1018
|
+
#java: "*USER1: anchor not found."
|
1019
|
+
location: { linenum: 5, column: 13 }
|
1020
|
+
##
|
1021
|
+
---
|
918
1022
|
name: tag1
|
919
1023
|
desc: tag
|
920
1024
|
#
|
@@ -937,7 +1041,7 @@ input: |
|
|
937
1041
|
#
|
938
1042
|
expected: |
|
939
1043
|
["aaa", "bbb"]
|
940
|
-
|
1044
|
+
##
|
941
1045
|
---
|
942
1046
|
name: docend2
|
943
1047
|
desc: ... (document end) in block text
|
@@ -1066,7 +1170,7 @@ expected*:
|
|
1066
1170
|
---
|
1067
1171
|
name: scalar2
|
1068
1172
|
desc: mapping of scalar
|
1069
|
-
pp:
|
1173
|
+
testopts: { pp: yes }
|
1070
1174
|
input: |
|
1071
1175
|
- abc : ABC
|
1072
1176
|
- 123 : 123
|
@@ -1081,7 +1185,8 @@ input: |
|
|
1081
1185
|
- '456' : '456'
|
1082
1186
|
- 2005-01-01 : 2005-01-01
|
1083
1187
|
- :sym : :sym
|
1084
|
-
#
|
1188
|
+
# - ~ : ~
|
1189
|
+
# - 2005-01-01 00:00:00 : 2005-01-01 00:00:00
|
1085
1190
|
expected*:
|
1086
1191
|
ruby: |
|
1087
1192
|
[{"abc"=>"ABC"},
|
@@ -1101,7 +1206,6 @@ expected*:
|
|
1101
1206
|
[{"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"}]
|
1102
1207
|
# {123=>1.23, 3.14=>314, "abc"=>"ABC"}
|
1103
1208
|
# {"abc"=>"ABC", 3.14=>314, 123=>1.23}
|
1104
|
-
|
1105
1209
|
##
|
1106
1210
|
---
|
1107
1211
|
name: mapkey1
|
@@ -1117,3 +1221,6 @@ expected*:
|
|
1117
1221
|
[{"key1"=>"A"}, {".key.2"=>"B"}, {"key3*"=>"C"}, {:key4=>"D"}]
|
1118
1222
|
# [{"key1"=>"A"}, {".key.2"=>"B"}, {"key3*"=>"C"}, {:key4=>"D"}, {"k:e:y:5"=>"E"}]
|
1119
1223
|
java: |
|
1224
|
+
[{"key1"=>"A"}, {".key.2"=>"B"}, {"key3*"=>"C"}, {:key4=>"D"}]
|
1225
|
+
# [{"key1"=>"A"}, {".key.2"=>"B"}, {"key3*"=>"C"}, {:key4=>"D"}, {"k:e:y:5"=>"E"}]
|
1226
|
+
##
|