Test-Harness
view release on metacpan or search on metacpan
#!/usr/bin/perl -w
BEGIN {
unshift @INC, 't/lib';
}
use strict;
use warnings;
use Test::More tests => 45;
use File::Spec;
my $dir = 't/source_tests';
use_ok('TAP::Parser::Source');
sub ct($) {
my $hash = shift;
if ( $ENV{PERL_CORE} ) {
delete $hash->{is_symlink};
delete $hash->{lstat};
}
return $hash;
}
# Basic tests
{
my $source = TAP::Parser::Source->new;
isa_ok( $source, 'TAP::Parser::Source', 'new source' );
can_ok(
$source,
qw( raw meta config merge switches test_args assemble_meta )
);
is_deeply( $source->config, {}, 'config empty by default' );
$source->config->{Foo} = { bar => 'baz' };
is_deeply(
$source->config_for('Foo'), { bar => 'baz' },
'config_for( Foo )'
);
is_deeply(
$source->config_for('TAP::Parser::SourceHandler::Foo'),
{ bar => 'baz' }, 'config_for( ...::SourceHandler::Foo )'
);
ok( !$source->merge, 'merge not set by default' );
$source->merge(1);
ok( $source->merge, '... merge now set' );
is( $source->switches, undef, 'switches not set by default' );
$source->switches( ['-Ilib'] );
is_deeply( $source->switches, ['-Ilib'], '... switches now set' );
is( $source->test_args, undef, 'test_args not set by default' );
$source->test_args( ['foo'] );
is_deeply( $source->test_args, ['foo'], '... test_args now set' );
$source->raw( \'hello world' );
my $meta = $source->assemble_meta;
is_deeply(
$meta,
{ is_scalar => 1,
is_object => 0,
has_newlines => 0,
length => 11,
},
'assemble_meta for scalar that isnt a file'
);
is( $source->meta, $meta, '... and caches meta' );
}
# array check
{
my $source = TAP::Parser::Source->new;
$source->raw( [ 'hello', 'world' ] );
my $meta = $source->assemble_meta;
( run in 3.038 seconds using v1.01-cache-2.11-cpan-4ab04211f4c )