vs_bridge: add unit tests for ovs provider
Change-Id: Id601e8f4b89f1306d3f71d9154b076207b210bb4
This commit is contained in:
parent
379d4e8c8c
commit
b15545331c
129
spec/unit/provider/vs_bridge/ovs_spec.rb
Normal file
129
spec/unit/provider/vs_bridge/ovs_spec.rb
Normal file
@ -0,0 +1,129 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe Puppet::Type.type(:vs_bridge).provider(:ovs) do
|
||||
|
||||
let(:resource_attrs) do
|
||||
{
|
||||
:name => 'testbr'
|
||||
}
|
||||
end
|
||||
|
||||
let(:resource) do
|
||||
Puppet::Type::Vs_bridge.new(resource_attrs)
|
||||
end
|
||||
|
||||
let(:provider) do
|
||||
described_class.new(resource)
|
||||
end
|
||||
|
||||
describe '#exists?' do
|
||||
context 'if exists' do
|
||||
it 'returns true' do
|
||||
expect(described_class).to receive(:vsctl).with(
|
||||
'br-exists', 'testbr')
|
||||
expect(provider.exists?).to be_truthy
|
||||
end
|
||||
end
|
||||
|
||||
context 'if not exists' do
|
||||
it 'returns false' do
|
||||
expect(described_class).to receive(:vsctl).with(
|
||||
'br-exists', 'testbr').and_raise(Puppet::ExecutionFailure, 'Error')
|
||||
expect(provider.exists?).to be_falsey
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#create' do
|
||||
context 'with defaults' do
|
||||
it 'creates a bridge' do
|
||||
expect(described_class).to receive(:vsctl).with(
|
||||
'add-br', 'testbr')
|
||||
expect(described_class).to receive(:ip).with(
|
||||
'link', 'set', 'dev', 'testbr', 'up')
|
||||
provider.create
|
||||
end
|
||||
end
|
||||
|
||||
context 'with parameters' do
|
||||
before :each do
|
||||
resource_attrs.merge!(
|
||||
:external_ids => 'k=v',
|
||||
:mac_table_size => 60000,
|
||||
)
|
||||
end
|
||||
it 'creates a bridge' do
|
||||
expect(described_class).to receive(:vsctl).with(
|
||||
'add-br', 'testbr')
|
||||
expect(described_class).to receive(:ip).with(
|
||||
'link', 'set', 'dev', 'testbr', 'up')
|
||||
|
||||
expect(described_class).to receive(:vsctl).with(
|
||||
'br-get-external-id', 'testbr'
|
||||
).and_return('')
|
||||
expect(described_class).to receive(:vsctl).with(
|
||||
'br-set-external-id', 'testbr', 'k', 'v'
|
||||
)
|
||||
|
||||
expect(described_class).to receive(:vsctl).with(
|
||||
'set', 'Bridge', 'testbr', 'other-config:mac-table-size=60000'
|
||||
)
|
||||
|
||||
provider.create
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#destroy' do
|
||||
it 'removes the bridge' do
|
||||
expect(described_class).to receive(:ip).with(
|
||||
'link', 'set', 'dev', 'testbr', 'down')
|
||||
expect(described_class).to receive(:vsctl).with(
|
||||
'del-br', 'testbr')
|
||||
provider.destroy
|
||||
end
|
||||
end
|
||||
|
||||
describe '#external_ids' do
|
||||
it 'returns external_ids' do
|
||||
expect(described_class).to receive(:vsctl).with(
|
||||
'br-get-external-id', 'testbr'
|
||||
).and_return(
|
||||
'k=v'
|
||||
)
|
||||
expect(provider.external_ids).to eq('k=v')
|
||||
end
|
||||
end
|
||||
|
||||
describe '#external_ids=' do
|
||||
it 'configures external ids' do
|
||||
expect(described_class).to receive(:vsctl).with(
|
||||
'br-get-external-id', 'testbr'
|
||||
).and_return('')
|
||||
expect(described_class).to receive(:vsctl).with(
|
||||
'br-set-external-id', 'testbr', 'k', 'v'
|
||||
)
|
||||
provider.external_ids = 'k=v'
|
||||
end
|
||||
end
|
||||
|
||||
describe '#mac_table_size' do
|
||||
it 'returns mac table size' do
|
||||
expect(described_class).to receive(:vsctl).with(
|
||||
'get', 'Bridge', 'testbr', 'other-config'
|
||||
).and_return(
|
||||
'{disable-in-band="true", mac-table-size="50000"}'
|
||||
)
|
||||
expect(provider.mac_table_size).to eq(50000)
|
||||
end
|
||||
end
|
||||
|
||||
describe '#mac_table_size=' do
|
||||
it 'sets mac table size' do
|
||||
expect(described_class).to receive(:vsctl).with(
|
||||
'set', 'Bridge', 'testbr', 'other-config:mac-table-size=60000'
|
||||
)
|
||||
provider.mac_table_size = 60000
|
||||
end
|
||||
end
|
||||
end
|
Loading…
x
Reference in New Issue
Block a user