diff options
author | Ricardo Signes <rjbs@cpan.org> | 2015-03-08 18:20:22 -0400 |
---|---|---|
committer | Ricardo Signes <rjbs@cpan.org> | 2015-03-11 08:22:07 -0400 |
commit | afad11a2ce2b95ce853f2a09df2cbf068be080c3 (patch) | |
tree | e8b977e2afe9262eb6216534cf16935da97eb736 /cpan/Test-Simple/lib/Test/Stream/Tester | |
parent | 9d58dbc453a86c9cbb3a131adcd1559fe0445a08 (diff) | |
download | perl-afad11a2ce2b95ce853f2a09df2cbf068be080c3.tar.gz |
move back to a stable Test-Simple, v1.001014
Diffstat (limited to 'cpan/Test-Simple/lib/Test/Stream/Tester')
-rw-r--r-- | cpan/Test-Simple/lib/Test/Stream/Tester/Checks.pm | 403 | ||||
-rw-r--r-- | cpan/Test-Simple/lib/Test/Stream/Tester/Checks/Event.pm | 197 | ||||
-rw-r--r-- | cpan/Test-Simple/lib/Test/Stream/Tester/Events.pm | 169 | ||||
-rw-r--r-- | cpan/Test-Simple/lib/Test/Stream/Tester/Events/Event.pm | 202 | ||||
-rw-r--r-- | cpan/Test-Simple/lib/Test/Stream/Tester/Grab.pm | 215 |
5 files changed, 0 insertions, 1186 deletions
diff --git a/cpan/Test-Simple/lib/Test/Stream/Tester/Checks.pm b/cpan/Test-Simple/lib/Test/Stream/Tester/Checks.pm deleted file mode 100644 index d032807c13..0000000000 --- a/cpan/Test-Simple/lib/Test/Stream/Tester/Checks.pm +++ /dev/null @@ -1,403 +0,0 @@ -package Test::Stream::Tester::Checks; -use strict; -use warnings; - -use Test::Stream::Carp qw/croak confess/; -use Test::Stream::Util qw/is_regex/; - -use Scalar::Util qw/blessed reftype/; - -my %DIRECTIVES = ( - map { $_ => __PACKAGE__->can($_) } - qw(filter_providers filter_types skip seek end) -); - -sub new { - my $class = shift; - my ($file, $line) = @_; - my $self = bless { - seek => 0, - items => [], - file => $file, - line => $line, - }, $class; - return $self; -} - -sub debug { - my $self = shift; - return "Checks from $self->{file} around line $self->{line}."; -} - -sub populated { scalar @{shift->{items}} } - -sub add_directive { - my $self = shift; - my ($dir, @args) = @_; - - confess "No directive provided!" - unless $dir; - - if (ref($dir)) { - confess "add_directive takes a coderef, or name, and optional args. (got $dir)" - unless reftype($dir) eq 'CODE'; - } - else { - confess "$dir is not a valid directive." - unless $DIRECTIVES{$dir}; - $dir = $DIRECTIVES{$dir}; - } - - push @{$self->{items}} => [$dir, @args]; -} - -sub add_event { - my $self = shift; - my ($type, $spec) = @_; - - confess "add_event takes a type name and a hashref" - unless $type && $spec && ref $spec && reftype($spec) eq 'HASH'; - - my $e = Test::Stream::Tester::Checks::Event->new(%$spec, type => $type); - push @{$self->{items}} => $e; -} - -sub include { - my $self = shift; - my ($other) = @_; - - confess "Invalid argument to include()" - unless $other && blessed($other) && $other->isa(__PACKAGE__); - - push @{$self->{items}} => @{$other->{items}}; -} - -sub run { - my $self = shift; - my ($events) = @_; - $events = $events->clone; - - for (my $i = 0; $i < @{$self->{items}}; $i++) { - my $item = $self->{items}->[$i]; - - # Directive - if (reftype $item eq 'ARRAY') { - my ($code, @args) = @$item; - my @out = $self->$code($events, @args); - next unless @out; - return @out; - } - - # Event! - my $meth = $self->{seek} ? 'seek' : 'next'; - my $event = $events->$meth($item->get('type')); - - my ($ret, @debug) = $self->check_event($item, $event); - return ($ret, @debug) unless $ret; - } - - return (1); -} - -sub vtype { - my ($v) = @_; - - if (blessed($v)) { - return 'checks' if $v->isa('Test::Stream::Tester::Checks'); - return 'events' if $v->isa('Test::Stream::Tester::Events'); - return 'check' if $v->isa('Test::Stream::Tester::Checks::Event'); - return 'event' if $v->isa('Test::Stream::Tester::Events::Event'); - } - - return 'regexp' if defined is_regex($v); - return 'noref' unless ref $v; - return 'array' if reftype($v) eq 'ARRAY'; - return 'code' if reftype($v) eq 'CODE'; - - confess "Invalid field check: '$v'"; -} - -sub check_event { - my $self = shift; - my ($want, $got) = @_; - - my @debug = (" Check: " . $want->debug); - my $wtype = $want->get('type'); - - return (0, @debug, " Expected event of type '$wtype', but did not find one.") - unless defined($got); - - unshift @debug => " Event: " . $got->debug; - my $gtype = $got->get('type'); - - return (0, @debug, " Expected event of type '$wtype', but got '$gtype'.") - unless $wtype eq $gtype; - - for my $key ($want->keys) { - my $wval = $want->get($key); - my $gval = $got->get($key); - - my ($ret, @err) = $self->check_key($key, $wval, $gval); - return ($ret, @debug, @err) unless $ret; - } - - return (1); -} - -sub check_key { - my $self = shift; - my ($key, $wval, $gval) = @_; - - if ((defined $wval) xor(defined $gval)) { - $wval = defined $wval ? "'$wval'" : 'undef'; - $gval = defined $gval ? "'$gval'" : 'undef'; - return (0, " \$got->{$key} = $gval", " \$exp->{$key} = $wval",); - } - - my $wtype = vtype($wval); - - my $meth = "_check_field_$wtype"; - return $self->$meth($key, $wval, $gval); -} - -sub _check_field_checks { - my $self = shift; - my ($key, $wval, $gval) = @_; - - my $debug = $wval->debug; - - return (0, " \$got->{$key} = '$gval'", " \$exp->{$key} = <$debug>") - unless vtype($gval) eq 'events'; - - my ($ret, @diag) = $wval->run($gval); - return $ret if $ret; - return ($ret, map { s/^/ /mg; $_ } @diag); -} - -sub _check_field_check { - my $self = shift; - my ($key, $wval, $gval) = @_; - - my $debug = $wval->debug; - - return (0, "Event: INVALID EVENT ($gval)", " Check: $debug") - unless vtype($gval) eq 'event'; - - my ($ret, @diag) = check_event($wval, $gval); - return $ret if $ret; - - return ($ret, map { s/^/ /mg; $_ } @diag); -} - -sub _check_field_noref { - my $self = shift; - my ($key, $wval, $gval) = @_; - - return (1) if !defined($wval) && !defined($gval); - return (1) if defined($wval) && defined($gval) && "$wval" eq "$gval"; - $wval = "'$wval'" if defined $wval; - $wval ||= 'undef'; - $gval = "'$gval'" if defined $gval; - $gval ||= 'undef'; - return (0, " \$got->{$key} = $gval", " \$exp->{$key} = $wval"); -} - -sub _check_field_regexp { - my $self = shift; - my ($key, $wval, $gval) = @_; - - return (1) if $gval =~ /$wval/; - return (0, " \$got->{$key} = '$gval'", " Does not match $wval"); -} - -sub _check_field_array { - my $self = shift; - my ($key, $wval, $gval) = @_; - for my $p (@$wval) { - my ($ret, @diag) = $self->_check_field_regexp($key, $p, $gval); - return ($ret, @diag) unless $ret; - } - - return (1); -} - -sub _check_field_code { - my $self = shift; - my ($key, $wval, $gval) = @_; - $wval->($key, $gval); -} - -sub seek { - my $self = shift; - my ($events, $flag) = @_; - - $self->{seek} = $flag ? 1 : 0; - - return (); # Cannot fail -} - -sub skip { - my $self = shift; - my ($events, $num) = @_; - $events->next while $num--; - return (); -} - -sub end { - my $self = shift; - my ($events) = @_; - my $event = $events->next; - return () unless $event; - return (0, " Expected end of events, got " . $event->debug); -} - -sub filter_providers { - my $self = shift; - my ($events, $arg) = @_; - - my ($neg, $val) = $arg =~ m/^(!?)(.*)$/; - if ($neg) { - @$events = grep { $_->get('tool_package') ne $val } @$events; - } - else { - @$events = grep { $_->get('tool_package') eq $val } @$events; - } - - return (); -} - -sub filter_types { - my $self = shift; - my ($events, $arg) = @_; - - my ($neg, $val) = $arg =~ m/^(!?)(.*)$/; - if ($neg) { - @$events = grep { $_->get('type') ne $val } @$events; - } - else { - @$events = grep { $_->get('type') eq $val } @$events; - } - - return (); -} - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test::Stream::Tester::Checks - Representation of a L<Test::Stream::Tester> -event check. - -=head1 DESCRIPTION - -L<Test::Stream::Tester> produces this object whenever you use C<check { ... }>. -In general you will not interact with this object directly beyond pasing it -into C<events_are>. - -B<Note:> The API for this object is not published and is subject to change. No backwords -compatability can be guarenteed if you use this object directly. Please only -use this object in the published way specified in L<Test::Stream::Tester>. - -=head1 SOURCE - -The source code repository for Test::More can be found at -F<http://github.com/Test-More/test-more/>. - -=head1 MAINTAINER - -=over 4 - -=item Chad Granum E<lt>exodist@cpan.orgE<gt> - -=back - -=head1 AUTHORS - -The following people have all contributed to the Test-More dist (sorted using -VIM's sort function). - -=over 4 - -=item Chad Granum E<lt>exodist@cpan.orgE<gt> - -=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt> - -=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt> - -=item Michael G Schwern E<lt>schwern@pobox.comE<gt> - -=item 唐鳳 - -=back - -=head1 COPYRIGHT - -There has been a lot of code migration between modules, -here are all the original copyrights together: - -=over 4 - -=item Test::Stream - -=item Test::Stream::Tester - -Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See F<http://www.perl.com/perl/misc/Artistic.html> - -=item Test::Simple - -=item Test::More - -=item Test::Builder - -Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much -inspiration from Joshua Pritikin's Test module and lots of help from Barrie -Slaymaker, Tony Bowden, blackstar.co.uk, chromatic, Fergal Daly and the perl-qa -gang. - -Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern -E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein. - -Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See F<http://www.perl.com/perl/misc/Artistic.html> - -=item Test::use::ok - -To the extent possible under law, 唐鳳 has waived all copyright and related -or neighboring rights to L<Test-use-ok>. - -This work is published from Taiwan. - -L<http://creativecommons.org/publicdomain/zero/1.0> - -=item Test::Tester - -This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts -are based on other people's work. - -Under the same license as Perl itself - -See http://www.perl.com/perl/misc/Artistic.html - -=item Test::Builder::Tester - -Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004. - -This program is free software; you can redistribute it -and/or modify it under the same terms as Perl itself. - -=back diff --git a/cpan/Test-Simple/lib/Test/Stream/Tester/Checks/Event.pm b/cpan/Test-Simple/lib/Test/Stream/Tester/Checks/Event.pm deleted file mode 100644 index 649b3e75e2..0000000000 --- a/cpan/Test-Simple/lib/Test/Stream/Tester/Checks/Event.pm +++ /dev/null @@ -1,197 +0,0 @@ -package Test::Stream::Tester::Checks::Event; -use strict; -use warnings; - -use Test::Stream::Util qw/is_regex/; -use Test::Stream::Carp qw/confess croak/; - -use Scalar::Util qw/blessed reftype/; - -sub new { - my $class = shift; - my $fields = {@_}; - my $self = bless {fields => $fields}, $class; - - $self->{$_} = delete $fields->{$_} - for qw/debug_line debug_file debug_package/; - - map { $self->validate_check($_) } values %$fields; - - my $type = $self->get('type') || confess "No type specified!"; - - my $etypes = Test::Stream::Context->events; - confess "'$type' is not a valid event type" - unless $etypes->{$type}; - - return $self; -} - -sub debug_line { shift->{debug_line} } -sub debug_file { shift->{debug_file} } -sub debug_package { shift->{debug_package} } - -sub debug { - my $self = shift; - - my $type = $self->get('type'); - my $file = $self->debug_file; - my $line = $self->debug_line; - - return "'$type' from $file line $line."; -} - -sub keys { sort keys %{shift->{fields}} } - -sub exists { - my $self = shift; - my ($field) = @_; - return exists $self->{fields}->{$field}; -} - -sub get { - my $self = shift; - my ($field) = @_; - return $self->{fields}->{$field}; -} - -sub validate_check { - my $self = shift; - my ($val) = @_; - - return unless defined $val; - return unless ref $val; - return if defined is_regex($val); - - if (blessed($val)) { - return if $val->isa('Test::Stream::Tester::Checks'); - return if $val->isa('Test::Stream::Tester::Events'); - return if $val->isa('Test::Stream::Tester::Checks::Event'); - return if $val->isa('Test::Stream::Tester::Events::Event'); - } - - my $type = reftype($val); - return if $type eq 'CODE'; - - croak "'$val' is not a valid field check" - unless reftype($val) eq 'ARRAY'; - - croak "Arrayrefs given as field checks may only contain regexes" - if grep { ! defined is_regex($_) } @$val; - - return; -} - -1; -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test::Stream::Tester::Checks::Event - Representation of an event validation -specification. - -=head1 DESCRIPTION - -Used internally by L<Test::Stream::Tester>. Please do not use directly. No -backwords compatability will be provided if the API for this module changes. - -=head1 SOURCE - -The source code repository for Test::More can be found at -F<http://github.com/Test-More/test-more/>. - -=head1 MAINTAINER - -=over 4 - -=item Chad Granum E<lt>exodist@cpan.orgE<gt> - -=back - -=head1 AUTHORS - -The following people have all contributed to the Test-More dist (sorted using -VIM's sort function). - -=over 4 - -=item Chad Granum E<lt>exodist@cpan.orgE<gt> - -=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt> - -=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt> - -=item Michael G Schwern E<lt>schwern@pobox.comE<gt> - -=item 唐鳳 - -=back - -=head1 COPYRIGHT - -There has been a lot of code migration between modules, -here are all the original copyrights together: - -=over 4 - -=item Test::Stream - -=item Test::Stream::Tester - -Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See F<http://www.perl.com/perl/misc/Artistic.html> - -=item Test::Simple - -=item Test::More - -=item Test::Builder - -Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much -inspiration from Joshua Pritikin's Test module and lots of help from Barrie -Slaymaker, Tony Bowden, blackstar.co.uk, chromatic, Fergal Daly and the perl-qa -gang. - -Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern -E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein. - -Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See F<http://www.perl.com/perl/misc/Artistic.html> - -=item Test::use::ok - -To the extent possible under law, 唐鳳 has waived all copyright and related -or neighboring rights to L<Test-use-ok>. - -This work is published from Taiwan. - -L<http://creativecommons.org/publicdomain/zero/1.0> - -=item Test::Tester - -This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts -are based on other people's work. - -Under the same license as Perl itself - -See http://www.perl.com/perl/misc/Artistic.html - -=item Test::Builder::Tester - -Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004. - -This program is free software; you can redistribute it -and/or modify it under the same terms as Perl itself. - -=back diff --git a/cpan/Test-Simple/lib/Test/Stream/Tester/Events.pm b/cpan/Test-Simple/lib/Test/Stream/Tester/Events.pm deleted file mode 100644 index 529fdee408..0000000000 --- a/cpan/Test-Simple/lib/Test/Stream/Tester/Events.pm +++ /dev/null @@ -1,169 +0,0 @@ -package Test::Stream::Tester::Events; -use strict; -use warnings; - -use Scalar::Util qw/blessed/; - -use Test::Stream::Tester::Events::Event; - -sub new { - my $class = shift; - my $self = bless [map { Test::Stream::Tester::Events::Event->new($_->summary) } @_], $class; - return $self; -} - -sub next { shift @{$_[0]} }; - -sub seek { - my $self = shift; - my ($type) = @_; - - while (my $e = shift @$self) { - return $e if $e->{type} eq $type; - } - - return undef; -} - -sub clone { - my $self = shift; - my $class = blessed($self); - return bless [@$self], $class; -} - -1; -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test::Stream::Tester::Events - Event list used by L<Test::Stream::Tester>. - -=head1 DESCRIPTION - -L<Test::Stream::Tester> converts lists of events into instances of this object -for use in various tools. You will probably never need to directly use this -class. - -=head1 METHODS - -=over 4 - -=item $events = $class->new(@EVENTS); - -Create a new instance from a list of events. - -=item $event = $events->next - -Get the next event. - -=item $event = $events->seek($type) - -Get the next event of the specific type (not a package name). - -=item $copy = $events->clone() - -Clone the events list object in its current state. - -=back - -=head1 SOURCE - -The source code repository for Test::More can be found at -F<http://github.com/Test-More/test-more/>. - -=head1 MAINTAINER - -=over 4 - -=item Chad Granum E<lt>exodist@cpan.orgE<gt> - -=back - -=head1 AUTHORS - -The following people have all contributed to the Test-More dist (sorted using -VIM's sort function). - -=over 4 - -=item Chad Granum E<lt>exodist@cpan.orgE<gt> - -=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt> - -=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt> - -=item Michael G Schwern E<lt>schwern@pobox.comE<gt> - -=item 唐鳳 - -=back - -=head1 COPYRIGHT - -There has been a lot of code migration between modules, -here are all the original copyrights together: - -=over 4 - -=item Test::Stream - -=item Test::Stream::Tester - -Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See F<http://www.perl.com/perl/misc/Artistic.html> - -=item Test::Simple - -=item Test::More - -=item Test::Builder - -Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much -inspiration from Joshua Pritikin's Test module and lots of help from Barrie -Slaymaker, Tony Bowden, blackstar.co.uk, chromatic, Fergal Daly and the perl-qa -gang. - -Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern -E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein. - -Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See F<http://www.perl.com/perl/misc/Artistic.html> - -=item Test::use::ok - -To the extent possible under law, 唐鳳 has waived all copyright and related -or neighboring rights to L<Test-use-ok>. - -This work is published from Taiwan. - -L<http://creativecommons.org/publicdomain/zero/1.0> - -=item Test::Tester - -This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts -are based on other people's work. - -Under the same license as Perl itself - -See http://www.perl.com/perl/misc/Artistic.html - -=item Test::Builder::Tester - -Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004. - -This program is free software; you can redistribute it -and/or modify it under the same terms as Perl itself. - -=back diff --git a/cpan/Test-Simple/lib/Test/Stream/Tester/Events/Event.pm b/cpan/Test-Simple/lib/Test/Stream/Tester/Events/Event.pm deleted file mode 100644 index 0c3e2063f8..0000000000 --- a/cpan/Test-Simple/lib/Test/Stream/Tester/Events/Event.pm +++ /dev/null @@ -1,202 +0,0 @@ -package Test::Stream::Tester::Events::Event; -use strict; -use warnings; - -use Test::Stream::Carp qw/confess/; -use Scalar::Util qw/reftype blessed/; - -sub new { - my $class = shift; - my $self = bless {}, $class; - - my @orig = @_; - - while (@_) { - my $field = shift; - my $val = shift; - - if (exists $self->{$field}) { - use Data::Dumper; - print Dumper(@orig); - confess "'$field' specified more than once!"; - } - - if (my $type = reftype $val) { - if ($type eq 'ARRAY') { - $val = Test::Stream::Tester::Events->new(@$val) - unless grep { !blessed($_) || !$_->isa('Test::Stream::Event') } @$val; - } - elsif (blessed($val) && $val->isa('Test::Stream::Event')) { - $val = $class->new($val->summary); - } - } - - $self->{$field} = $val; - } - - return $self; -} - -sub get { - my $self = shift; - my ($field) = @_; - return $self->{$field}; -} - -sub debug { - my $self = shift; - - my $type = $self->get('type'); - my $file = $self->get('file'); - my $line = $self->get('line'); - - return "'$type' from $file line $line."; -} - -1; -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test::Stream::Tester::Events::Event - L<Test::Stream::Tester> representation of -an event. - -=head1 DESCRIPTION - -L<Test::Stream::Tester> often uses this clas to represent events in a way that -is easier to validate. - -=head1 SYNOPSYS - - use Test::Stream::Tester::Events::Event; - - my $event = Test::Stream::Tester::Events::Event->new($e->summary); - - # Print the file and line number where the event was generated - print "Debug: " . $event->debug . "\n"; - - # Get an event field value - my $val = $event->get($field); - -=head1 METHODS - -=over 4 - -=item $event->get($field) - -Get the value of a specific event field. Fields are specific to event types. -The fields are usually the result of calling C<< $e->summary >> on the original -event. - -=item $event->debug - -Returns a string like this: - - 'ok' from my_test.t line 42. - -Which lists the type of event, the file that generated, and the line number on -which it was generated. - -=back - -=head1 SOURCE - -The source code repository for Test::More can be found at -F<http://github.com/Test-More/test-more/>. - -=head1 MAINTAINER - -=over 4 - -=item Chad Granum E<lt>exodist@cpan.orgE<gt> - -=back - -=head1 AUTHORS - -The following people have all contributed to the Test-More dist (sorted using -VIM's sort function). - -=over 4 - -=item Chad Granum E<lt>exodist@cpan.orgE<gt> - -=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt> - -=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt> - -=item Michael G Schwern E<lt>schwern@pobox.comE<gt> - -=item 唐鳳 - -=back - -=head1 COPYRIGHT - -There has been a lot of code migration between modules, -here are all the original copyrights together: - -=over 4 - -=item Test::Stream - -=item Test::Stream::Tester - -Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See F<http://www.perl.com/perl/misc/Artistic.html> - -=item Test::Simple - -=item Test::More - -=item Test::Builder - -Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much -inspiration from Joshua Pritikin's Test module and lots of help from Barrie -Slaymaker, Tony Bowden, blackstar.co.uk, chromatic, Fergal Daly and the perl-qa -gang. - -Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern -E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein. - -Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See F<http://www.perl.com/perl/misc/Artistic.html> - -=item Test::use::ok - -To the extent possible under law, 唐鳳 has waived all copyright and related -or neighboring rights to L<Test-use-ok>. - -This work is published from Taiwan. - -L<http://creativecommons.org/publicdomain/zero/1.0> - -=item Test::Tester - -This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts -are based on other people's work. - -Under the same license as Perl itself - -See http://www.perl.com/perl/misc/Artistic.html - -=item Test::Builder::Tester - -Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004. - -This program is free software; you can redistribute it -and/or modify it under the same terms as Perl itself. - -=back diff --git a/cpan/Test-Simple/lib/Test/Stream/Tester/Grab.pm b/cpan/Test-Simple/lib/Test/Stream/Tester/Grab.pm deleted file mode 100644 index 8022011024..0000000000 --- a/cpan/Test-Simple/lib/Test/Stream/Tester/Grab.pm +++ /dev/null @@ -1,215 +0,0 @@ -package Test::Stream::Tester::Grab; -use strict; -use warnings; - -sub new { - my $class = shift; - - my $self = bless { - events => [], - streams => [ Test::Stream->intercept_start ], - }, $class; - - $self->{streams}->[0]->listen( - sub { - shift; # Stream - push @{$self->{events}} => @_; - } - ); - - return $self; -} - -sub flush { - my $self = shift; - my $out = delete $self->{events}; - $self->{events} = []; - return $out; -} - -sub events { - my $self = shift; - # Copy - return [@{$self->{events}}]; -} - -sub finish { - my ($self) = @_; # Do not shift; - $_[0] = undef; - - $self->{finished} = 1; - my ($remove) = $self->{streams}->[0]; - Test::Stream->intercept_stop($remove); - - return $self->flush; -} - -sub DESTROY { - my $self = shift; - return if $self->{finished}; - my ($remove) = $self->{streams}->[0]; - Test::Stream->intercept_stop($remove); -} - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -Test::Stream::Tester::Grab - Object used to temporarily steal all events. - -=head1 DESCRIPTION - -Once created this object will intercept and stash all events sent to the shared -L<Test::Stream> object. Once the object is destroyed events will once again be -sent to the shared stream. - -=head1 SYNOPSYS - - use Test::More; - use Test::Stream::Tester::Grab; - - my $grab = Test::Stream::Tester::Grab->new(); - - # Generate some events, they are intercepted. - ok(1, "pass"); - ok(0, "fail"); - - my $events_a = $grab->flush; - - # Generate some more events, they are intercepted. - ok(1, "pass"); - ok(0, "fail"); - - # Same as flush, except it destroys the grab object. - my $events_b = $grab->finish; - -After calling C<finish()> the grab object is destroyed and C<$grab> is set to -undef. C<$events_a> is an arrayref with the first 2 events. C<$events_b> is an -arrayref with the second 2 events. - -=head1 METHODS - -=over 4 - -=item $grab = $class->new() - -Create a new grab object, immediately starts intercepting events. - -=item $ar = $grab->flush() - -Get an arrayref of all the events so far, clearing the grab objects internal -list. - -=item $ar = $grab->events() - -Get an arrayref of all events so far, does not clear the internal list. - -=item $ar = $grab->finish() - -Get an arrayref of all the events, then destroy the grab object. - -=back - -=head1 SOURCE - -The source code repository for Test::More can be found at -F<http://github.com/Test-More/test-more/>. - -=head1 MAINTAINER - -=over 4 - -=item Chad Granum E<lt>exodist@cpan.orgE<gt> - -=back - -=head1 AUTHORS - -The following people have all contributed to the Test-More dist (sorted using -VIM's sort function). - -=over 4 - -=item Chad Granum E<lt>exodist@cpan.orgE<gt> - -=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt> - -=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt> - -=item Michael G Schwern E<lt>schwern@pobox.comE<gt> - -=item 唐鳳 - -=back - -=head1 COPYRIGHT - -There has been a lot of code migration between modules, -here are all the original copyrights together: - -=over 4 - -=item Test::Stream - -=item Test::Stream::Tester - -Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See F<http://www.perl.com/perl/misc/Artistic.html> - -=item Test::Simple - -=item Test::More - -=item Test::Builder - -Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much -inspiration from Joshua Pritikin's Test module and lots of help from Barrie -Slaymaker, Tony Bowden, blackstar.co.uk, chromatic, Fergal Daly and the perl-qa -gang. - -Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern -E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein. - -Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See F<http://www.perl.com/perl/misc/Artistic.html> - -=item Test::use::ok - -To the extent possible under law, 唐鳳 has waived all copyright and related -or neighboring rights to L<Test-use-ok>. - -This work is published from Taiwan. - -L<http://creativecommons.org/publicdomain/zero/1.0> - -=item Test::Tester - -This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts -are based on other people's work. - -Under the same license as Perl itself - -See http://www.perl.com/perl/misc/Artistic.html - -=item Test::Builder::Tester - -Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004. - -This program is free software; you can redistribute it -and/or modify it under the same terms as Perl itself. - -=back |