devel-examine-subs / t / 02-has.t

#!perl -T

use Test::More tests => 7;
use Test::Exception;

BEGIN {
    use_ok( 'Devel::Examine::Subs' ) || print "Bail out!\n";
}

{
    eval { Devel::Examine::Subs->has({ file => 'badfile.none', search => 'text' }) };
    ok ( $@ =~ /Invalid file supplied/, "has() dies with error if file not found" );
}
{
    my @res = Devel::Examine::Subs->has({ file => 't/sample.data', search => 'this' });
    ok ( $res[0] =~ '\w+', "has() returns an array if file exists and text available" );
}
{
    my @res = Devel::Examine::Subs->has({ file => 't/sample.data', search => '' });
    ok ( ! @res, "has() returns an empty array if file exists and text is empty string" );
}
{
    my @res = Devel::Examine::Subs->has({ file => 't/sample.data', search => 'asdfasdf' });
    ok ( ! @res, "has() returns an empty array if file exists and search text not found" );
}
{    
    my $res = Devel::Examine::Subs->has({ file => 't/sample.data', search => 'this' });
    ok ( ref \$res eq 'SCALAR', "has() returns a scalar when called in scalar context" );
}
{
    my $res = Devel::Examine::Subs->has({ file => 't/sample.data', search => 'this' });
    is ( $res, 2, "has() returns the proper count of names when data is found" );
}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.