From 8bbf87a18a276f69a5db849f9f5f8f3aef6a05b5 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Thu, 5 Oct 2017 09:11:46 +1300 Subject: Fix new "monitoring" example, add test for it --- t/monitoring.t | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 t/monitoring.t (limited to 't/monitoring.t') diff --git a/t/monitoring.t b/t/monitoring.t new file mode 100644 index 0000000..42bcb69 --- /dev/null +++ b/t/monitoring.t @@ -0,0 +1,71 @@ +#!perl -T + +use strict; +use warnings; +use utf8; + +use Test::More tests => 1; + +use List::Breakdown 'breakdown'; + +our $VERSION = '0.11'; + +my @checks = ( + { + hostname => 'webserver1', + status => 'OK', + }, + { + hostname => 'webserver2', + status => 'CRITICAL', + }, + { + hostname => 'webserver3', + status => 'WARNING', + }, + { + hostname => 'webserver4', + status => 'OK', + }, +); + +my %buckets = ( + ok => sub { $_->{status} eq 'OK' }, + problem => { + warning => sub { $_->{status} eq 'WARNING' }, + critical => sub { $_->{status} eq 'CRITICAL' }, + unknown => sub { $_->{status} eq 'UNKNOWN' }, + }, +); + +my %results = breakdown \%buckets, @checks; + +my %expected = ( + ok => [ + { + hostname => 'webserver1', + status => 'OK', + }, + { + hostname => 'webserver4', + status => 'OK', + }, + ], + problem => { + warning => [ + { + hostname => 'webserver3', + status => 'WARNING', + }, + ], + critical => [ + { + hostname => 'webserver2', + status => 'CRITICAL', + }, + ], + unknown => [], + }, +); + +is_deeply( \%results, \%expected, 'monitoring' ); -- cgit v1.2.3