Sha256: 1527b65d751ce53ddd4751618a2a9ee3380cd4086ab9892651ad88fd51c8d785

Contents?: true

Size: 1.94 KB

Versions: 4

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::InvalidDataSources
    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

4 entries across 4 versions & 1 rubygems

Version Path
filegen-0.2.1 spec/data_source_builder_spec.rb
filegen-0.2.0 spec/data_source_builder_spec.rb
filegen-0.1.2 spec/data_source_builder_spec.rb
filegen-0.1.1 spec/data_source_builder_spec.rb