Sha256: 00ce55bfe247a1713ae350a9623fac2b7ea30becdbdd8193f54006bbcaef0914

Contents?: true

Size: 1001 Bytes

Versions: 1

Compression:

Stored size: 1001 Bytes

Contents

require_relative "spec_helper"

require_relative "../lib/prawn_cocktail/utils/recursive_closed_struct"

describe RecursiveClosedStruct do
  it "provides readers from a hash" do
    subject = RecursiveClosedStruct.new(key: "value")
    assert_equal "value", subject.key
  end

  it "raises when there's no such key" do
    subject = RecursiveClosedStruct.new(key: "value")
    assert_raises(NoMethodError) do
      subject.other_key
    end
  end

  it "recurses through hashes" do
    subject = RecursiveClosedStruct.new({
      one: { two: { three: "four" } }
    })
    assert_equal "four", subject.one.two.three
  end


  it "lets a user check if the key exists without throwing an error" do
    subject = RecursiveClosedStruct.new({
      real: true
    })

    assert subject.has_key?(:real)
  end

  it "lets a user check if the key does not exist without throwing an error" do
    subject = RecursiveClosedStruct.new({
      real: true
    })

    refute subject.has_key?(:imaginary)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
prawn_cocktail-0.7.1 spec/recursive_closed_struct_spec.rb