summaryrefslogtreecommitdiff
path: root/ext/Test/Harness/t/parser-config.t
blob: 0c74427fa653faed0c84e591f2cc2fcd47078e07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/usr/bin/perl -w

BEGIN {
    if ( $ENV{PERL_CORE} ) {
        chdir 't';
        @INC = ( '../lib', 'lib' );
    }
    else {
        unshift @INC, 't/lib';
    }
}

use strict;
use vars qw(%INIT %CUSTOM);

use Test::More tests => 11;
use File::Spec::Functions qw( catfile updir );
use TAP::Parser;

use_ok('MySource');
use_ok('MyPerlSource');
use_ok('MyGrammar');
use_ok('MyIteratorFactory');
use_ok('MyResultFactory');

my @t_path = $ENV{PERL_CORE} ? ( updir(), 'ext', 'Test', 'Harness' ) : ();
my $source = catfile( @t_path, 't', 'source_tests', 'source' );
my %customize = (
    source_class           => 'MySource',
    perl_source_class      => 'MyPerlSource',
    grammar_class          => 'MyGrammar',
    iterator_factory_class => 'MyIteratorFactory',
    result_factory_class   => 'MyResultFactory',
);
my $p = TAP::Parser->new(
    {   source => $source,
        %customize,
    }
);
ok( $p, 'new customized parser' );

foreach my $key ( keys %customize ) {
    is( $p->$key(), $customize{$key}, "customized $key" );
}

# TODO: make sure these things are propogated down through the parser...