From c61f658facb82d10f3624d21f062d6c91db546f3 Mon Sep 17 00:00:00 2001 From: doy Date: Wed, 26 Nov 2008 16:01:51 -0500 Subject: add logging test --- t/002-logging.t | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 t/002-logging.t diff --git a/t/002-logging.t b/t/002-logging.t new file mode 100644 index 0000000..816f69f --- /dev/null +++ b/t/002-logging.t @@ -0,0 +1,51 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use lib 't/lib'; +use Test::More tests => 6; +use Log::Dispatch::Channels; +use Log::Dispatch::ToString; + +my $logger = Log::Dispatch::Channels->new; +for my $channel (1..3) { + $logger->add_channel($channel); + $logger->add(Log::Dispatch::ToString->new(name => $channel, + min_level => 'debug'), + channels => $channel); +} + +$logger->add(Log::Dispatch::ToString->new(name => 'all', + min_level => 'debug')); +$logger->add(Log::Dispatch::ToString->new(name => 'error', + min_level => 'error')); +$logger->add(Log::Dispatch::ToString->new(name => 'one_and_two', + min_level => 'info'), + channels => [qw/1 2/]); + +my @messages = ( + "only channel 1\n", + "it's an error\n", + "debugging 3\n", + "channels 1 and 3\n", + "everywhere\n", +); +my %should_get = ( + 1 => [qw/0 3 4/], + 2 => [qw/1 4/], + 3 => [qw/2 3 4/], + all => [qw/0 1 2 3 3 4 4 4/], + error => [qw/1 2/], + one_and_two => [qw/1 3/], +); + +$logger->log(channels => 1, message => $messages[0], level => 'debug'); +$logger->log(channels => 2, message => $messages[1], level => 'error'); +$logger->log(channels => 3, message => $messages[2], level => 'error'); +$logger->log(channels => [qw/1 3/], message => $messages[3], level => 'info'); +$logger->log( message => $messages[4], level => 'debug'); + +for my $output (keys %should_get) { + my $log = join '', map { $messages[$_] } @{ $should_get{$output} }; + is($logger->output($output)->get_string, $log, + "output $output received the correct logging calls"); +} -- cgit v1.2.3-54-g00ecf