[Nagiosplug-checkins] Nagios-Plugin/t Nagios-Plugin-04.t,NONE,1.1

Nathan Vonnahme n8v at users.sourceforge.net
Mon Dec 18 23:45:52 CET 2006

Update of /cvsroot/nagiosplug/Nagios-Plugin/t
In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv17322/t

Added Files:
Log Message:
Add t/Nagios-Plugin-04.t, which tests top level Getopt and Threshold methods

--- NEW FILE: Nagios-Plugin-04.t ---

# tests for toplevel access to Threshold and GetOpts stuff
# $Id: Nagios-Plugin-04.t,v 1.1 2006/12/18 22:45:49 n8v Exp $

use strict;
#use Test::More 'no_plan';
use Test::More tests=>26;
use Test::Exception;

BEGIN { use_ok('Nagios::Plugin') };
use Nagios::Plugin::Functions;

lives_ok sub { my $broke = Nagios::Plugin->new(); }, "constructor DOESN'T die without usage";

my $p = Nagios::Plugin->new();
dies_ok sub { $p->add_arg('warning', 'warning') }, "add_arg() dies if you haven't instantiated with usage";
dies_ok sub { $p->getopts }, "getopts()  dies if you haven't instantiated with usage";

$p = Nagios::Plugin->new( usage => "dummy usage statement" );

# option accessors work
can_ok $p, 'opts';
isa_ok $p->opts, 'Nagios::Plugin::Getopt', "Getopt object is defined";

$p->add_arg('warning|w=s', "warning");
$p->add_arg('critical|c=s', "critical");

@ARGV = qw(-w 5 -c 10);
is $p->opts->warning, "5", "warning opt is accessible";
is $p->opts->critical, "10", "critical opt is accessible";

can_ok $p, 'perfdata';
#isa_ok $p->perfdata, 'Nagios::Plugin::Performance', "perfdata object is defined";

can_ok $p, 'threshold';
#isa_ok $p->threshold, 'Nagios::Plugin::Threshold', "threshold object is defined";

dies_ok sub { $p->check_threshold() }, "check_threshold dies if called with no args";

# thresholds set implicitly
is $p->check_threshold(2), OK, "check_threshold OK when called implicitly";
is $p->check_threshold(6), WARNING, "check_threshold WARNING";
is $p->check_threshold(11), CRITICAL, "check_threshold CRITICAL";
is $p->check_threshold(check=>11), CRITICAL, "check_threshold CRITICAL with hash param";

# thresholds set explicitly
is $p->check_threshold(
					   check    => 2, 
					   warning  => 50,
					   critical => 100
), OK, "check_threshold explicit OK";

is $p->check_threshold(
					   check    => 66, 
					   warning  => 50,
					   critical => 100
), WARNING, "check_threshold explicit WARNING";

is $p->check_threshold(
					   check    => -1, 
					   warning  => 5,
					   critical => '0:5',
), CRITICAL, "check_threshold explicit CRITICAL";

# what happens if you forget to define warning or critical thresholds?
$p = undef;
$p = Nagios::Plugin->new();

is $p->check_threshold(2), UNKNOWN, "everything is now UNKNOWN";
is $p->check_threshold(-200), UNKNOWN, "everything is now UNKNOWN";
is $p->check_threshold(134098.3124), UNKNOWN, "everything is now UNKNOWN";
is $p->check_threshold("foo bar baz"), UNKNOWN, "everything is now UNKNOWN";

# how about when you define just one?

$p->set_thresholds(warning => "10:25");
is $p->check_threshold(2), WARNING, "check_threshold works (WARNING) after explicit set_thresholds";
is $p->check_threshold(-200), WARNING, "and again";
is $p->check_threshold(25.5), WARNING, "and again";
is $p->check_threshold(11), OK, "now OK";

More information about the Commits mailing list