The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl
use strict; use warnings;
use Data::Dumper;

use Test::More tests => 9;
use FindBin qw($Bin);

BEGIN {
  use_ok( 'Perl::Tags' );
}

# a naive, yet exuberant tagger
my $naive_tagger = Perl::Tags::Naive->new( 
    max_level=>1,
    exts     =>1,
);
ok (defined $naive_tagger, 'created an exuberant tagger' );
isa_ok ($naive_tagger, 'Perl::Tags::Naive' );
isa_ok ($naive_tagger, 'Perl::Tags' );

my $result = 
    $naive_tagger->process(
        files => [ "$Bin/Test.pm" ],
        refresh=> 1
    );
ok ($result, 'processed successfully' ) or diag "RESULT $result";

like ($naive_tagger, qr{Test\t\S+[\\/]Test.pm\t/package Test;/;"\tp\tline:3\tclass:Test}       , 'package line');
like ($naive_tagger, qr{bar\t\S+[\\/]Test.pm\t/my \(\$foo, \$bar\);/;"\tv\tline:8\tfile:\tclass:Test} , 'variable 1');
like ($naive_tagger, qr{foo\t\S+[\\/]Test.pm\t/my \(\$foo, \$bar\);/;"\tv\tline:8\tfile:\tclass:Test} , 'variable 2');
like ($naive_tagger, qr{wibble\t\S+[\\/]Test.pm\t/sub wibble \{/;"\ts\tline:10\tclass:Test}     , 'subroutine');