Project

General

Profile

Download (8 KB) Statistics
| Branch: | Tag: | Revision:
require 'test_helper'
require 'dns/dns'
require 'dns_nsupdate/dns_nsupdate_plugin'
require 'dns_nsupdate/dns_nsupdate_main'
require 'dns_nsupdate/dns_nsupdate_gss_main'

class DnsNsupdateTest < Test::Unit::TestCase
def test_create_ptr_record
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate_connect).returns(true)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate).with('update add 33.33.168.192.in-addr.arpa. 100 PTR some.host').returns(true)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate_disconnect).returns(true)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate_close)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:ptr_record_conflicts).with('some.host', '33.33.168.192.in-addr.arpa').returns(-1)

assert_nil Proxy::Dns::Nsupdate::Record.new(nil, 100, nil).create_ptr_record('some.host', '33.33.168.192.in-addr.arpa')
end

def test_overwrite_ptr_record
Proxy::Dns::Nsupdate::Record.any_instance.expects(:ptr_record_conflicts).with('some.host', '33.33.168.192.in-addr.arpa').returns(0)
assert_nil Proxy::Dns::Nsupdate::Record.new(nil, 100, nil).create_ptr_record('some.host', '33.33.168.192.in-addr.arpa')
end

def test_create_duplicate_ptr_record_fails
Proxy::Dns::Nsupdate::Record.any_instance.expects(:ptr_record_conflicts).with('some.host', '33.33.168.192.in-addr.arpa').returns(1)

assert_raise Proxy::Dns::Collision do
Proxy::Dns::Nsupdate::Record.new(nil, 100, nil).create_ptr_record('some.host', '33.33.168.192.in-addr.arpa')
end
end

def test_create_address_record
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate_connect).returns(true)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate).with('update add some.host. 100 A 192.168.33.33').returns(true)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate_disconnect).returns(true)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate_close)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:a_record_conflicts).with('some.host', '192.168.33.33').returns(-1)

assert_nil Proxy::Dns::Nsupdate::Record.new(nil, 100, nil).create_a_record('some.host', '192.168.33.33')
end

def test_overwrite_address_record
Proxy::Dns::Nsupdate::Record.any_instance.expects(:a_record_conflicts).with('some.host', '192.168.33.33').returns(0)

assert_nil Proxy::Dns::Nsupdate::Record.new(nil, 100, nil).create_a_record('some.host', '192.168.33.33')
end

def test_create_duplicate_address_record_fails
Proxy::Dns::Nsupdate::Record.any_instance.expects(:a_record_conflicts).with('some.host', '192.168.33.33').returns(1)

assert_raise Proxy::Dns::Collision do
Proxy::Dns::Nsupdate::Record.new(nil, 100, nil).create_a_record('some.host', '192.168.33.33')
end
end

def test_remove_cname_record_fails
assert_raise Proxy::Dns::Error do
Proxy::Dns::Nsupdate::Record.new(nil, 100, nil).remove_cname_record('some.host')
end
end

def test_create_aaaa_record
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate_connect).returns(true)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate).with('update add some.host. 100 AAAA 2001:db8::1').returns(true)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate_disconnect).returns(true)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate_close)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:aaaa_record_conflicts).with('some.host', '2001:db8::1').returns(-1)

assert_nil Proxy::Dns::Nsupdate::Record.new(nil, 100, nil).create_aaaa_record('some.host', '2001:db8::1')
end

def test_overwrite_aaaa_record
Proxy::Dns::Nsupdate::Record.any_instance.expects(:aaaa_record_conflicts).with('some.host', '2001:db8::1').returns(0)

assert_nil Proxy::Dns::Nsupdate::Record.new(nil, 100, nil).create_aaaa_record('some.host', '2001:db8::1')
end

def test_create_duplicate_aaaa_record_fails
Proxy::Dns::Nsupdate::Record.any_instance.expects(:aaaa_record_conflicts).with('some.host', '2001:db8::1').returns(1)

assert_raise Proxy::Dns::Collision do
Proxy::Dns::Nsupdate::Record.new(nil, 100, nil).create_aaaa_record('some.host', '2001:db8::1')
end
end

def test_remove_ptr_v4_record
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate_connect).returns(true)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate).with('update delete 33.33.168.192.in-addr.arpa PTR').returns(true)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate_disconnect).returns(true)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate_close)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:get_name!).with('33.33.168.192.in-addr.arpa').returns('some.host')

assert_nil Proxy::Dns::Nsupdate::Record.new('a_server', 999, nil).remove_ptr_record('33.33.168.192.in-addr.arpa')
end

def test_remove_ptr_v6_record
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate_connect).returns(true)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate).with('update delete 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa PTR').returns(true)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate_disconnect).returns(true)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate_close)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:get_name!).with('1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa').returns('some.host')

assert_nil Proxy::Dns::Nsupdate::Record.new('a_server', 999, nil).remove_ptr_record('1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa')
end

def test_remove_address_record
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate_connect).returns(true)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate).with('update delete some.host A').returns(true)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate_disconnect).returns(true)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate_close)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:get_ipv4_address!).with('some.host').returns('192.168.33.33')

assert_nil Proxy::Dns::Nsupdate::Record.new('a_server', 999, nil).remove_a_record('some.host')
end

def test_remove_address_record_raises_exception_if_host_does_not_exist
Proxy::Dns::Nsupdate::Record.any_instance.expects(:get_ipv4_address!).with('not_existing.example.com').raises(Proxy::Dns::NotFound)
assert_raise Proxy::Dns::NotFound do
Proxy::Dns::Nsupdate::Record.new('a_server', 999, nil).remove_a_record('not_existing.example.com')
end
end

def test_remove_aaaa_record
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate_connect).returns(true)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate).with('update delete some.host AAAA').returns(true)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate_disconnect).returns(true)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:nsupdate_close)
Proxy::Dns::Nsupdate::Record.any_instance.expects(:get_ipv6_address!).with('some.host').returns('2001:db8::1')

assert_nil Proxy::Dns::Nsupdate::Record.new('a_server', 999, nil).remove_aaaa_record('some.host')
end

def test_remove_aaaa_record_raises_exception_if_host_does_not_exist
Proxy::Dns::Nsupdate::Record.any_instance.expects(:get_ipv6_address!).with('not_existing.example.com').raises(Proxy::Dns::NotFound)
assert_raise Proxy::Dns::NotFound do
Proxy::Dns::Nsupdate::Record.new('a_server', 999, nil).remove_aaaa_record('not_existing.example.com')
end
end

def test_remove_ptr_record_raises_exception_if_host_does_not_exist
Proxy::Dns::Nsupdate::Record.any_instance.expects(:get_name!).with('33.33.168.192.in-addr.arpa').raises(Proxy::Dns::NotFound)
assert_raise Proxy::Dns::NotFound do
Proxy::Dns::Nsupdate::Record.new('a_server', 999, nil).remove_ptr_record('33.33.168.192.in-addr.arpa')
end
end

def test_uses_dns_key_if_defined
assert_equal "-k /path/to/key ", Proxy::Dns::Nsupdate::Record.new('a_server', 999, '/path/to/key').nsupdate_args
end
end
(2-2/2)