Sha256: e00e6f61fdbb0363863e54c6eebaac691cb193cf726582498ed88288b2419a83

Contents?: true

Size: 1.81 KB

Versions: 28

Compression:

Stored size: 1.81 KB

Contents

require_relative '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

Version data entries

28 entries across 28 versions & 3 rubygems

Version Path
psych-2.0.17-java test/psych/test_tree_builder.rb
psych-2.0.17 test/psych/test_tree_builder.rb
psych-2.0.16-java test/psych/test_tree_builder.rb
psych-2.0.16 test/psych/test_tree_builder.rb
psych-2.0.15-java test/psych/test_tree_builder.rb
psych-2.0.15 test/psych/test_tree_builder.rb
psych-2.0.14-java test/psych/test_tree_builder.rb
psych-2.0.14 test/psych/test_tree_builder.rb
psych-shopifork-2.0.13 test/psych/test_tree_builder.rb
psych-2.0.14.pre1-java test/psych/test_tree_builder.rb
psych-2.0.13 test/psych/test_tree_builder.rb
psych-2.0.12 test/psych/test_tree_builder.rb
psych-2.0.11 test/psych/test_tree_builder.rb
psych-2.0.10 test/psych/test_tree_builder.rb
psych-2.0.9 test/psych/test_tree_builder.rb
psych-2.0.8 test/psych/test_tree_builder.rb
psych-2.0.7 test/psych/test_tree_builder.rb
psych-2.0.6 test/psych/test_tree_builder.rb
psych-shopifork-2.0.5 test/psych/test_tree_builder.rb
psych-2.0.5 test/psych/test_tree_builder.rb