Commit | Line | Data |
57aaab30 |
1 | |
2 | use strict; |
3 | use warnings; |
4 | use Test::More tests => 5; |
5 | use Test::Exception; |
6 | |
7 | #laziest test suite EVER. but it works and whatever its a brain-dead simple module |
8 | |
9 | { |
10 | package TestMXTypesLogDispatch; |
11 | use Moose; |
12 | use MooseX::Types::Log::Dispatch qw(Logger LogLevel); |
13 | |
14 | has logger => ( |
15 | isa => Logger, |
16 | is => 'ro', |
17 | coerce => 1, |
18 | ); |
19 | |
20 | has event_log_level => ( |
21 | isa => LogLevel, |
22 | is => 'ro', |
23 | ); |
24 | |
25 | sub some_event_happened { |
26 | my ($self, $event) = @_; |
27 | $self->logger->log( level => $self->event_log_level, message => "$event happened"); |
28 | } |
29 | } |
30 | |
31 | dies_ok { |
32 | TestMXTypesLogDispatch->new( event_log_level => 'debbbug', ); |
33 | } 'dies ok'; |
34 | |
35 | lives_ok { |
36 | TestMXTypesLogDispatch->new( event_log_level => 'debug', ); |
37 | } 'lives ok'; |
38 | |
39 | my $obj1; |
40 | lives_ok { |
41 | $obj1 = TestMXTypesLogDispatch->new( |
42 | event_log_level => 'debug', |
43 | logger => [ outputs => [ ['Null', min_level => 'notice' ] ] ] |
44 | ); |
45 | } 'coerces ok'; |
46 | |
47 | ## or |
48 | my $obj2; |
49 | lives_ok { |
50 | $obj2 = TestMXTypesLogDispatch->new( |
51 | event_log_level => 'warn', |
52 | logger => { outputs => [ ['Null', min_level => 'debug' ] ] } |
53 | ); |
54 | } 'coerces ok'; |
55 | |
56 | lives_ok { |
57 | $obj1->some_event_happened('zoom'); |
58 | $obj2->some_event_happened('zoom'); |
59 | } 'logging actually works'; |