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

use lib './include';
use Copy;

BEGIN { use_ok('Audio::TagLib::MPEG::File') };

my @methods = qw(new DESTROY ID3v2Tag ID3v1Tag APETag
                 setID3v2FrameFactory strip firstFrameOffset nextFrameOffset
                 previousFrameOffset lastFrameOffset name tag audioProperties save
                 readBlock writeBlock find rfind insert removeBlock readOnly isOpen
                 isValid seek clear tell length);
can_ok("Audio::TagLib::MPEG::File", @methods) 						or 
	diag("can_ok failed");

my $file = "sample/guitar.mp3";
my $i = Audio::TagLib::MPEG::File->new($file);
isa_ok($i, "Audio::TagLib::MPEG::File") 							or 
	diag("method new(file) failed");
isa_ok($i->tag(), "Audio::TagLib::Tag") 							or 
	diag("method tag() failed");
isa_ok($i->audioProperties(), "Audio::TagLib::MPEG::Properties") 	or 
	diag("method audioProperties() failed");
isa_ok($i->ID3v2Tag(1), "Audio::TagLib::ID3v2::Tag") 				or 
	diag("method ID3v2Tag(t) failed");
isa_ok($i->ID3v1Tag(1), "Audio::TagLib::ID3v1::Tag") 				or 
	diag("method ID3v1Tag(t) failed");
isa_ok($i->APETag(1), "Audio::TagLib::APE::Tag") 					or 
	diag("method APETag(t) failed");
ok($i->strip("APE")) 											    or 
	diag("method strip(tags) failed");
cmp_ok($i->firstFrameOffset(), "==", 104) 							or 
	diag("method firstFrameOffset() failed");
cmp_ok($i->nextFrameOffset(925), "==", 940) 						or 
	diag("method nextFrameOffset(p) failed");
cmp_ok($i->previousFrameOffset(27690), "==", 27585) 				or 
	diag("method previousFrameOffset(p) failed");
cmp_ok($i->lastFrameOffset(), "==", -1) 				    		or 
	diag("method lastFrameOffset() failed");
ok (Copy::Dup( $file))                                              or
    diag("method Copy::Dup failed");
my $nfile = Audio::TagLib::MPEG::File->new(Copy::DupName($file));
isa_ok($nfile, "Audio::TagLib::MPEG::File")                         or
    diag("method Audio::TagLib::MPEG::File::new failed");
ok($nfile->save())											        or 
	diag("method save() failed");
Copy::Unlink($file);;