]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/keystone/spec/unit/provider/keystone_role/openstack_spec.rb
try with modules from master
[dsa-puppet.git] / 3rdparty / modules / keystone / spec / unit / provider / keystone_role / openstack_spec.rb
1 require 'puppet'
2 require 'spec_helper'
3 require 'puppet/provider/keystone_role/openstack'
4
5 provider_class = Puppet::Type.type(:keystone_role).provider(:openstack)
6
7 describe provider_class do
8
9   shared_examples 'authenticated with environment variables' do
10     ENV['OS_USERNAME']     = 'test'
11     ENV['OS_PASSWORD']     = 'abc123'
12     ENV['OS_PROJECT_NAME'] = 'test'
13     ENV['OS_AUTH_URL']     = 'http://127.0.0.1:5000'
14   end
15
16   describe 'when creating a role' do
17     it_behaves_like 'authenticated with environment variables' do
18       let(:role_attrs) do
19         {
20           :name         => 'foo',
21           :ensure       => 'present',
22         }
23       end
24
25       let(:resource) do
26         Puppet::Type::Keystone_role.new(role_attrs)
27       end
28
29       let(:provider) do
30         provider_class.new(resource)
31       end
32
33       describe '#create' do
34         it 'creates a role' do
35           provider.class.stubs(:openstack)
36                         .with('role', 'list', '--quiet', '--format', 'csv', [])
37                         .returns('"ID","Name"
38 "1cb05cfed7c24279be884ba4f6520262","foo"
39 ')
40           provider.class.stubs(:openstack)
41                         .with('role', 'create', '--format', 'shell', 'foo')
42                         .returns('name="foo"')
43           provider.create
44           expect(provider.exists?).to be_truthy
45         end
46       end
47
48       describe '#destroy' do
49         it 'destroys a role' do
50           provider.class.stubs(:openstack)
51                         .with('role', 'list', '--quiet', '--format', 'csv', [])
52                         .returns('"ID","Name"')
53           provider.class.stubs(:openstack)
54                         .with('role', 'delete', [])
55           provider.destroy
56           expect(provider.exists?).to be_falsey
57         end
58
59       end
60
61       describe '#exists' do
62         context 'when role does not exist' do
63           subject(:response) do
64             provider.class.stubs(:openstack)
65                           .with('role', 'list', '--quiet', '--format', 'csv', [])
66                         .returns('"ID","Name"')
67             response = provider.exists?
68           end
69           it { is_expected.to be_falsey }
70         end
71       end
72
73       describe '#instances' do
74         it 'finds every role' do
75           provider.class.stubs(:openstack)
76                         .with('role', 'list', '--quiet', '--format', 'csv', [])
77                         .returns('"ID","Name"
78 "1cb05cfed7c24279be884ba4f6520262","foo"
79 ')
80           instances = Puppet::Type::Keystone_role::ProviderOpenstack.instances
81           expect(instances.count).to eq(1)
82         end
83       end
84     end
85   end
86 end