]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/openstacklib/spec/unit/provider/openstack/credentials_spec.rb
try with modules from master
[dsa-puppet.git] / 3rdparty / modules / openstacklib / spec / unit / provider / openstack / credentials_spec.rb
1 require 'puppet'
2 require 'spec_helper'
3 require 'puppet/provider/openstack'
4 require 'puppet/provider/openstack/credentials'
5
6
7 describe Puppet::Provider::Openstack::Credentials do
8
9   let(:creds) do
10     creds = Puppet::Provider::Openstack::CredentialsV2_0.new
11   end
12
13   describe "#set with valid value" do
14     it 'works with valid value' do
15       expect(creds.class.defined?('auth_url')).to be_truthy
16       creds.set('auth_url', 'http://localhost:5000/v2.0')
17       expect(creds.auth_url).to eq('http://localhost:5000/v2.0')
18     end
19   end
20
21   describe "#set with invalid value" do
22     it 'works with invalid value' do
23       expect(creds.class.defined?('foo')).to be_falsey
24       creds.set('foo', 'junk')
25       expect(creds.respond_to?(:foo)).to be_falsey
26       expect(creds.instance_variable_defined?(:@foo)).to be_falsey
27       expect { creds.foo }.to raise_error(NoMethodError, /undefined method/)
28     end
29   end
30
31   describe '#service_token_set?' do
32     context "with service credentials" do
33       it 'is successful' do
34         creds.token = 'token'
35         creds.url = 'url'
36         expect(creds.service_token_set?).to be_truthy
37         expect(creds.user_password_set?).to be_falsey
38       end
39
40       it 'fails' do
41         creds.token = 'token'
42         expect(creds.service_token_set?).to be_falsey
43         expect(creds.user_password_set?).to be_falsey
44       end
45     end
46   end
47
48   describe '#password_set?' do
49     context "with user credentials" do
50       it 'is successful' do
51         creds.auth_url = 'auth_url'
52         creds.password = 'password'
53         creds.project_name = 'project_name'
54         creds.username = 'username'
55         expect(creds.user_password_set?).to be_truthy
56         expect(creds.service_token_set?).to be_falsey
57       end
58
59       it 'fails' do
60         creds.auth_url = 'auth_url'
61         creds.password = 'password'
62         creds.project_name = 'project_name'
63         expect(creds.user_password_set?).to be_falsey
64         expect(creds.service_token_set?).to be_falsey
65       end
66     end
67   end
68
69   describe '#set?' do
70     context "without any credential" do
71       it 'fails' do
72         expect(creds.set?).to be_falsey
73       end
74     end
75   end
76
77   describe '#version' do
78     it 'is version 2' do
79       expect(creds.version).to eq('2.0')
80     end
81   end
82
83   describe '#unset' do
84     context "with all instance variables set" do
85       it 'resets all but the identity_api_version' do
86         creds.auth_url = 'auth_url'
87         creds.password = 'password'
88         creds.project_name = 'project_name'
89         creds.username = 'username'
90         creds.token = 'token'
91         creds.url = 'url'
92         creds.identity_api_version = 'identity_api_version'
93         creds.unset
94         expect(creds.auth_url).to eq('')
95         expect(creds.password).to eq('')
96         expect(creds.project_name).to eq('')
97         expect(creds.username).to eq('')
98         expect(creds.token).to eq('')
99         expect(creds.url).to eq('')
100         expect(creds.identity_api_version).to eq('identity_api_version')
101         newcreds = Puppet::Provider::Openstack::CredentialsV3.new
102         expect(newcreds.identity_api_version).to eq('3')
103       end
104     end
105   end
106
107   describe '#to_env' do
108     context "with an exhaustive data set" do
109       it 'successfully returns content' do
110         creds.auth_url = 'auth_url'
111         creds.password = 'password'
112         creds.project_name = 'project_name'
113         creds.username = 'username'
114         creds.token = 'token'
115         creds.url = 'url'
116         creds.identity_api_version = 'identity_api_version'
117         expect(creds.to_env).to eq({
118           'OS_USERNAME'             => 'username',
119           'OS_PASSWORD'             => 'password',
120           'OS_PROJECT_NAME'         => 'project_name',
121           'OS_AUTH_URL'             => 'auth_url',
122           'OS_TOKEN'                => 'token',
123           'OS_URL'                  => 'url',
124           'OS_IDENTITY_API_VERSION' => 'identity_api_version'
125         })
126       end
127     end
128   end
129
130   describe 'using v3' do
131     let(:creds) do
132       creds = Puppet::Provider::Openstack::CredentialsV3.new
133     end
134     describe 'with v3' do
135       it 'uses v3 identity api' do
136         creds.identity_api_version == '3'
137       end
138     end
139     describe '#password_set? with username and project_name' do
140       it 'is successful' do
141         creds.auth_url = 'auth_url'
142         creds.password = 'password'
143         creds.project_name = 'project_name'
144         creds.username = 'username'
145         expect(creds.user_password_set?).to be_truthy
146       end
147     end
148     describe '#password_set? with user_id and project_id' do
149       it 'is successful' do
150         creds.auth_url = 'auth_url'
151         creds.password = 'password'
152         creds.project_id = 'projid'
153         creds.user_id = 'userid'
154         expect(creds.user_password_set?).to be_truthy
155       end
156     end
157   end
158 end