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-desclist-item.rb < prev    next >
Text File  |  2001-05-02  |  6KB  |  226 lines

  1. require 'runit/testcase'
  2. require 'runit/cui/mytestrunner'
  3.  
  4. require 'rd/desclist'
  5. require 'rd/rd-struct'
  6.  
  7. include RD
  8.  
  9. class TestDescListItem < RUNIT::TestCase
  10.   def setup
  11.     @flat = DescListItem.new
  12.     @t1 = DescListItem::Term.new
  13.     @flat.set_term_under_document_struct(@t1, DocumentStructure::RD)
  14.     @c1 = TextBlock.new
  15.     @c2 = ItemList.new
  16.     @flat.add_children_under_document_struct([@c1, @c2],
  17.                          DocumentStructure::RD)
  18.  
  19.     @nest = DescListItem.new
  20.     @t2 = DescListItem::Term.new
  21.     @t21 = StringElement.new ""
  22.     @t2.add_child_under_document_struct(@t21, DocumentStructure::RD)
  23.     @nest.set_term_under_document_struct(@t2, DocumentStructure::RD)
  24.     @d1 = TextBlock.new
  25.     @d11 = StringElement.new ""
  26.     @d1.add_child_under_document_struct(@d11, DocumentStructure::RD)
  27.     @nest.add_children_under_document_struct([@d1],
  28.                          DocumentStructure::RD)
  29.   end
  30.  
  31.   def test_set_term_under_docment_struct
  32.     t = DescListItem::Term.new
  33.     i = DescListItem.new
  34.     i.set_term_under_document_struct(t, DocumentStructure::RD)
  35.     assert_equal(t, i.term)
  36.     assert_equal(i, t.parent)
  37.     
  38.     assert_exception(ArgumentError) do
  39.       t = StringElement.new ""
  40.       DescListItem.new.set_term_under_document_struct(t, DocumentStructure::RD)
  41.     end
  42.   end
  43.  
  44.   def test_assign_term
  45.     desclist = DescListItem.new
  46.     term = DescListItem::Term.new
  47.     desclist.assign_term(term)
  48.     assert_equal(term, desclist.term)
  49.     assert_equal(desclist, term.parent)
  50.   end
  51.  
  52.   def test_set_term_without_document_strcut
  53.     desclist = DescListItem.new
  54.     term = DescListItem::Term.new
  55.     desclist.set_term_without_document_struct(term)
  56.     assert_equal(term, desclist.term)
  57.     assert_equal(desclist, term.parent)
  58.  
  59.     not_term = StringElement.new "not term"
  60.     desclist.set_term_without_document_struct(not_term)
  61.     assert_equal(not_term, desclist.term)
  62.     assert_equal(desclist, not_term.parent)
  63.   end
  64.  
  65.   def test_each_block_in_description
  66.     exp = [@c1, @c2]
  67.     i = 0
  68.     @flat.each_block_in_description do |b|
  69.       assert_equal(exp[i], b)
  70.       i += 1
  71.     end
  72.  
  73.     exp = [@d1]
  74.     i = 0
  75.     @nest.each_block_in_description do |b|
  76.       assert_equal(exp[i], b)
  77.       i += 1
  78.     end
  79.   end
  80.  
  81.   def test_each_element
  82.     exp = [@flat, @t1, @c1, @c2]
  83.     i = 0
  84.     @flat.each_element do |b|
  85.       assert_equal(exp[i], b)
  86.       i += 1
  87.     end
  88.  
  89.     exp = [@nest, @t2, @t21, @d1, @d11]
  90.     i = 0
  91.     @nest.each_element do |b|
  92.       assert_equal(exp[i], b)
  93.       i += 1
  94.     end
  95.   end
  96.  
  97.   def test_make_term
  98.     tr = Tree.new_with_document_struct(DocumentStructure::RD)
  99.     de = DocumentElement.new
  100.     tr.root = de
  101.     di, dt = nil
  102.     de.build do
  103.       new DescList do
  104.     di = new DescListItem do
  105.       dt = make_term do
  106.         new StringElement, "string"
  107.       end
  108.     end
  109.       end
  110.     end
  111.     assert_equal("<RD::DescListItem>\n  <RD::DescListItem::Term>\n" +
  112.          "    <RD::StringElement>", di.inspect)
  113.     assert_equal(di.term, dt)
  114.  
  115.     tr = Tree.new_with_document_struct(DocumentStructure::RD)
  116.     de = DocumentElement.new
  117.     tr.root = de
  118.     di, dt = nil
  119.     de.build do
  120.       new DescList do
  121.     di = new DescListItem do
  122.       dt = make_term
  123.     end
  124.       end
  125.     end
  126.     assert_equal(di.term, dt)    
  127.   end
  128.  
  129.   def test_inspect
  130.     di = DescListItem.new
  131.     dt = DescListItem::Term.new
  132.     se = StringElement.new "string"
  133.     tb = TextBlock.new
  134.     di.set_term_under_document_struct(dt, DocumentStructure::RD)
  135.     di.add_child_under_document_struct(tb, DocumentStructure::RD)
  136.     dt.add_child_under_document_struct(se, DocumentStructure::RD)
  137.     assert_equal("<RD::DescListItem>\n  <RD::DescListItem::Term>\n" +
  138.          "    <RD::StringElement>\n  <RD::TextBlock>", di.inspect)
  139.     
  140.     di_no_desc = DescListItem.new
  141.     dt_no_desc = DescListItem::Term.new
  142.     di_no_desc.set_term_under_document_struct(dt_no_desc,
  143.                           DocumentStructure::RD)
  144.     assert_equal("<RD::DescListItem>\n  <RD::DescListItem::Term>",
  145.          di_no_desc.inspect)
  146.  
  147.     di_no_term = DescListItem.new
  148.     di_no_term.add_child_under_document_struct(TextBlock.new,
  149.                            DocumentStructure::RD)
  150.     assert_equal("<RD::DescListItem>\n  <RD::TextBlock>",
  151.          di_no_term.inspect)
  152.     assert_equal("<RD::DescListItem>", DescListItem.new.inspect)
  153.   end
  154. end
  155.  
  156. class TestDescListItemTerm < RUNIT::TestCase
  157.   def setup
  158.     @flat = DescListItem::Term.new
  159.     @c1 = StringElement.new "aaa"
  160.     @c2 = Emphasis.new
  161.     @c3 = StringElement.new " bbb"
  162.     @flat.add_children_under_document_struct([@c1, @c2, @c3],
  163.                          DocumentStructure::RD)
  164.  
  165.     @nest = DescListItem::Term.new
  166.     @d1 = StringElement.new "aaa"
  167.     @d2 = Emphasis.new
  168.     @d21 = StringElement.new " bbb"
  169.     @d2.add_child_under_document_struct(@d21, DocumentStructure::RD)
  170.     @nest.add_children_under_document_struct([@d1, @d2],
  171.                          DocumentStructure::RD)
  172.     @empty = DescListItem::Term.new
  173.   end
  174.   
  175.   def test_each_child
  176.     exp = [@c1, @c2, @c3]
  177.     i = 0
  178.     @flat.each_child do |b|
  179.       assert_equal(exp[i], b)
  180.       i += 1
  181.     end
  182.  
  183.     exp = [@d1, @d2]
  184.     i = 0
  185.     @nest.each_child do |b|
  186.       assert_equal(exp[i], b)
  187.       i += 1
  188.     end
  189.   end
  190.  
  191.   def test_each_element
  192.     exp = [@flat, @c1, @c2, @c3]
  193.     i = 0
  194.     @flat.each_element do |b|
  195.       assert_equal(exp[i], b)
  196.       i += 1
  197.     end
  198.  
  199.     exp = [@nest, @d1, @d2, @d21]
  200.     i = 0
  201.     @nest.each_element do |b|
  202.       assert_equal(exp[i], b)
  203.       i += 1
  204.     end
  205.  
  206.     exp = [@empty]
  207.     i = 0
  208.     @empty.each_element do |b|
  209.       assert_equal(exp[i], b)
  210.       i += 1
  211.     end
  212.   end
  213.  
  214.   def test_to_label
  215.     assert_equal("aaa bbb", @flat.to_label)
  216.     assert_equal("aaabbb", @nest.to_label)
  217.     assert_equal("", @empty.to_label)
  218.   end
  219. end
  220.  
  221. if $0 == __FILE__
  222.   suite = TestDescListItem.suite
  223.   suite.add_test(TestDescListItemTerm.suite)
  224.   RUNIT::CUI::MyTestRunner.run(suite)
  225. end
  226.