]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/keystone/spec/unit/provider/keystone_role/openstack_spec.rb
add stackforge/keystone to 3rdparty
[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   describe 'when creating a role' do
10
11     let(:role_attrs) do
12       {
13         :name         => 'foo',
14         :ensure       => 'present',
15         :auth         => {
16           'username'    => 'test',
17           'password'    => 'abc123',
18           'tenant_name' => 'foo',
19           'auth_url'    => 'http://127.0.0.1:5000/v2.0',
20         }
21       }
22     end
23
24     let(:resource) do
25       Puppet::Type::Keystone_role.new(role_attrs)
26     end
27
28     let(:provider) do
29       provider_class.new(resource)
30     end
31
32     describe '#create' do
33       it 'creates a role' do
34         provider.class.stubs(:openstack)
35                       .with('role', 'list', '--quiet', '--format', 'csv', [['--os-username', 'test', '--os-password', 'abc123', '--os-tenant-name', 'foo', '--os-auth-url', 'http://127.0.0.1:5000/v2.0']])
36                       .returns('"ID","Name"
37 "1cb05cfed7c24279be884ba4f6520262","foo"
38 ')
39         provider.class.stubs(:openstack)
40                       .with('role', 'create', '--format', 'shell', [['foo', '--os-username', 'test', '--os-password', 'abc123', '--os-tenant-name', 'foo', '--os-auth-url', 'http://127.0.0.1:5000/v2.0']])
41                       .returns('name="foo"')
42         provider.create
43         expect(provider.exists?).to be_truthy
44       end
45     end
46
47     describe '#destroy' do
48       it 'destroys a role' do
49         provider.class.stubs(:openstack)
50                       .with('role', 'list', '--quiet', '--format', 'csv', [['--os-username', 'test', '--os-password', 'abc123', '--os-tenant-name', 'foo', '--os-auth-url', 'http://127.0.0.1:5000/v2.0']])
51                       .returns('"ID","Name"')
52         provider.class.stubs(:openstack)
53                       .with('role', 'delete', [['foo', '--os-username', 'test', '--os-password', 'abc123', '--os-tenant-name', 'foo', '--os-auth-url', 'http://127.0.0.1:5000/v2.0']])
54         provider.destroy
55         expect(provider.exists?).to be_falsey
56       end
57
58     end
59
60     describe '#exists' do
61       context 'when role exists' do
62
63         subject(:response) do
64           provider.class.stubs(:openstack)
65                         .with('role', 'list', '--quiet', '--format', 'csv', [['--os-username', 'test', '--os-password', 'abc123', '--os-tenant-name', 'foo', '--os-auth-url', 'http://127.0.0.1:5000/v2.0']])
66                         .returns('"ID","Name"
67 "1cb05cfed7c24279be884ba4f6520262","foo"
68 ')
69           response = provider.exists?
70         end
71
72         it { is_expected.to be_truthy }
73       end
74
75       context 'when role does not exist' do
76
77         subject(:response) do
78           provider.class.stubs(:openstack)
79                         .with('role', 'list', '--quiet', '--format', 'csv', [['--os-username', 'test', '--os-password', 'abc123', '--os-tenant-name', 'foo', '--os-auth-url', 'http://127.0.0.1:5000/v2.0']])
80                       .returns('"ID","Name"')
81           response = provider.exists?
82         end
83
84         it { is_expected.to be_falsey }
85       end
86     end
87
88     describe '#instances' do
89       it 'finds every role' do
90         provider.class.stubs(:openstack)
91                       .with('role', 'list', '--quiet', '--format', 'csv', [['--os-username', 'test', '--os-password', 'abc123', '--os-tenant-name', 'foo', '--os-auth-url', 'http://127.0.0.1:5000/v2.0']])
92                       .returns('"ID","Name"
93 "1cb05cfed7c24279be884ba4f6520262","foo"
94 ')
95         instances = provider.instances
96         expect(instances.count).to eq(1)
97       end
98     end
99
100   end
101 end