Sha256: e2b3f6da8b40391fc425955085e0551ca2c7aca27ef77755fc2f1665ce58ed7c

Contents?: true

Size: 1.94 KB

Versions: 7

Compression:

Stored size: 1.94 KB

Contents

# encoding: utf-8
require 'spec_helper'

describe DataSourceBuilder do
  context '#sources' do
    it 'returns data sources' do
      yaml_builder = double('yaml_builder')
      env_builder = double('env_builder')

      params = double('params')
      allow(params).to receive(:data_sources).and_return([:yaml, :env])
      allow(params).to receive(:data_source_builders).and_return(yaml: yaml_builder, env: env_builder)
      allow(params).to receive(:yaml_file).and_return('')

      expect { DataSourceBuilder.new(params) }.not_to raise_error
    end

    it 'raises an exception on invalid input' do
      params = double('params')
      allow(params).to receive(:data_sources).and_return([:yaml, 'garbage'])
      allow(params).to receive(:data_source_builders).and_return({})
      allow(params).to receive(:yaml_file).and_return('')

      expect { DataSourceBuilder.new(params) }.to raise_error Exceptions::DataSourcesAreInvalid
    end

    it 'supports order of data sources: env first' do
      yaml_builder = double('yaml_builder')
      env_builder = double('env_builder')

      params = double('params')
      allow(params).to receive(:data_sources).and_return([:env, :yaml])
      allow(params).to receive(:data_source_builders).and_return(yaml: yaml_builder, env: env_builder)
      allow(params).to receive(:yaml_file).and_return('')

      builder = DataSourceBuilder.new(params)
      expect(builder.sources.first).to be(env_builder)
    end

    it 'supports order of data sources: yaml first' do
      yaml_builder = double('yaml_builder')
      env_builder = double('env_builder')

      params = double('params')
      allow(params).to receive(:data_sources).and_return([:yaml, :env])
      allow(params).to receive(:data_source_builders).and_return(yaml: yaml_builder, env: env_builder)
      allow(params).to receive(:yaml_file).and_return('')

      builder = DataSourceBuilder.new(params)
      expect(builder.sources.first).to be yaml_builder
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
filegen-0.4.3 spec/data_source_builder_spec.rb
filegen-0.4.1 spec/data_source_builder_spec.rb
filegen-0.4.0 spec/data_source_builder_spec.rb
filegen-0.3.1 spec/data_source_builder_spec.rb
filegen-0.3.0 spec/data_source_builder_spec.rb
filegen-0.2.3 spec/data_source_builder_spec.rb
filegen-0.2.2 spec/data_source_builder_spec.rb