Test-ManyParams
view release on metacpan or search on metacpan
ManyParams.pm view on Meta::CPAN
}
my $ok = not defined($failed_param);
my @diag = $ok
? ()
: ("Tests with most ($nr) of the parameters: " . _dump_params($params),
"Failed using these parameters: " . _dump_params($failed_param));
return ($ok, @diag);
}
sub all_ok(&$;$) {
my ($sub, $params, $test_name) = @_;
my ($ok, @diag) = does_all(@_);
$Tester->ok( $ok, $test_name ) or do { $Tester->diag($_) for @diag };
return $ok;
}
sub most_ok(&$$;$) {
my ($sub, $params, $nr, $test_name) = @_;
my ($ok, @diag) = does_most(@_);
$Tester->ok( $ok, $test_name ) or do { $Tester->diag($_) for @diag };
return $ok;
}
sub any_ok(&$;$) {
my ($sub, $params, $test_name) = @_;
# Please recognise the logic
# To find out if any of the tests is O.K.,
# I ask whether all tests fail
# If so there isn't any_ok, otherwise there is at least one ok
my ($all_arent_ok) = does_all(sub {!$sub->(@_)}, $params, $test_name);
my $ok = !$all_arent_ok;
$Tester->ok( $ok, $test_name );
return $ok;
}
sub any_is(&$$;$) {
my ($sub, $expected_value, $params, $test_name) = @_;
my ($all_arent_ok, @diag) =
does_all(sub {!($sub->(@_) eq $expected_value)}, $params, $test_name);
my $ok = !$all_arent_ok;
$Tester->ok( $ok, $test_name)
or do {
$Tester->diag($_) for @diag;
$Tester->diag("Expected: " . _dump_params($expected_value));
$Tester->diag("but didn't found it with at least one parameter");
};
}
sub any_isnt(&$$;$) {
my ($sub, $expected_value, $params, $test_name) = @_;
my ($all_arent_ok, @diag) =
does_all(sub {!($sub->(@_) ne $expected_value)}, $params, $test_name);
my $ok = !$all_arent_ok;
$Tester->ok( $ok, $test_name)
or do {
$Tester->diag($_) for @diag;
$Tester->diag("Expected to find any parameter where result is different to " . _dump_params($expected_value));
$Tester->diag("but didn't found such parameters");
};
}
sub all_are(&$$;$) {
my ($sub, $expected, $params, $test_name) = @_;
my $found = undef;
my ($ok, @diag) =
does_all( sub { $found = $sub->(@_); $found eq $expected }, $params);
$Tester->ok($ok, $test_name)
or do {
$Tester->diag($_) for @diag;
$Tester->diag("Expected: " . _dump_params($expected));
$Tester->diag("but found: " . _dump_params($found));
};
}
sub all_arent(&$$;$) {
my ($sub, $unexpected, $params, $test_name) = @_;
my $found = undef;
my ($ok, @diag) =
does_all( sub { $found = $sub->(@_); $found ne $unexpected }, $params);
$Tester->ok($ok, $test_name)
or do {
$Tester->diag($_) for @diag;
$Tester->diag("Expected not to find " . _dump_params($unexpected) . " but found it");
};
}
( run in 0.927 second using v1.01-cache-2.11-cpan-49f99fa48dc )