vmpooler/spec/unit/providers_spec.rb
kirby@puppetlabs.com 60b8715a80 Update providers_spec to match array contents
This commit updates providers_spec so the test ensures array content of the providers match. Without this change the provider_spec test will fail when comparing providers if the order is not exactly the same in each array.
2018-12-07 17:08:08 -08:00

51 lines
1.5 KiB
Ruby

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 match_array(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 match_array(p)
end
end