From d99718b876a472a72b5224fa967eb5ee60cd55fc Mon Sep 17 00:00:00 2001 From: doy Date: Wed, 26 Nov 2008 14:19:59 -0500 Subject: add a test for adding and removing channels and outputs --- t/001-channels-and-outputs.t | 47 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 t/001-channels-and-outputs.t (limited to 't/001-channels-and-outputs.t') diff --git a/t/001-channels-and-outputs.t b/t/001-channels-and-outputs.t new file mode 100644 index 0000000..1927b30 --- /dev/null +++ b/t/001-channels-and-outputs.t @@ -0,0 +1,47 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More tests => 1; +use Test::Deep; +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 => 'one_and_two', + min_level => 'debug'), + channels => [qw/1 2/]); + +for my $channel (1..3) { + isa_ok($logger->channel($channel), 'Log::Dispatch'); + isa_ok($logger->output($channel), 'Log::Dispatch::ToString'); +} + +isa_ok($logger->channel('1')->output('all'), 'Log::Dispatch::ToString'); +my $all_output = $logger->output('all'); +my $set = set(); +for my $channel (1..3) { + $set->add(shallow($logger->channel($channel)->output('all'))); +} +cmp_deeply([$all_output], $set, "output 'all' is shared between all channels"); + +is($logger->channel('3')->output('one_and_two'), undef, + "output 'one_and_two' isn't added to channel '3'"); + +$logger->remove('one_and_two'); +is($logger->channel('1')->output('one_and_two'), undef, + "output 'one_and_two' is gone from channel '1'"); +is($logger->channel('2')->output('one_and_two'), undef, + "output 'one_and_two' is gone from channel '2'"); +is($logger->output('one_and_two'), undef, + "output 'one_and_two' is gone after we remove it"); +$logger->remove_channel('1'); +is($logger->channel('1'), undef, + "channel '1' is gone after we remove it"); -- cgit v1.2.3-54-g00ecf