Sha256: 6f219fdc60404280796e81f88e27599a71be5c36499431b3375c7f3a2e8c39f5
Contents?: true
Size: 1.65 KB
Versions: 1
Compression:
Stored size: 1.65 KB
Contents
require 'spec_helper' module ChefAPI describe Connection do shared_examples 'a proxy for' do |resource, klass| context "##{resource}" do it 'sets Thread.current to self' do subject.send(resource) expect(Thread.current['chefapi.connection']).to be(subject) end it "returns an instance of #{klass}" do # Fuck you Ruby 1.9.3 expected = klass.split('::').inject(ChefAPI) { |c, i| c.const_get(i) } expect(subject.send(resource)).to be(expected) end end end it_behaves_like 'a proxy for', :clients, 'Resource::Client' it_behaves_like 'a proxy for', :data_bags, 'Resource::DataBag' it_behaves_like 'a proxy for', :environments, 'Resource::Environment' it_behaves_like 'a proxy for', :nodes, 'Resource::Node' it_behaves_like 'a proxy for', :principals, 'Resource::Principal' it_behaves_like 'a proxy for', :roles, 'Resource::Role' it_behaves_like 'a proxy for', :users, 'Resource::User' context '#initialize' do context 'when options are given' do let(:endpoint) { 'http://endpoint.gov' } it 'sets the option' do instance = described_class.new(endpoint: endpoint) expect(instance.endpoint).to eq(endpoint) end it 'uses the default options' do instance = described_class.new expect(instance.endpoint).to eq(ChefAPI.endpoint) end end context 'when a block is given' do it 'yields self' do expect { |b| described_class.new(&b) }.to yield_with_args(described_class) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
chef-api-0.2.1 | spec/unit/resources/connection_spec.rb |