home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ruby164.zip / rbemx164.zip / ruby / share / doc / rdtool-0.6.10 / test / test-tree.rb < prev    next >
Text File  |  2001-04-26  |  2KB  |  88 lines

  1. require 'runit/testcase'
  2. require 'runit/cui/mytestrunner'
  3.  
  4. require 'rd/tree'
  5. require 'rd/element'
  6. require 'rd/rd-struct'
  7. require 'rd/loose-struct'
  8.  
  9. include RD
  10.  
  11. class TestTree < RUNIT::TestCase
  12.   def test_new_with_document_struct
  13.     tr = Tree.new_with_document_struct(DocumentStructure::RD, ["test/data"])
  14.     assert_equal(nil, tr.root)
  15.     assert_equal(["test/data"], tr.include_paths)
  16.   end
  17.  
  18.   def test_set_root
  19.     tr = Tree.new_with_document_struct(DocumentStructure::RD)
  20.     de = DocumentElement.new
  21.     tr.set_root(de)
  22.     assert_equal(de, tr.root)
  23.     assert_equal(tr, de.tree)    
  24.   end
  25.  
  26.   def test_each_element
  27.     tr = Tree.new_with_document_struct(DocumentStructure::RD)
  28.     de = DocumentElement.new
  29.     tr.root = de
  30.     exp = [de]
  31.     i = 0
  32.     tr.each_element do |b|
  33.       assert_equal(exp[i], b)
  34.     end
  35.     
  36.     tr_emp = Tree.new_with_document_struct(DocumentStructure::RD)
  37.     assert_equal(nil, tr_emp.each_element)
  38.   end
  39.  
  40.   def test_make_root
  41.     tr = Tree.new_with_document_struct(DocumentStructure::RD)
  42.     res = tr.make_root
  43.     assert(tr.root)
  44.     assert_equal(tr.root, res)
  45.     
  46.     tr2 = Tree.new_with_document_struct(DocumentStructure::RD)
  47.     res2 = tr2.make_root do
  48.       new TextBlock
  49.     end
  50.     assert(tr2.root)
  51.     assert_equal("<RD::DocumentElement>\n  <RD::TextBlock>", tr2.root.inspect)
  52.     assert_equal(tr2.root, res2)
  53.   end
  54.  
  55.   def test_check_valid
  56.     tr = Tree.new_with_document_struct(DocumentStructure::RD)
  57.     de = DocumentElement.new
  58.     tr.root = de
  59.     de.build do
  60.       new Headline, 1 do
  61.     new StringElement, "label"
  62.       end
  63.       new TextBlock do
  64.     new Emphasis do
  65.       new StringElement, "emphasis"
  66.     end
  67.       end
  68.     end
  69.     assert_equal(true, tr.check_valid)
  70.  
  71.     tr_fail = Tree.new_with_document_struct(DocumentStructure::RD)
  72.     de_fail = DocumentElement.new
  73.     tr_fail.root = de_fail
  74.     tb_fail = TextBlock.new
  75.     tb_fail.build(DocumentStructure::LOOSE) do
  76.       new Headline, 1
  77.     end
  78.     de_fail.add_child(tb_fail)
  79.     assert_exception(RuntimeError) do
  80.       tr_fail.check_valid
  81.     end
  82.   end
  83. end
  84.  
  85. if $0 == __FILE__
  86.   RUNIT::CUI::MyTestRunner.run(TestTree.suite)
  87. end
  88.