#!/usr/bin/perl -wT
use Test::More tests => 24;
BEGIN { use_ok( 'Net::DHCP::Packet' ); }
BEGIN { use_ok( 'Net::DHCP::Constants' ); }
use strict;
my $ip0 = "0.0.0.0";
my $pac0 = "\0\0\0\0";
my $ref_pac = pack("H*",
"0101060012345678000000000000000000000000000000000000000000000000".
"0000000000000000000000000000000000000000000000000000000000000000".
"0000000000000000000000000000000000000000000000000000000000000000".
"0000000000000000000000000000000000000000000000000000000000000000".
"0000000000000000000000000000000000000000000000000000000000000000".
"0000000000000000000000000000000000000000000000000000000000000000".
"0000000000000000000000000000000000000000000000000000000000000000".
"00000000000000000000000063825363ff000000000000000000000000000000".
"0000000000000000000000000000000000000000000000000000000000000000".
"000000000000000000000000"
);
my $pac = Net::DHCP::Packet->new();
is( $pac->comment(), undef, "new empty packet");
is( $pac->op(), BOOTREQUEST());
is( $pac->htype(), 1);
is( $pac->hlen(), 6);
is( $pac->hops(), 0);
is( $pac->xid(), 0x12345678);
is( $pac->secs(), 0);
is( $pac->ciaddr(), $ip0);
is( $pac->ciaddrRaw(), $pac0);
is( $pac->yiaddr(), $ip0);
is( $pac->yiaddrRaw(), $pac0);
is( $pac->siaddr(), $ip0);
is( $pac->siaddrRaw(), $pac0);
is( $pac->giaddr(), $ip0);
is( $pac->giaddrRaw(), $pac0);
is( $pac->chaddr(), "");
is( $pac->sname(), "");
is( $pac->file(), "");
is( $pac->padding(), "");
is( $pac->isDhcp(), 1);
ok( !defined($pac->getOptionRaw(DHO_DHCP_MESSAGE_TYPE())), "undefined message type");
#diag(unpack("H*", $pac->serialize()));
#diag("Packet lenght: ".length($pac->serialize()));
is( $pac->serialize(), $ref_pac, "compare to reference packet");