Sha256: 2479aedc2ef64a9efbad60e267d1dcad9e0b4c7d14659545601ed9b592f05178

Contents?: true

Size: 1015 Bytes

Versions: 90

Compression:

Stored size: 1015 Bytes

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/settings_provider'

RSpec.describe ::EacRubyUtils::SettingsProvider do
  class MyStubSettingsProvided
    include ::EacRubyUtils::SettingsProvider

    KEY_A = 'constant_a'
    KEY_D = 'constant_d'

    def key_a
      'method_a'
    end

    def key_b
      'method_b'
    end

    def settings
      { 'key_b' => 'setting_b', key_c: 'setting_c' }
    end
  end

  let(:stub) { MyStubSettingsProvided.new }

  describe '#setting_value' do
    {
      ['key_a'] => 'method_a',
      [:key_b] => 'setting_b',
      ['key_b', { order: %w[constant method settings_object] }] => 'method_b',
      ['key_c'] => 'setting_c',
      ['key_d'] => 'constant_d'
    }.each do |args, expected_value|
      it { expect(stub.setting_value(*args)).to eq(expected_value) }
    end

    it do
      expect { stub.setting_value('key_e') }.to raise_error(::StandardError)
    end

    it do
      expect(stub.setting_value('key_e', required: false)).to eq(nil)
    end
  end
end

Version data entries

90 entries across 90 versions & 2 rubygems

Version Path
avm-tools-0.94.2 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
avm-tools-0.94.1 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
ehbrs-tools-0.20.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
avm-tools-0.94.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
avm-tools-0.93.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
avm-tools-0.92.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
avm-tools-0.91.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
avm-tools-0.90.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
avm-tools-0.89.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
avm-tools-0.88.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
avm-tools-0.87.1 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
ehbrs-tools-0.19.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
ehbrs-tools-0.18.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
avm-tools-0.87.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
ehbrs-tools-0.17.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
avm-tools-0.86.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
avm-tools-0.85.1 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
avm-tools-0.85.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
ehbrs-tools-0.16.5 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb
avm-tools-0.84.0 vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb