File: debug_inspect_spec.rb

package info (click to toggle)
ruby-recursive-open-struct 1.1.3-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 188 kB
  • sloc: ruby: 912; makefile: 6
file content (70 lines) | stat: -rw-r--r-- 2,318 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
require_relative '../spec_helper'
require 'recursive_open_struct'

describe RecursiveOpenStruct do
  describe "#debug_inspect" do
    before(:each) do
      h1 = { :a => 'a'}
      h2 = { :a => 'b', :h1 => h1 }
      h1[:h2] = h2
      @ros = RecursiveOpenStruct.new(h2)
    end

    it "should have a simple way of display" do
      @output = <<-QUOTE
a = "b"
h1.
  a = "a"
  h2.
    a = "b"
    h1.
      a = "a"
      h2.
        a = "b"
        h1.
          a = "a"
          h2.
            a = "b"
            h1.
              a = "a"
              h2.
                a = "b"
                h1.
                  a = "a"
                  h2.
                    a = "b"
                    h1.
                      a = "a"
                      h2.
                        (recursion limit reached)
      QUOTE
      @io = StringIO.new
      @ros.debug_inspect(@io)
      expect(@io.string).to match /^a = "b"$/
      expect(@io.string).to match /^h1\.$/
      expect(@io.string).to match /^  a = "a"$/
      expect(@io.string).to match /^  h2\.$/
      expect(@io.string).to match /^    a = "b"$/
      expect(@io.string).to match /^    h1\.$/
      expect(@io.string).to match /^      a = "a"$/
      expect(@io.string).to match /^      h2\.$/
      expect(@io.string).to match /^        a = "b"$/
      expect(@io.string).to match /^        h1\.$/
      expect(@io.string).to match /^          a = "a"$/
      expect(@io.string).to match /^          h2\.$/
      expect(@io.string).to match /^            a = "b"$/
      expect(@io.string).to match /^            h1\.$/
      expect(@io.string).to match /^              a = "a"$/
      expect(@io.string).to match /^              h2\.$/
      expect(@io.string).to match /^                a = "b"$/
      expect(@io.string).to match /^                h1\.$/
      expect(@io.string).to match /^                  a = "a"$/
      expect(@io.string).to match /^                  h2\.$/
      expect(@io.string).to match /^                    a = "b"$/
      expect(@io.string).to match /^                    h1\.$/
      expect(@io.string).to match /^                      a = "a"$/
      expect(@io.string).to match /^                      h2\.$/
      expect(@io.string).to match /^                        \(recursion limit reached\)$/
    end
  end
end