mirror of
https://github.com/puppetlabs/vmfloaty.git
synced 2026-01-26 13:28:42 -05:00
Integrate nonstandard pooler service into vmfloaty
This commit is contained in:
parent
e78bcc6216
commit
ca5b0f5e8b
12 changed files with 1190 additions and 482 deletions
79
spec/vmfloaty/service_spec.rb
Normal file
79
spec/vmfloaty/service_spec.rb
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
require_relative '../../lib/vmfloaty/service'
|
||||
|
||||
describe Service do
|
||||
|
||||
describe '#initialize' do
|
||||
it 'store configuration options' do
|
||||
options = MockOptions.new({})
|
||||
config = {'url' => 'http://example.url'}
|
||||
service = Service.new(options, config)
|
||||
expect(service.config).to include config
|
||||
end
|
||||
end
|
||||
|
||||
describe '#get_new_token' do
|
||||
it 'prompts the user for their password and retrieves a token' do
|
||||
config = { 'user' => 'first.last', 'url' => 'http://default.url' }
|
||||
service = Service.new(MockOptions.new, config)
|
||||
allow(STDOUT).to receive(:puts).with('Enter your pooler service password:')
|
||||
allow(Commander::UI).to(receive(:password)
|
||||
.with('Enter your pooler service password:', '*')
|
||||
.and_return('hunter2'))
|
||||
allow(Auth).to(receive(:get_token)
|
||||
.with(nil, config['url'], config['user'], 'hunter2')
|
||||
.and_return('token-value'))
|
||||
expect(service.get_new_token(nil)).to eql 'token-value'
|
||||
end
|
||||
|
||||
it 'prompts the user for their username and password if the username is unknown' do
|
||||
config = { 'url' => 'http://default.url' }
|
||||
service = Service.new(MockOptions.new({}), config)
|
||||
allow(STDOUT).to receive(:puts).with 'Enter your pooler service username:'
|
||||
allow(STDOUT).to receive(:puts).with "\n"
|
||||
allow(STDIN).to receive(:gets).and_return('first.last')
|
||||
allow(Commander::UI).to(receive(:password)
|
||||
.with('Enter your pooler service password:', '*')
|
||||
.and_return('hunter2'))
|
||||
allow(Auth).to(receive(:get_token)
|
||||
.with(nil, config['url'], 'first.last', 'hunter2')
|
||||
.and_return('token-value'))
|
||||
expect(service.get_new_token(nil)).to eql 'token-value'
|
||||
end
|
||||
end
|
||||
|
||||
describe '#delete_token' do
|
||||
it 'deletes a token' do
|
||||
service = Service.new(MockOptions.new,{'user' => 'first.last', 'url' => 'http://default.url'})
|
||||
allow(Commander::UI).to(receive(:password)
|
||||
.with('Enter your pooler service password:', '*')
|
||||
.and_return('hunter2'))
|
||||
allow(Auth).to(receive(:delete_token)
|
||||
.with(nil, 'http://default.url', 'first.last', 'hunter2', 'token-value')
|
||||
.and_return('ok' => true))
|
||||
expect(service.delete_token(nil, 'token-value')).to eql({'ok' => true})
|
||||
end
|
||||
end
|
||||
|
||||
describe '#token_status' do
|
||||
it 'reports the status of a token' do
|
||||
config = {
|
||||
'user' => 'first.last',
|
||||
'url' => 'http://default.url'
|
||||
}
|
||||
options = MockOptions.new('token' => 'token-value')
|
||||
service = Service.new(options, config)
|
||||
status = {
|
||||
'ok' => true,
|
||||
'user' => config['user'],
|
||||
'created' => '2017-09-22 02:04:18 +0000',
|
||||
'last_accessed' => '2017-09-22 02:04:28 +0000',
|
||||
'reserved_hosts' => []
|
||||
}
|
||||
allow(Auth).to(receive(:token_status)
|
||||
.with(nil, config['url'], 'token-value')
|
||||
.and_return(status))
|
||||
expect(service.token_status(nil, 'token-value')).to eql(status)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue