mirror of
https://github.com/puppetlabs/vmpooler.git
synced 2026-01-26 01:58:41 -05:00
Adds a new mechanism to load providers from any gem or file path. (#263)
* Adds ability to load only providers used in config file
This commit is contained in:
parent
0a769b8901
commit
2daa5244b8
13 changed files with 316 additions and 15 deletions
51
spec/unit/providers_spec.rb
Normal file
51
spec/unit/providers_spec.rb
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
require 'spec_helper'
|
||||
require 'vmpooler/providers'
|
||||
|
||||
describe 'providers' do
|
||||
|
||||
let(:providers) do
|
||||
Vmpooler::Providers.new
|
||||
end
|
||||
|
||||
it '#correct class' do
|
||||
expect(providers).to be_a Vmpooler::Providers
|
||||
end
|
||||
|
||||
it '#load_all_providers' do
|
||||
p = [
|
||||
File.join(project_root_dir, 'lib', 'vmpooler', 'providers', 'base.rb'),
|
||||
File.join(project_root_dir, 'lib', 'vmpooler', 'providers', 'dummy.rb'),
|
||||
File.join(project_root_dir, 'lib', 'vmpooler', 'providers', 'vsphere.rb')
|
||||
]
|
||||
expect(Vmpooler::Providers.load_all_providers).to eq(p)
|
||||
end
|
||||
|
||||
it '#installed_providers' do
|
||||
expect(Vmpooler::Providers.installed_providers).to eq(['vmpooler'])
|
||||
end
|
||||
|
||||
it '#vmpooler_provider_gem_list' do
|
||||
expect(providers.vmpooler_provider_gem_list).to be_a Array
|
||||
expect(providers.vmpooler_provider_gem_list.first).to be_a Gem::Specification
|
||||
end
|
||||
|
||||
it '#load_by_name' do
|
||||
expect(Vmpooler::Providers.load_by_name('vsphere')).to eq([File.join(project_root_dir, 'lib', 'vmpooler', 'providers', 'vsphere.rb')])
|
||||
end
|
||||
|
||||
it '#load only vpshere' do
|
||||
expect(providers.load_from_gems('vsphere')).to eq([File.join(project_root_dir, 'lib', 'vmpooler', 'providers', 'vsphere.rb')])
|
||||
end
|
||||
|
||||
it '#load all providers from gems' do
|
||||
p = [
|
||||
File.join(project_root_dir, 'lib', 'vmpooler', 'providers', 'base.rb'),
|
||||
File.join(project_root_dir, 'lib', 'vmpooler', 'providers', 'dummy.rb'),
|
||||
File.join(project_root_dir, 'lib', 'vmpooler', 'providers', 'vsphere.rb')
|
||||
]
|
||||
expect(providers.load_from_gems).to eq(p)
|
||||
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue