From b9b923ca942096ddb1062be2deb9e6de9a65f346 Mon Sep 17 00:00:00 2001 From: tenderlove Date: Sun, 28 Mar 2010 21:49:37 +0000 Subject: * ext/psych/*: importing Psych to trunk * test/psych/*: ditto * lib/psych/*: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27079 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/psych/test_tree_builder.rb | 79 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 test/psych/test_tree_builder.rb (limited to 'test/psych/test_tree_builder.rb') diff --git a/test/psych/test_tree_builder.rb b/test/psych/test_tree_builder.rb new file mode 100644 index 0000000000..f03adc56df --- /dev/null +++ b/test/psych/test_tree_builder.rb @@ -0,0 +1,79 @@ +require 'test/psych/helper' + +module Psych + class TestTreeBuilder < TestCase + def setup + super + @parser = Psych::Parser.new TreeBuilder.new + @parser.parse(<<-eoyml) +%YAML 1.1 +--- +- foo +- { + bar : &A !!str baz, + boo : *A +} +- *A + eoyml + @tree = @parser.handler.root + end + + def test_stream + assert_instance_of Nodes::Stream, @tree + end + + def test_documents + assert_equal 1, @tree.children.length + assert_instance_of Nodes::Document, @tree.children.first + doc = @tree.children.first + + assert_equal [1,1], doc.version + assert_equal [], doc.tag_directives + assert_equal false, doc.implicit + end + + def test_sequence + doc = @tree.children.first + assert_equal 1, doc.children.length + + seq = doc.children.first + assert_instance_of Nodes::Sequence, seq + assert_nil seq.anchor + assert_nil seq.tag + assert_equal true, seq.implicit + assert_equal Nodes::Sequence::BLOCK, seq.style + end + + def test_scalar + doc = @tree.children.first + seq = doc.children.first + + assert_equal 3, seq.children.length + scalar = seq.children.first + assert_instance_of Nodes::Scalar, scalar + assert_equal 'foo', scalar.value + assert_nil scalar.anchor + assert_nil scalar.tag + assert_equal true, scalar.plain + assert_equal false, scalar.quoted + assert_equal Nodes::Scalar::PLAIN, scalar.style + end + + def test_mapping + doc = @tree.children.first + seq = doc.children.first + map = seq.children[1] + + assert_instance_of Nodes::Mapping, map + end + + def test_alias + doc = @tree.children.first + seq = doc.children.first + assert_equal 3, seq.children.length + al = seq.children[2] + assert_instance_of Nodes::Alias, al + assert_equal 'A', al.anchor + end + end +end -- cgit v1.2.3