initial commit
[gitmo/MooseX-Types-Log-Dispatch.git] / t / types.t
CommitLineData
57aaab30 1
2use strict;
3use warnings;
4use Test::More tests => 5;
5use 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
31dies_ok {
32 TestMXTypesLogDispatch->new( event_log_level => 'debbbug', );
33} 'dies ok';
34
35lives_ok {
36 TestMXTypesLogDispatch->new( event_log_level => 'debug', );
37} 'lives ok';
38
39my $obj1;
40lives_ok {
41 $obj1 = TestMXTypesLogDispatch->new(
42 event_log_level => 'debug',
43 logger => [ outputs => [ ['Null', min_level => 'notice' ] ] ]
44 );
45} 'coerces ok';
46
47## or
48my $obj2;
49lives_ok {
50 $obj2 = TestMXTypesLogDispatch->new(
51 event_log_level => 'warn',
52 logger => { outputs => [ ['Null', min_level => 'debug' ] ] }
53 );
54} 'coerces ok';
55
56lives_ok {
57 $obj1->some_event_happened('zoom');
58 $obj2->some_event_happened('zoom');
59} 'logging actually works';