Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
50 lines (42 sloc) 2.63 KB
require 'test_helper'
require 'net/dns/packet'
class PacketTest < Test::Unit::TestCase
def setup
@klass = Net::DNS::Packet
@domain = 'example.com'
end
def test_initialize
@record = @klass.new(@domain, Net::DNS::MX, Net::DNS::HS)
assert_instance_of @klass, @record
assert_instance_of Net::DNS::Header, @record.header
assert_instance_of Array, @record.question
assert_instance_of Net::DNS::Question, @record.question.first
assert_instance_of Array, @record.answer
assert_instance_of Array, @record.authority
assert_instance_of Array, @record.additional
end
def test_initialize_should_set_question
@question = @klass.new(@domain).question.first
assert_equal @domain, @question.qName
assert_equal Net::DNS::RR::Types.new(Net::DNS::A).to_s, @question.qType.to_s
assert_equal Net::DNS::RR::Classes.new(Net::DNS::IN).to_s, @question.qClass.to_s
@question = @klass.new(@domain, Net::DNS::MX, Net::DNS::HS).question.first
assert_equal @domain, @question.qName
assert_equal Net::DNS::RR::Types.new(Net::DNS::MX).to_s, @question.qType.to_s
assert_equal Net::DNS::RR::Classes.new(Net::DNS::HS).to_s, @question.qClass.to_s
end
def test_self_parse
packet = "\337M\201\200\000\001\000\003\000\004\000\004\006google\003com\000\000\001\000\001\300\f\000\001\000\001\000\000\001,\000\004@\351\273c\300\f\000\001\000\001\000\000\001,\000\004H\016\317c\300\f\000\001\000\001\000\000\001,\000\004@\351\247c\300\f\000\002\000\001\000\003\364\200\000\006\003ns1\300\f\300\f\000\002\000\001\000\003\364\200\000\006\003ns2\300\f\300\f\000\002\000\001\000\003\364\200\000\006\003ns3\300\f\300\f\000\002\000\001\000\003\364\200\000\006\003ns4\300\f\300X\000\001\000\001\000\003\307\273\000\004\330\357 \n\300j\000\001\000\001\000\003\307\273\000\004\330\357\"\n\300|\000\001\000\001\000\003\307\273\000\004\330\357$\n\300\216\000\001\000\001\000\003\307\273\000\004\330\357&\n"
@record = @klass.parse(packet)
assert_instance_of @klass, @record
assert_instance_of Net::DNS::Header, @record.header
assert_instance_of Array, @record.question
assert_instance_of Net::DNS::Question, @record.question.first
assert_instance_of Array, @record.answer
assert_instance_of Net::DNS::RR::A, @record.answer.first
assert_instance_of Array, @record.authority
assert_instance_of Net::DNS::RR::NS, @record.authority.first
assert_instance_of Array, @record.additional
assert_instance_of Net::DNS::RR::A, @record.additional.first
end
end