Sha256: 9791f0adb3f46e1b547638d74cdc2e679c7784d9ea5624889ca85a41ad2026f7

Contents?: true

Size: 1.72 KB

Versions: 27

Compression:

Stored size: 1.72 KB

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/struct'

RSpec.describe ::EacRubyUtils::Struct do
  let(:instance) { described_class.new(a: 1, b: '') }

  describe '#[]' do
    it { expect(instance[:a]).to eq(1) }
    it { expect(instance['a']).to eq(1) }
    it { expect(instance[:a?]).to eq(true) }
    it { expect(instance['a?']).to eq(true) }
    it { expect(instance[:b]).to eq('') }
    it { expect(instance['b']).to eq('') }
    it { expect(instance[:b?]).to eq(false) }
    it { expect(instance['b?']).to eq(false) }
    it { expect(instance[:c]).to eq(nil) }
    it { expect(instance['c']).to eq(nil) }
    it { expect(instance[:c?]).to eq(false) }
    it { expect(instance['c?']).to eq(false) }
  end

  describe '#fetch' do
    it { expect(instance.fetch(:a)).to eq(1) }
    it { expect(instance.fetch('a')).to eq(1) }
    it { expect(instance.fetch(:a?)).to eq(true) }
    it { expect(instance.fetch('a?')).to eq(true) }
    it { expect(instance.fetch(:b)).to eq('') }
    it { expect(instance.fetch('b')).to eq('') }
    it { expect(instance.fetch(:b?)).to eq(false) }
    it { expect(instance.fetch('b?')).to eq(false) }
    it { expect { instance.fetch(:c) }.to raise_error(::KeyError) }
    it { expect { instance.fetch('c') }.to raise_error(::KeyError) }
    it { expect { instance.fetch(:c?) }.to raise_error(::KeyError) }
    it { expect { instance.fetch('c?') }.to raise_error(::KeyError) }
  end

  describe '#property_method' do
    it { expect(instance.a).to eq(1) }
    it { expect(instance.a?).to eq(true) }
    it { expect(instance.b).to eq('') }
    it { expect(instance.b?).to eq(false) }
    it { expect { instance.c }.to raise_error(::NoMethodError) }
    it { expect { instance.c? }.to raise_error(::NoMethodError) }
  end
end

Version data entries

27 entries across 27 versions & 2 rubygems

Version Path
avm-tools-0.80.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/struct_spec.rb
avm-tools-0.79.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/struct_spec.rb
avm-tools-0.78.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/struct_spec.rb
ehbrs-tools-0.16.2 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/struct_spec.rb
avm-tools-0.77.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/struct_spec.rb
ehbrs-tools-0.16.1 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/struct_spec.rb
avm-tools-0.76.1 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/struct_spec.rb
ehbrs-tools-0.16.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/struct_spec.rb
avm-tools-0.76.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/struct_spec.rb
avm-tools-0.75.1 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/struct_spec.rb
avm-tools-0.75.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/struct_spec.rb
avm-tools-0.74.1 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/struct_spec.rb
avm-tools-0.74.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/struct_spec.rb
avm-tools-0.73.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/struct_spec.rb
avm-tools-0.72.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/struct_spec.rb
avm-tools-0.71.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/struct_spec.rb
avm-tools-0.70.2 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/struct_spec.rb
ehbrs-tools-0.15.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/struct_spec.rb
ehbrs-tools-0.14.1 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/struct_spec.rb
avm-tools-0.70.1 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/struct_spec.rb