Project

General

Profile

Download (1.96 KB) Statistics
| Branch: | Tag: | Revision:
require 'test_helper'
require 'ostruct'
require 'dhcp_libvirt/libvirt_dhcp_network'

class LibvirtDHCPNetworkTest < Test::Unit::TestCase
def setup
@connection = mock()
@network = mock()
@connection.stubs(:lookup_network_by_name).returns(@network)
::Libvirt.stubs(:open).returns(@connection)
@subject = ::Proxy::DHCP::Libvirt::LibvirtDHCPNetwork.new
@subject.stubs(:find_network).returns(@network)
@network.stubs(:xml_desc).returns('')
@network.stubs(:dhcp_leases).returns([])
@flags = ::Libvirt::Network::NETWORK_UPDATE_AFFECT_LIVE | ::Libvirt::Network::NETWORK_UPDATE_AFFECT_CONFIG
end

def test_dump_xml
a_xml = '<xml></xml>'
@network.expects(:xml_desc).returns(a_xml)
assert_equal a_xml, @subject.dump_xml
end

def test_dhcp_leases
leases = [:a, :b]
@network.expects(:dhcp_leases).returns(leases)
assert_equal leases, @subject.dhcp_leases
end

def test_add_dhcp_record
record = OpenStruct.new(
"name" => "test.example.com",
"ip" => "192.168.122.10",
"mac" => "00:11:bb:cc:dd:ee")
xml = "<host mac=\"#{record.mac}\" ip=\"#{record.ip}\" name=\"#{record.name}\"/>"
@network.expects(:update).with(::Libvirt::Network::UPDATE_COMMAND_ADD_LAST, ::Libvirt::Network::NETWORK_SECTION_IP_DHCP_HOST, -1, xml, @flags).returns(true)
assert_equal true, @subject.add_dhcp_record(record)
end

def test_del_dhcp_record
record = OpenStruct.new(
"name" => "test.example.com",
"ip" => "192.168.122.10",
"mac" => "00:11:bb:cc:dd:ee")
#record = Proxy::DHCP::Reservation.new(:name => "test.example.com", :ip => "192.168.122.10", :mac => "00:11:bb:cc:dd:ee", :subnet => subnet)
xml = "<host mac=\"#{record.mac}\" ip=\"#{record.ip}\" name=\"#{record.name}\"/>"
@network.expects(:update).with(::Libvirt::Network::UPDATE_COMMAND_DELETE, ::Libvirt::Network::NETWORK_SECTION_IP_DHCP_HOST, -1, xml, @flags).returns(true)
assert_equal true, @subject.del_dhcp_record(record)
end
end
(3-3/3)