Sha256: b5daf631e62b3beeeeda9c0fdc429f0ed6d270165450eaf0e0114ba79be5da47
Contents?: true
Size: 1.97 KB
Versions: 9
Compression:
Stored size: 1.97 KB
Contents
# encoding: utf-8 require 'spec_helper' describe Filegen::Data do context '#instance_binding' do it 'let you variables' do source = double('DataSource') expect(source).to receive(:fetch).with('MY_NAME').and_return('Karl') data = Filegen::Data.new(source) # rubocop:disable Eval result = eval('lookup("MY_NAME")', data.instance_binding) # rubocop:enable Eval expect(result).to eq('Karl') end end context '#lookup' do it 'provides access to variables' do source = double('DataSource') expect(source).to receive(:fetch).with('MY_NAME').and_return('Karl') data = Filegen::Data.new(source) expect(data.lookup('MY_NAME')).to eq('Karl') end it 'supports multiple data sources: first has match' do source1 = double('DataSource1') expect(source1).to receive(:fetch).with('MY_NAME').and_return('Egon') source2 = double('DataSource2') expect(source2).not_to receive(:fetch) data = Filegen::Data.new([source1, source2]) expect(data.lookup('MY_NAME')).to eq('Egon') end it 'supports multiple data sources: last has match' do source1 = double('DataSource1') expect(source1).to receive(:fetch).with('MY_NAME').and_return(nil) source2 = double('DataSource2') expect(source2).to receive(:fetch).with('MY_NAME').and_return('Egon') data = Filegen::Data.new([source1, source2]) expect(data.lookup('MY_NAME')).to eq('Egon') end it 'returns "" if none matches' do source1 = double('DataSource1') expect(source1).to receive(:fetch).with('MY_NAME').and_return(nil) data = Filegen::Data.new(source1) expect(data.lookup('MY_NAME')).to eq('') end it 'let you return a default value' do source1 = double('DataSource1') expect(source1).to receive(:fetch).with('MY_NAME').and_return(nil) data = Filegen::Data.new(source1) expect(data.lookup('MY_NAME', 'abcde')).to eq('abcde') end end end
Version data entries
9 entries across 9 versions & 1 rubygems