Sha256: 316af859c3eac05512e48a30943413c34760599df1647caf10fee2bebcb24a14

Contents?: true

Size: 1.5 KB

Versions: 5

Compression:

Stored size: 1.5 KB

Contents

require 'spec_helper'

describe A9n::Struct do
  subject {
    described_class.new({
        non_empty_dwarf: 'dwarf',
        nil_dwarf:   nil,
        false_dwarf: false,
        true_dwarf:  true,
        hash_dwarf:  { dwarf: 'hello' }
      })
  }

  describe '#keys' do
    subject { super().keys }
    it { should == [:non_empty_dwarf, :nil_dwarf, :false_dwarf, :true_dwarf, :hash_dwarf] }
  end

  it 'gets non-empty value' do
    expect(subject.non_empty_dwarf).to eq('dwarf')
  end

  it 'gets nil value' do
    expect(subject.nil_dwarf).to eq(nil)
  end

  it 'gets true value' do
    expect(subject.true_dwarf).to eq(true)
  end

  it 'gets false value' do
    expect(subject.false_dwarf).to eq(false)
  end

  it 'gets hash value' do
    expect(subject.hash_dwarf).to be_kind_of(Hash)
  end

  it 'raises exception when value not exists' do
    expect {
      subject.non_existing_dwarf
    }.to raise_error(A9n::NoSuchConfigurationVariable)
  end

  describe '#fetch' do
    it 'return non empty value' do
      expect(subject.fetch(:non_empty_dwarf)).to eq('dwarf')
    end

    it 'return false value' do
      expect(subject.fetch(:false_dwarf)).to eq(false)
    end

    it 'return nil value' do
      expect(subject.fetch(:nil_dwarf)).to eq(nil)
    end

    it 'return nil for non existing value' do
      expect(subject.fetch(:non_existing_dwarf)).to eq(nil)
    end

    it 'return default for non existing value' do
      expect(subject.fetch(:non_existing_dwarf, 'default')).to eq('default')
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
a9n-0.3.4 spec/unit/struct_spec.rb
a9n-0.3.3 spec/unit/struct_spec.rb
a9n-0.3.2 spec/unit/struct_spec.rb
a9n-0.3.1 spec/unit/struct_spec.rb
a9n-0.3.0 spec/unit/struct_spec.rb