puppet-nova/spec/unit/provider/nova_network/nova_spec.rb

65 lines
2.7 KiB
Ruby

# TODO(tobias-urdin): This is deprecated and should be removed in T release.
require 'puppet'
require 'puppet/provider/nova_network/nova'
require 'tempfile'
provider_class = Puppet::Type.type(:nova_network).provider(:nova)
describe provider_class do
let :net_attrs do
{
:network => '10.20.0.0/16',
:label => 'novanetwork',
:ensure => 'present',
}
end
let :resource do
Puppet::Type::Nova_network.new(net_attrs)
end
let :provider do
provider_class.new(resource)
end
shared_examples 'nova_network' do
describe '#exists?' do
it 'should check non-existing network' do
provider.expects(:auth_nova).with("network-list")
.returns('"+--------------------------------------+-------------+-------------+\n| ID | Label | Cidr |\n+--------------------------------------+-------------+-------------+\n| 703edc62-36ab-4c41-9d73-884b30e9acbd | novanetwork | 10.0.0.0/16 |\n+--------------------------------------+-------------+-------------+\n"
')
expect(provider.exists?).to be_falsey
end
it 'should check existing network' do
provider.expects(:auth_nova).with("network-list")
.returns('"+--------------------------------------+-------------+-------------+\n| ID | Label | Cidr |\n+--------------------------------------+-------------+-------------+\n| 703edc62-36ab-4c41-9d73-884b30e9acbd | novanetwork | 10.20.0.0/16 |\n+--------------------------------------+-------------+-------------+\n"
')
expect(provider.exists?).to be_truthy
end
end
describe '#create' do
it 'should create network' do
provider.expects(:auth_nova).with("network-create", ['novanetwork', '--fixed-range-v4', '10.20.0.0/16'] )
.returns('"+--------------------------------------+-------------+-------------+\n| ID | Label | Cidr |\n+--------------------------------------+-------------+-------------+\n| 703edc62-36ab-4c41-9d73-88sdfsdfsdfsd | nova-network | 10.20.0.0/16 |\n+--------------------------------------+-------------+-------------+\n"
')
provider.create
end
end
describe '#destroy' do
it 'should destroy network' do
resource[:ensure] = :absent
provider.expects(:auth_nova).with("network-delete", "10.20.0.0/16")
.returns('"+--------------------------------------+-------------+-------------+\n| ID | Label | Cidr |\n+--------------------------------------+-------------+-------------+\n
')
provider.destroy
end
end
end
it_behaves_like('nova_network')
end