summaryrefslogtreecommitdiff
path: root/cpan/Test-Harness/t/parser-config.t
blob: bd3625902d272d127408d12e7cf4b415c4314b1f (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
#!/usr/bin/perl -w

BEGIN {
        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 $source = catfile( '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...