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
|