]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/keystone/spec/unit/provider/keystone_service/openstack_spec.rb
try with modules from master
[dsa-puppet.git] / 3rdparty / modules / keystone / spec / unit / provider / keystone_service / openstack_spec.rb
1 require 'puppet'
2 require 'spec_helper'
3 require 'puppet/provider/keystone_service/openstack'
4
5 provider_class = Puppet::Type.type(:keystone_service).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:35357/v2.0'
14   end
15
16   describe 'when managing a service' do
17
18     let(:service_attrs) do
19       {
20         :name         => 'foo',
21         :description  => 'foo',
22         :ensure       => 'present',
23         :type         => 'foo',
24       }
25     end
26
27     let(:resource) do
28       Puppet::Type::Keystone_service.new(service_attrs)
29     end
30
31     let(:provider) do
32       provider_class.new(resource)
33     end
34
35     it_behaves_like 'authenticated with environment variables' do
36       describe '#create' do
37         it 'creates a service' do
38           provider.class.stubs(:openstack)
39                         .with('service', 'list', '--quiet', '--format', 'csv', '--long')
40                         .returns('"ID","Name","Type","Description"
41 "1cb05cfed7c24279be884ba4f6520262","foo","foo","foo"
42 ')
43           provider.class.stubs(:openstack)
44                         .with('service', 'create', '--format', 'shell', ['--description', 'foo', '--type', 'foo', 'foo'])
45                         .returns('description="foo"
46 enabled="True"
47 id="8f0dd4c0abc44240998fbb3f5089ecbf"
48 name="foo"
49 type="foo"
50 ')
51           provider.create
52           expect(provider.exists?).to be_truthy
53         end
54       end
55
56       describe '#destroy' do
57         it 'destroys a service' do
58           provider.class.stubs(:openstack)
59                         .with('service', 'list', '--quiet', '--format', 'csv', '--long')
60                         .returns('"ID","Name","Type","Description"
61 "1cb05cfed7c24279be884ba4f6520262","foo","foo","foo"
62 ')
63           provider.class.stubs(:openstack)
64                         .with('service', 'delete', [])
65           provider.destroy
66           expect(provider.exists?).to be_falsey
67         end
68
69         context 'when service does not exist' do
70           subject(:response) do
71             provider.class.stubs(:openstack)
72                           .with('service', 'list', '--quiet', '--format', 'csv', '--long')
73                           .returns('"ID","Name","Type","Description"')
74             response = provider.exists?
75           end
76           it { is_expected.to be_falsey }
77         end
78       end
79
80       describe '#instances' do
81         it 'finds every service' do
82           provider.class.stubs(:openstack)
83                         .with('service', 'list', '--quiet', '--format', 'csv', '--long')
84                         .returns('"ID","Name","Type","Description"
85 "8f0dd4c0abc44240998fbb3f5089ecbf","foo","foo","foo"
86 ')
87           instances = Puppet::Type::Keystone_service::ProviderOpenstack.instances
88           expect(instances.count).to eq(1)
89         end
90       end
91     end
92   end
93 end