#!/usr/bin/perl -w
use strict;
use Test::More qw(no_plan);
use Test::NoWarnings;
use Scalar::Util qw(blessed);
use lib qw( ../lib ./lib );
use Data::Dumper;
#$Data::Dumper::Maxdepth = 2;
#$Data::Dumper::Deparse = 1;
eval { chdir('t') };
use Nagios::Config;
my $config = Nagios::Object::Config->new();
$config->parse('nestedtemplates.cfg');
# this test verifies that the correct template name is being returned
foreach my $template ( $config->list_hosts ) {
# get the names of the template and its parent for diagnostic output
my $tname = $template->name;
my $pname = $template->use || 'undefined';
$pname = $pname->name if ( blessed $tname );
my $message = "$pname isn't $tname (template name/object name)";
# test!
isnt( $template->use, $template->name, $message );
}
# now verify that object values are being returned properly with and
# without inheritance
# Note: these tests rely on the exact data in nestedtemplates.cfg
my $generic = $config->find_object( 'generic-service', 'Nagios::Service' );
my $perfdata = $config->find_object( 'perfdata-only', 'Nagios::Service' );
isnt( $generic->name, $perfdata->name, "check template names" );
isnt(
$generic->flap_detection_enabled,
$perfdata->flap_detection_enabled,
"check a value that should not be inherited"
);
is( $perfdata->retry_check_interval,
$generic->retry_check_interval,
"check a value that should be inherited"
);
#warn Dumper( $perfdata );
#warn $generic->dump;
#warn $perfdata->dump;