161 lines
3.8 KiB
Ruby
161 lines
3.8 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe Puppet::Type.type(:midonet_network).provider(:midonet_api_caller) do
|
|
|
|
let(:provider) { described_class.new(resource) }
|
|
|
|
let(:resource) { Puppet::Type.type(:midonet_network).new(
|
|
{
|
|
:ensure => :present,
|
|
:netname => 'testnet',
|
|
:midonet_api_url => 'http://controller:8080',
|
|
:username => 'admin',
|
|
:password => 'admin',
|
|
:tenant_name => 'admin',
|
|
:shared => true,
|
|
:external => true
|
|
}
|
|
)}
|
|
|
|
describe 'network happy path' do
|
|
# - Tenant Existing
|
|
# - Network not previously existing
|
|
|
|
let(:tenants) {
|
|
[
|
|
{
|
|
"name" => "admin",
|
|
"id" => "bd69f96a-005b-4d58-9f6c-b8dd9fbb6339",
|
|
}
|
|
]
|
|
}
|
|
|
|
let(:networks) {
|
|
[
|
|
{
|
|
"name" => "testnet",
|
|
"id" => "by82a88d-005b-4d58-9f6c-aaaaaaaa1111",
|
|
"tenant_id" => "admin",
|
|
"shared" => "true",
|
|
"external" => "true"
|
|
}
|
|
]
|
|
}
|
|
|
|
|
|
before :each do
|
|
allow(provider).to receive(:call_get_tenant).and_return(tenants)
|
|
allow(provider).to receive(:call_get_network).and_return(networks)
|
|
allow(provider).to receive(:call_delete_network)
|
|
allow(provider).to receive(:call_create_network)
|
|
allow(provider).to receive(:call_get_token).and_return('thisisafaketoken')
|
|
end
|
|
|
|
it 'registers the network successfully' do
|
|
# Expectations over 'create' call
|
|
expect(provider).to receive(:call_get_tenant).and_return(tenants)
|
|
expect(provider).to receive(:call_get_network).and_return([])
|
|
expect(provider).to receive(:call_create_network).with({'name' => 'testnet', 'tenant_id' => 'bd69f96a-005b-4d58-9f6c-b8dd9fbb6339', 'shared' => true, 'external' => true})
|
|
provider.create
|
|
end
|
|
|
|
it 'unregisters the network successfully' do
|
|
# Expectations over 'create' call
|
|
expect(provider).to receive(:call_get_tenant).and_return(tenants)
|
|
expect(provider).to receive(:call_get_network).and_return(networks)
|
|
expect(provider).to receive(:call_delete_network).and_return([])
|
|
provider.destroy
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
##
|
|
|
|
describe 'try to create a network for an unexisting tenant' do
|
|
# - Tenant Existing
|
|
# - Network not previously existing
|
|
|
|
let(:tenants) {
|
|
[
|
|
{
|
|
"name" => "admin",
|
|
"id" => "bd69f96a-005b-4d58-9f6c-b8dd9fbb6339",
|
|
}
|
|
]
|
|
}
|
|
|
|
let(:networks) {
|
|
[
|
|
{
|
|
"name" => "testnet",
|
|
"id" => "by82a88d-005b-4d58-9f6c-aaaaaaaa1111",
|
|
"tenant_id" => "admin",
|
|
"shared" => "true",
|
|
"external" => "true"
|
|
}
|
|
]
|
|
}
|
|
|
|
|
|
|
|
|
|
it 'should raise an exception' do
|
|
# Expectations over 'create' call
|
|
allow(provider).to receive(:call_get_tenant).and_return([])
|
|
allow(provider).to receive(:call_get_token).and_return('thisisafaketoken')
|
|
expect {
|
|
provider.create
|
|
}.to raise_error(RuntimeError)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
##
|
|
|
|
describe 'try to delete a network that does not exist' do
|
|
# - Tenant Existing
|
|
# - Network not previously existing
|
|
|
|
let(:tenants) {
|
|
[
|
|
{
|
|
"name" => "admin",
|
|
"id" => "bd69f96a-005b-4d58-9f6c-b8dd9fbb6339",
|
|
}
|
|
]
|
|
}
|
|
|
|
let(:networks) {
|
|
[
|
|
{
|
|
"name" => "testnet",
|
|
"id" => "by82a88d-005b-4d58-9f6c-aaaaaaaa1111",
|
|
"tenant_id" => "admin",
|
|
"shared" => "true",
|
|
"external" => "true"
|
|
}
|
|
]
|
|
}
|
|
|
|
|
|
|
|
|
|
it 'should not fail' do
|
|
# Expectations over 'create' call
|
|
allow(provider).to receive(:call_get_tenant).and_return(tenants)
|
|
allow(provider).to receive(:call_get_network).and_return([])
|
|
allow(provider).to receive(:call_get_token).and_return('thisisafaketoken')
|
|
|
|
expect(provider).not_to receive(:call_delete_network)
|
|
provider.destroy
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
end
|