Project

General

Profile

Download (1.58 KB) Statistics
| Branch: | Tag: | Revision:
require 'test_helper'
require 'dhcp_common/subnet'
require 'dhcp_common/record/reservation'
require 'dhcp_isc/configuration_file'
require 'tempfile'

class IscConfigurationFileTest < Test::Unit::TestCase
def setup
@parser = Object.new
@config_file = Tempfile.new('test_config_file')
@config = ::Proxy::DHCP::ISC::ConfigurationFile.new(@config_file.path, @parser)
end

def test_read_config_file_respects_includes
whole_config = @config.read(StringIO.new("# Test that the ISC DHCP config file parser includes files\ninclude \"test/fixtures/dhcp/dhcp_subnets.conf\";"))
assert whole_config.include?("subnet 192.168.122.0 netmask 255.255.255.0")
assert whole_config.include?("subnet 192.168.124.0 netmask 255.255.255.0")
assert whole_config.include?("host test.example.com")
end

def test_read_config_file_should_raise_error_if_included_file_isn_not_readable
assert_raises(RuntimeError) { @config.read(StringIO.new("include \"non_existent_config\";")) }
end

def test_load_subnets
subnet_to_return = ::Proxy::DHCP::Subnet.new('192.168.42.0', '255.255.255.0')
@parser.expects(:parse_config_for_subnets).returns([subnet_to_return])

assert_equal [subnet_to_return], @config.subnets
end

def test_hosts_and_leases_should_use_parser
record_to_return = Proxy::DHCP::Reservation.new(
'a_test', '192.168.42.1', '00:01:02:03:04:05',
::Proxy::DHCP::Subnet.new('192.168.42.0', '255.255.255.0'))
@parser.expects(:parse_config_and_leases_for_records).returns([record_to_return])

assert_equal [record_to_return], @config.hosts_and_leases
end
end
(1-1/9)