Project

General

Profile

Download (4.21 KB) Statistics
| Branch: | Tag: | Revision:
require 'test_helper'
require 'dns_common/dns_common'

class DnsRecordTest < Test::Unit::TestCase
def test_dns_find_with_ip_parameter
Resolv::DNS.any_instance.expects(:getname).with('2.0.13.127').returns('not_existing.example.com')
assert 'not_existing.example.com', Proxy::Dns::Record.new.dns_find('127.13.0.2')
end

def test_dns_find_with_fqdn_parameter
Resolv::DNS.any_instance.expects(:getaddress).with('some.host').returns('127.13.0.2')
assert '127.13.0.2', Proxy::Dns::Record.new.dns_find('some.host')
end

def test_dns_find_key_not_found
Resolv::DNS.any_instance.expects(:getaddress).with('another.host').raises(Resolv::ResolvError.new('DNS result has no information'))
assert !Proxy::Dns::Record.new.dns_find('another.host')
end

def test_ptr_to_ip_ipv4
assert_equal('192.168.33.30', Proxy::Dns::Record.new.ptr_to_ip('30.33.168.192.in-addr.arpa'))
end

def test_ptr_to_ip_ipv6
assert_equal('2001:0db8:deef:0000:0000:0000:0000:0001', Proxy::Dns::Record.new.ptr_to_ip('1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.f.e.e.d.8.b.d.0.1.0.0.2.ip6.arpa'))
end

def test_ptr_to_ip_without_record_exception
assert_raise Proxy::Dns::Error do
Proxy::Dns::Record.new.ptr_to_ip('host.example.com')
end
end

def test_a_record_conflicts_no_conflict
Resolv::DNS.any_instance.expects(:getaddresses).with('some.host').returns([])
assert_equal -1, Proxy::Dns::Record.new.a_record_conflicts('some.host', '192.168.33.33')
end

def test_a_record_conflicts_no_conflict_with_ipv6
Resolv::DNS.any_instance.expects(:getaddresses).with('some.host').returns(['2001:DB8:DEEF::1'])
assert_equal -1, Proxy::Dns::Record.new.a_record_conflicts('some.host', '192.168.33.33')
end

def test_a_record_conflicts_has_conflict
Resolv::DNS.any_instance.expects(:getaddresses).with('some.host').returns(['192.168.33.33', '2001:DB8:DEEF::1'])
assert_equal 1, Proxy::Dns::Record.new.a_record_conflicts('some.host', '192.168.11.11')
end

def test_a_record_conflicts_but_nothing_todo
Resolv::DNS.any_instance.expects(:getaddresses).with('some.host').returns(['192.168.33.33', '2001:DB8:DEEF::1'])
assert_equal 0, Proxy::Dns::Record.new.a_record_conflicts('some.host', '192.168.33.33')
end

def test_aaaa_record_conflicts_no_conflict
Resolv::DNS.any_instance.expects(:getaddresses).with('some.host').returns([])
assert_equal -1, Proxy::Dns::Record.new.aaaa_record_conflicts('some.host', '2001:DB8:DEEF::1')
end

def test_aaaa_record_conflicts_no_conflict_with_ipv4
Resolv::DNS.any_instance.expects(:getaddresses).with('some.host').returns(['192.168.33.33'])
assert_equal -1, Proxy::Dns::Record.new.aaaa_record_conflicts('some.host', '2001:DB8:DEEF::1')
end

def test_aaaa_record_conflicts_has_conflict
Resolv::DNS.any_instance.expects(:getaddresses).with('some.host').returns(['192.168.33.33', '2001:DB8:DEEF::1'])
assert_equal 1, Proxy::Dns::Record.new.aaaa_record_conflicts('some.host', '2001:DB8:ABCD::1')
end

def test_aaaa_record_conflicts_but_nothing_todo
Resolv::DNS.any_instance.expects(:getaddresses).with('some.host').returns(['192.168.33.33', '2001:DB8:DEEF::1'])
assert_equal 0, Proxy::Dns::Record.new.aaaa_record_conflicts('some.host', '2001:DB8:DEEF::1')
end

def test_ptr_record_conflicts_no_conflict
Resolv::DNS.any_instance.expects(:getnames).with('192.168.33.33').returns([])
assert_equal -1, Proxy::Dns::Record.new.ptr_record_conflicts('some.host', '192.168.33.33')
end

def test_ptr_record_conflicts_has_conflict
Resolv::DNS.any_instance.expects(:getnames).with('2001:db8:deef::1').returns(['some.host'])
assert_equal 1, Proxy::Dns::Record.new.ptr_record_conflicts('another.host', '2001:db8:deef::1')
end

def test_ptr_record_conflicts_but_nothing_todo
Resolv::DNS.any_instance.expects(:getnames).with('192.168.33.33').returns(['some.host'])
assert_equal 0, Proxy::Dns::Record.new.ptr_record_conflicts('some.host', '192.168.33.33')
end

def test_validate_ip
assert_equal '192.168.33.33', Proxy::Dns::Record.new.to_ipaddress('192.168.33.33').to_s
assert_equal '2001:db8:deef::1', Proxy::Dns::Record.new.to_ipaddress('2001:db8:deef::1').to_s
assert_equal false, Proxy::Dns::Record.new.to_ipaddress('some.host')
end
end
    (1-1/1)