The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use Test::More tests => 16;

BEGIN { use_ok('Audio::TagLib::Ogg::PageHeader') };

my @methods = qw(new DESTROY isValid packetSizes setPacketSizes
firstPacketContinued setFirstPacketContinued lastPacketCompleted
setLastPacketCompleted firstPageOfStream setFirstPageOfStream
lastPageOfStream setLastPageOfStream absoluteGranularPosition
setAbsoluteGranularPosition streamSerialNumber setStreamSerialNumber
pageSequenceNumber setPageSequenceNumber size dataSize render);
can_ok("Audio::TagLib::Ogg::PageHeader", @methods) 					or 
	diag("can_ok failed");

my $i = Audio::TagLib::Ogg::PageHeader->new();
isa_ok($i, "Audio::TagLib::Ogg::PageHeader") 							or 
	diag("method new() failed");

ok(not $i->isValid()) 											or 
	diag("method isValid() failed");
$i->setPacketSizes(1,2,3);
is($i->packetSizes(), "3") 										or 
	diag("method setPacketSizes(LIST<int>) and packetSizes() failed");
cmp_ok(scalar($i->packetSizes()), "==", 3) 						or 
	diag("method setPacketSizes(LIST<int>) and packetSizes() failed");
$i->setFirstPacketContinued(1);
ok($i->firstPacketContinued()) 									or 
	diag("method setFirstPacketContinued(b) and ".
	"firstPacketContinued() failed");
$i->setLastPacketCompleted(1);
ok($i->lastPacketCompleted()) 									or 
	diag("method setLastPacketCompleted(b) and lastPacketCompleted()".
	"failed");
$i->setFirstPageOfStream(1);
ok($i->firstPageOfStream()) 									or 
	diag("method setFirstPageOfStream(b) and firstPageOfStream() ".
	"failed");
$i->setLastPageOfStream(1);
ok($i->lastPageOfStream()) 										or 
	diag("method setLastPageOfStream(b) and lastPageOfStream() ".
	"failed");
$i->setAbsoluteGranularPosition(0xffff);
cmp_ok($i->absoluteGranularPosition(), "==", 0xffff) 			or 
	diag("method setAbsoluteGranularPosition(p) and ".
	"absoluteGranularPosition() failed");
$i->setStreamSerialNumber(3);
cmp_ok($i->streamSerialNumber(), "==", 3) 						or 
	diag("method setStreamSerialNumber(n) and streamSerialNumber()".
	"failed");
$i->setPageSequenceNumber(2);
cmp_ok($i->pageSequenceNumber(), "==", 2) 						or 
	diag("method setPageSequenceNumber(n) and pageSequenceNumber()".
	"failed");
cmp_ok($i->size(), "==", 0) 									or 
	diag("method size() failed");
cmp_ok($i->dataSize(), "==", 0) 								or 
	diag("method dataSize() failed");
SKIP: {
skip "render() skipped", 1 if 1;
like($i->render(), qr(\d{9})) 									or 
	diag("method render() failed");
}