Test-Wiretap
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
t/04-return-value-capturing.t view on Meta::CPAN
#!/usr/bin/env perl
use Test::More tests => 16;
use lib 't/lib';
use lib 'lib';
use lib '../lib';
use Test::Wiretap;
{
package ValueHolder;
sub new {
my ($class, $value) = @_;
my $self = bless {} => $class;
$self->set_attr($value);
return $self;
}
sub set_attr {
my ($self, $value) = @_;
$self->{deeply_stored_value}[0] = $value;
}
sub get_attr {
my ($self, $value) = @_;
return $self->{deeply_stored_value}[0];
}
sub function {
return wantarray ? qw(a list) : 'a-scalar';
}
}
{
package Utility;
sub prefix_increment {
my ($class, $obj) = @_;
$obj->set_attr($obj->get_attr + 1);
return $obj;
}
}
# capturing of function args and return values
{
my $tap = Test::Wiretap->new({
name => 'ValueHolder::function',
capture => 1,
});
is_deeply( $tap->return_values, [], '->return_values starts out sane' );
is_deeply( $tap->return_contexts, [], '->return_contexts starts out sane' );
my @list = ValueHolder::function(qw(a b c));
my $scalar = ValueHolder::function(qw(d e f));
ValueHolder::function(qw(g h i));
is_deeply( $tap->return_values, [
[qw(a list)],
['a-scalar'],
undef,
], 'basic return-value capturing' );
is_deeply( $tap->return_contexts, [
'list',
'scalar',
'void',
], 'call context capturing' );
$tap->reset;
is_deeply( $tap->return_values, [], '->return_values gets reset by ->reset' );
is_deeply( $tap->return_values, [], '->return_contexts gets reset by ->reset' );
}
# deep copying of return values + args
{
view all matches for this distributionview release on metacpan - search on metacpan
( run in 2.254 seconds using v1.00-cache-2.02-grep-82fe00e-cpan-d29e8ade9f55 )