Test-AutoMock
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/Test/AutoMock/Mock/TieArray.pm view on Meta::CPAN
package Test::AutoMock::Mock::TieArray;
use strict;
use warnings;
sub TIEARRAY {
my ($class, $manager) = @_;
bless \$manager => $class;
}
sub FETCH {
my ($self, $key) = @_;
my $manager = $$self;
my $arrayref = $manager->tie_array;
my $method_name = "[$key]";
$manager->_call_method($method_name, [], sub {
my $self = shift;
$arrayref->[$key] = $manager->child($method_name)->mock
unless exists $arrayref->[$key];
$arrayref->[$key];
});
}
sub STORE {
my ($self, $key, $value) = @_;
my $manager = $$self;
my $arrayref = $manager->tie_array;
$manager->_call_method("[$key]", [$value], sub {
my ($self, $value) = @_;
$arrayref->[$key] = $value;
});
}
sub FETCHSIZE {
my $self = shift;
my $manager = $$self;
my $arrayref = $manager->tie_array;
$manager->_call_method(FETCHSIZE => [], sub {
my $self = shift;
$#$arrayref + 1;
});
}
sub STORESIZE {
my ($self, $count) = @_;
my $manager = $$self;
my $arrayref = $manager->tie_array;
$manager->_call_method(STORESIZE => [$count], sub {
my ($self, $count) = @_;
$#$arrayref = $count - 1;
});
}
sub CLEAR {
my $self = shift;
my $manager = $$self;
my $arrayref = $manager->tie_array;
$manager->_call_method(CLEAR => [], sub {
my $self = shift;
@$arrayref = ();
});
}
view all matches for this distributionview release on metacpan - search on metacpan
( run in 1.294 second using v1.00-cache-2.02-grep-82fe00e-cpan-9e6bc14194b6 )