class MarkdownExec::TestHashDelegator::TestHashDelegatorHandleBlockState

def setup

def setup
  @hd = HashDelegator.new
  @mock_block_state = mock('block_state')
end

def test_handle_back_or_continue_with_back

def test_handle_back_or_continue_with_back
  @mock_block_state.stubs(:state).returns(MenuState::BACK)
  @mock_block_state.stubs(:block).returns({ oname: 'sample_block' })
  @hd.handle_back_or_continue(@mock_block_state)
  assert_equal 'sample_block',
               @hd.instance_variable_get(:@delegate_object)[:block_name]
  assert @hd.instance_variable_get(:@menu_user_clicked_back_link)
end

def test_handle_back_or_continue_with_continue

def test_handle_back_or_continue_with_continue
  @mock_block_state.stubs(:state).returns(MenuState::CONTINUE)
  @mock_block_state.stubs(:block).returns({ oname: 'another_block' })
  @hd.handle_back_or_continue(@mock_block_state)
  assert_equal 'another_block',
               @hd.instance_variable_get(:@delegate_object)[:block_name]
  refute @hd.instance_variable_get(:@menu_user_clicked_back_link)
end

def test_handle_back_or_continue_with_other

def test_handle_back_or_continue_with_other
  @mock_block_state.stubs(:state).returns(nil) # MenuState::OTHER
  @mock_block_state.stubs(:block).returns({ oname: 'other_block' })
  @hd.handle_back_or_continue(@mock_block_state)
  assert_nil @hd.instance_variable_get(:@delegate_object)[:block_name]
  assert_nil @hd.instance_variable_get(:@menu_user_clicked_back_link)
end