Monitoring-Plugin
view release on metacpan or search on metacpan
t/Monitoring-Plugin-Range.t view on Meta::CPAN
use strict;
#use Test::More qw(no_plan);
use Test::More tests => 151;
BEGIN {
use_ok('Monitoring::Plugin::Range');
# Silence warnings unless TEST_VERBOSE is set
$SIG{__WARN__} = sub { warn $_[0] if $ENV{TEST_VERBOSE} };
};
diag "\nusing Monitoring::Plugin::Range revision ". $Monitoring::Plugin::Range::VERSION . "\n" if $ENV{TEST_VERBOSE};
my $r;
diag "'garbage in' checks -- you should see 7 invalid range definition warnings here:" if $ENV{TEST_VERBOSE};
foreach (qw(
:
1:~
foo
1-10
10:~
1-10:2.4
), '1,10' # avoid warning about using , inside qw()
) {
$r =Monitoring::Plugin::Range->parse_range_string($_);
is $r, undef, "'$_' should not be a valid range" ;
}
diag "range: 0..6 inclusive" if $ENV{TEST_VERBOSE};
$r = Monitoring::Plugin::Range->parse_range_string("6");
isa_ok( $r, "Monitoring::Plugin::Range");
ok( defined $r, "'6' is valid range");
cmp_ok( $r->start, '==', 0, "Start correct");
cmp_ok( $r->start_infinity, '==', 0, "Not using negative infinity");
cmp_ok( $r->end, '==', 6, "End correct");
cmp_ok( $r->end_infinity, '==', 0, "Not using positive infinity");
cmp_ok( $r, 'eq', "6", "Stringification back to original");
my $expected = {
-1 => 1, # 1 means it raises an alert because it's OUTSIDE the range
0 => 0, # 0 means it's inside the range (no alert)
4 => 0,
6 => 0,
6.1 => 1,
79.999999 => 1,
};
sub test_expected {
my $r = shift;
my $expected = shift;
foreach (sort {$a<=>$b} keys %$expected) {
is $r->check_range($_), $expected->{$_},
" $_ should " . ($expected->{$_} ? 'not ' : '') . "be in the range (line ".(caller)[2].")";
}
}
test_expected( $r, $expected );
diag "range : -7..23, inclusive" if $ENV{TEST_VERBOSE};
$r = Monitoring::Plugin::Range->parse_range_string("-7:23");
ok( defined $r, "'-7:23' is valid range");
cmp_ok( $r->start, '==', -7, "Start correct");
cmp_ok( $r->start_infinity, '==', 0, "Not using negative infinity");
cmp_ok( $r->end, '==', 23, "End correct");
cmp_ok( $r->end_infinity, '==', 0, "Not using positive infinity");
cmp_ok( $r, 'eq', "-7:23", "Stringification back to original");
$expected = {
-23 => 1,
-7 => 0,
-1 => 0,
0 => 0,
4 => 0,
23 => 0,
23.1 => 1,
79.999999 => 1,
};
test_expected( $r, $expected );
diag "range : 0..5.75, inclusive" if $ENV{TEST_VERBOSE};
$r = Monitoring::Plugin::Range->parse_range_string(":5.75");
ok( defined $r, "':5.75' is valid range");
cmp_ok( $r->start, '==', 0, "Start correct");
cmp_ok( $r->start_infinity, '==', 0, "Not using negative infinity");
cmp_ok( $r->end, '==', 5.75, "End correct");
cmp_ok( $r->end_infinity, '==', 0, "Not using positive infinity");
cmp_ok( $r, 'eq', "5.75", "Stringification to simplification");
$expected = {
-1 => 1,
0 => 0,
4 => 0,
5.75 => 0,
5.7501 => 1,
6 => 1,
6.1 => 1,
79.999999 => 1,
};
test_expected( $r, $expected );
diag "range : negative infinity .. -95.99, inclusive" if $ENV{TEST_VERBOSE};
$r = Monitoring::Plugin::Range->parse_range_string("~:-95.99");
ok( defined $r, "'~:-95.99' is valid range");
cmp_ok( $r->start_infinity, '==', 1, "Using negative infinity");
cmp_ok( $r->end, '==', -95.99, "End correct");
cmp_ok( $r->end_infinity, '==', 0, "Not using positive infinity");
cmp_ok( $r, 'eq', "~:-95.99", "Stringification back to original");
$expected = {
-1001341 => 0,
-96 => 0,
-95.999 => 0,
( run in 1.151 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )