]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/keystone/spec/unit/provider/keystone_user_role/openstack_spec.rb
try with modules from master
[dsa-puppet.git] / 3rdparty / modules / keystone / spec / unit / provider / keystone_user_role / openstack_spec.rb
1 require 'puppet'
2 require 'spec_helper'
3 require 'puppet/provider/keystone_user_role/openstack'
4
5 provider_class = Puppet::Type.type(:keystone_user_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 updating a user\'s role' do
17     it_behaves_like 'authenticated with environment variables' do
18       let(:user_role_attrs) do
19         {
20           :name         => 'foo@foo',
21           :ensure       => 'present',
22           :roles        => ['foo', 'bar'],
23         }
24       end
25
26       let(:resource) do
27         Puppet::Type::Keystone_user_role.new(user_role_attrs)
28       end
29
30       let(:provider) do
31         provider_class.new(resource)
32       end
33
34       before(:each) do
35         provider.class.stubs(:openstack)
36                       .with('user', 'list', '--quiet', '--format', 'csv', ['foo', '--project', 'foo'])
37                       .returns('"ID","Name","Project","User"
38 "1cb05cfed7c24279be884ba4f6520262","foo","foo","foo"
39 ')
40       end
41
42       describe '#create' do
43         it 'adds all the roles to the user' do
44           provider.class.stubs(:openstack)
45                         .with('role', 'add', ['foo', '--project', 'foo', '--user', 'foo'])
46           provider.class.stubs(:openstack)
47                         .with('role', 'add', ['bar', '--project', 'foo', '--user', 'foo'])
48           provider.class.stubs(:openstack)
49                         .with('user role', 'list', '--quiet', '--format', 'csv', ['foo', '--project', 'foo'])
50                         .returns('"ID","Name","Project","User"
51 "1cb05ed7c24279be884ba4f6520262","foo","foo","foo"
52 "2cb05ed7c24279be884ba4f6520262","bar","foo","foo"
53 ')
54           provider.create
55           expect(provider.exists?).to be_truthy
56         end
57       end
58
59       describe '#destroy' do
60         it 'removes all the roles from a user' do
61           provider.class.stubs(:openstack)
62                         .with('user role', 'list', '--quiet', '--format', 'csv', ['foo', '--project', 'foo'])
63                         .returns('"ID","Name","Project","User"')
64           provider.class.stubs(:openstack)
65                         .with('role', 'remove', ['foo', '--project', 'foo', '--user', 'foo'])
66           provider.class.stubs(:openstack)
67                         .with('role', 'remove', ['bar', '--project', 'foo', '--user', 'foo'])
68           provider.destroy
69           expect(provider.exists?).to be_falsey
70         end
71
72       end
73
74       describe '#exists' do
75         subject(:response) do
76           provider.class.stubs(:openstack)
77                         .with('user role', 'list', '--quiet', '--format', 'csv', ['foo', '--project', 'foo'])
78                         .returns('"ID","Name","Project","User"
79 "1cb05ed7c24279be884ba4f6520262","foo","foo","foo"
80 ')
81           response = provider.exists?
82         end
83
84         it { is_expected.to be_truthy }
85
86       end
87     end
88   end
89 end