#============================================================= -*-perl-*-
#
# t/log/reporter.t
#
# Test the Badger::Reporter module, a new base class for Badger::Log,
# Badger::Test::Manager, and maybe a few other things.
#
# Copyright (C) 2005-2008 Andy Wardley. All Rights Reserved.
#
# This is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
#
#========================================================================
use strict;
use warnings;
use lib qw( ./lib ../lib ../../lib );
use Badger::Test
skip => 'Still in development',
tests => 40,
debug => 'Badger::Reporter',
args => \@ARGV;
use Badger::Reporter;
use constant REPORTER => 'Badger::Reporter';
pass( 'Loaded ' . REPORTER );
my $reporter = REPORTER->new(
events => [
{ name => 'foo',
colour => 'green',
message => 'FOO: %s',
summary => '%s foo events',
verbose => 0,
},
'bar'
],
);
$reporter->foo('the foo happened');
$reporter->foo('the foo happened again');
$reporter->bar('the bar happened');
$reporter->bar('the bar happened again');
print $reporter->summary;
#-----------------------------------------------------------------------
# subclass
#-----------------------------------------------------------------------
package My::Reporter;
use base 'Badger::Reporter';
our $EVENTS = [
{
name => 'wiz',
colour => 'green',
message => 'WIZ: %s',
summary => '%s wizzy wiz events',
verbose => 1,
},
{
name => 'waz',
colour => 'red',
message => 'WAZ: %s',
summary => '%s wazzy waz events',
verbose => 1,
},
];
our $MESSAGES = {
missing => 'You forget to bring the %s',
};
package main;
print "\n\n";
my $reporter = My::Reporter->new( verbose => 1 );
$reporter->wiz('number one');
$reporter->waz('number two');
$reporter->wiz('buckle');
$reporter->waz('my shoe');
$reporter->wiz_msg( missing => 'wizzyment' );
$reporter->waz_msg( missing => 'wazzyment' );