class MarkdownExec::TestMDoc2

def setup

Mocking the @table object for testing
def setup
  @table = [
    OpenStruct.new(oname: '{wrap1}'),
    OpenStruct.new(oname: '{wrap2-before}'),
    OpenStruct.new(oname: '{wrap2}'),
    OpenStruct.new(oname: '{wrap2-after}'),
    OpenStruct.new(oname: '{wrap3-before}'),
    OpenStruct.new(oname: '{wrap3}'),
    OpenStruct.new(oname: '{wrap3-after}')
  ]
  @mdoc = MDoc.new(@table)
end

def test_collect_wrapped_blocks

def test_collect_wrapped_blocks
  # Test case 1: blocks with wraps
  OpenStruct.new(oname: 'block1')
  assert_equal(%w[{wrap1} a],
               @mdoc.collect_wrapped_blocks(
                 [OpenStruct.new(oname: 'a',
                                 wraps: ['{wrap1}'])]
               ).map(&:oname))
  assert_equal(%w[{wrap2-before} {wrap2} b {wrap2-after}],
               @mdoc.collect_wrapped_blocks(
                 [OpenStruct.new(oname: 'b',
                                 wraps: ['{wrap2}'])]
               ).map(&:oname))
  assert_equal(%w[{wrap2-before} {wrap2} {wrap3-before} {wrap3} c {wrap3-after} {wrap2-after}],
               @mdoc.collect_wrapped_blocks(
                 [OpenStruct.new(oname: 'c',
                                 wraps: %w[{wrap2} {wrap3}])]
               ).map(&:oname))
  # Test case 2: blocks with no wraps
  blocks = @mdoc.collect_wrapped_blocks([])
  assert_empty blocks
  # Test case 3: blocks with missing wraps
  assert_equal(
    %w[block4],
    @mdoc.collect_wrapped_blocks([OpenStruct.new(oname: 'block4',
                                                 wraps: ['wrap4'])]).map(&:oname)
  )
end