Commit | Line | Data |
b965d173 |
1 | #!/usr/bin/perl -w |
2 | |
3 | BEGIN { |
2adbc9b6 |
4 | unshift @INC, 't/lib'; |
b965d173 |
5 | } |
6 | |
7 | use strict; |
b965d173 |
8 | |
f7c69158 |
9 | use Test::More tests => 26; |
b965d173 |
10 | |
11 | use File::Spec; |
12 | |
f7c69158 |
13 | use EmptyParser; |
b965d173 |
14 | use TAP::Parser::Source; |
15 | use TAP::Parser::Source::Perl; |
16 | |
f7c69158 |
17 | my $parser = EmptyParser->new; |
18 | my $test = File::Spec->catfile( |
27fc0087 |
19 | 't', |
20 | 'source_tests', |
21 | 'source' |
5e2a19fc |
22 | ); |
b965d173 |
23 | |
24 | my $perl = $^X; |
25 | |
26 | can_ok 'TAP::Parser::Source', 'new'; |
27 | my $source = TAP::Parser::Source->new; |
28 | isa_ok $source, 'TAP::Parser::Source'; |
29 | |
30 | can_ok $source, 'source'; |
31 | eval { $source->source("$perl -It/lib $test") }; |
32 | ok my $error = $@, '... and calling it with a string should fail'; |
33 | like $error, qr/^Argument to &source must be an array reference/, |
34 | '... with an appropriate error message'; |
35 | ok $source->source( [ $perl, '-It/lib', '-T', $test ] ), |
36 | '... and calling it with valid args should succeed'; |
37 | |
38 | can_ok $source, 'get_stream'; |
f7c69158 |
39 | my $stream = $source->get_stream($parser); |
b965d173 |
40 | |
41 | isa_ok $stream, 'TAP::Parser::Iterator::Process', |
42 | 'get_stream returns the right object'; |
43 | can_ok $stream, 'next'; |
44 | is $stream->next, '1..1', '... and the first line should be correct'; |
45 | is $stream->next, 'ok 1', '... as should the second'; |
46 | ok !$stream->next, '... and we should have no more results'; |
47 | |
48 | can_ok 'TAP::Parser::Source::Perl', 'new'; |
49 | $source = TAP::Parser::Source::Perl->new; |
50 | isa_ok $source, 'TAP::Parser::Source::Perl', '... and the object it returns'; |
51 | |
52 | can_ok $source, 'source'; |
53 | ok $source->source( [$test] ), |
54 | '... and calling it with valid args should succeed'; |
55 | |
56 | can_ok $source, 'get_stream'; |
f7c69158 |
57 | $stream = $source->get_stream($parser); |
b965d173 |
58 | |
59 | isa_ok $stream, 'TAP::Parser::Iterator::Process', |
60 | '... and the object it returns'; |
61 | can_ok $stream, 'next'; |
62 | is $stream->next, '1..1', '... and the first line should be correct'; |
63 | is $stream->next, 'ok 1', '... as should the second'; |
64 | ok !$stream->next, '... and we should have no more results'; |
65 | |
66 | # internals tests! |
67 | |
68 | can_ok $source, '_switches'; |
69 | ok( grep( $_ =~ /^['"]?-T['"]?$/, $source->_switches ), |
70 | '... and it should find the taint switch' |
71 | ); |
72 | |
73 | # coverage test for TAP::PArser::Source |
74 | |
75 | { |
76 | |
77 | # coverage for method get_steam |
78 | |
f7c69158 |
79 | my $source = TAP::Parser::Source->new( { parser => $parser } ); |
b965d173 |
80 | |
81 | my @die; |
82 | |
83 | eval { |
84 | local $SIG{__DIE__} = sub { push @die, @_ }; |
85 | |
86 | $source->get_stream; |
87 | }; |
88 | |
89 | is @die, 1, 'coverage testing of get_stream'; |
90 | |
91 | like pop @die, qr/No command found!/, '...and it failed as expect'; |
92 | } |
93 | |