#!/usr/bin/perl use strict; use warnings; use Log::Log4perl; # do some setup here...honest guv use Test::More tests => 9; use Test::Builder::Tester; use Test::Log4perl; use Test::Exception; my $logger = Log::Log4perl->get_logger("Foo"); my $tlogger = Test::Log4perl->get_logger("Foo"); my $t2logger = Test::Log4perl->get_logger("Bar"); ######################################################## test_out("ok 1 - Log4perl test"); Test::Log4perl->start(); $tlogger->error("my hair is on fire!"); $logger->error("my hair is on fire!"); Test::Log4perl->end(); test_test("basic ok test"); ######################################################## test_out("not ok 1 - Log4perl test"); test_fail(+6); test_diag("Unexpected error of type 'Foo':"); test_diag(" 'my hair is on fire!'"); Test::Log4perl->start(); $logger->error("my hair is on fire!"); Test::Log4perl->end(); test_test("not expecting anything"); ######################################################## test_out("not ok 1 - Log4perl test"); test_fail(+7); test_diag("Ended logging run, but still expecting 1 more log(s)"); test_diag("Expecting error of type 'Foo' next:"); test_diag(" 'my hair is on fire!'"); Test::Log4perl->start(); $tlogger->error("my hair is on fire!"); Test::Log4perl->end(); test_test("expecting but not getting anything"); ######################################################## test_out("not ok 1 - Log4perl test"); test_fail(+9); test_diag("1st message logged wasn't what we expected:"); test_diag(" message was 'your hair is on fire!'"); test_diag(" not 'my hair is on fire!'"); test_diag(" (Offending log call from line ".(__LINE__+4)." in ".filename().")"); Test::Log4perl->start(); $tlogger->error("my hair is on fire!"); $logger->error("your hair is on fire!"); Test::Log4perl->end(); test_test("getting wrong message"); ######################################################## test_out("not ok 1 - Log4perl test"); test_fail(+9); test_diag("1st message logged wasn't what we expected:"); test_diag(" priority was 'warn'"); test_diag(" not 'error'"); test_diag(" (Offending log call from line ".(__LINE__+4)." in ".filename().")"); Test::Log4perl->start(); $tlogger->error("my hair is on fire!"); $logger->warn("my hair is on fire!"); Test::Log4perl->end(); test_test("getting wrong priority"); ######################################################## test_out("not ok 1 - Log4perl test"); test_fail(+9); test_diag("1st message logged wasn't what we expected:"); test_diag(" category was 'Foo'"); test_diag(" not 'Bar'"); test_diag(" (Offending log call from line ".(__LINE__+4)." in ".filename().")"); Test::Log4perl->start(); $t2logger->error("my hair is on fire!"); $logger->error("my hair is on fire!"); Test::Log4perl->end(); test_test("getting wrong category"); ######################################################## test_out("not ok 1 - Log4perl test"); test_fail(+13); test_diag("1st message logged wasn't what we expected:"); test_diag(" category was 'Foo'"); test_diag(" not 'Bar'"); test_diag(" priority was 'warn'"); test_diag(" not 'error'"); test_diag(" message was 'your hair is on fire!'"); test_diag(" not 'my hair is on fire!'"); test_diag(" (Offending log call from line ".(__LINE__+4)." in ".filename().")"); Test::Log4perl->start(); $t2logger->error("my hair is on fire!"); $logger->warn("your hair is on fire!"); Test::Log4perl->end(); test_test("getting it all wrong"); ######################################################## Test::Log4perl->start(); $tlogger->fatal("my hair is on fire!"); throws_ok { $logger->logdie("my hair is on fire!"); } qr/my hair is on fire!/, "logdie dies"; test_out("ok 1 - Log4perl test"); Test::Log4perl->end(); test_test("logdie"); ################################## ################################## sub filename { return (caller)[1]; }