summaryrefslogtreecommitdiff
path: root/t/015fltmsg.t
diff options
context:
space:
mode:
Diffstat (limited to 't/015fltmsg.t')
-rw-r--r--t/015fltmsg.t120
1 files changed, 120 insertions, 0 deletions
diff --git a/t/015fltmsg.t b/t/015fltmsg.t
new file mode 100644
index 0000000..928403f
--- /dev/null
+++ b/t/015fltmsg.t
@@ -0,0 +1,120 @@
+###########################################
+# Test Suite for Log::Log4perl
+# warp_message cases
+# Mike Schilli, 2003 (m@perlmeister.com)
+###########################################
+
+BEGIN {
+ if($ENV{INTERNAL_DEBUG}) {
+ require Log::Log4perl::InternalDebug;
+ Log::Log4perl::InternalDebug->enable();
+ }
+}
+
+#########################
+# change 'tests => 1' to 'tests => last_test_to_print';
+#########################
+use Test::More tests => 5;
+
+use Log::Log4perl;
+use Log::Log4perl::Appender::TestBuffer;
+
+my $EG_DIR = "eg";
+$EG_DIR = "../eg" unless -d $EG_DIR;
+
+######################################################################
+# warp_message undef: Concatenation
+######################################################################
+Log::Log4perl->init( \ <<EOT );
+ log4perl.rootLogger=DEBUG, A1
+ log4perl.appender.A1=Log::Log4perl::Appender::TestBuffer
+ log4perl.appender.A1.layout=PatternLayout
+ log4perl.appender.A1.layout.ConversionPattern=%m%n
+EOT
+
+my $app = Log::Log4perl::Appender::TestBuffer->by_name("A1");
+my $logger = Log::Log4perl->get_logger("");
+$logger->debug("Chunk1", "Chunk2", "Chunk3");
+
+is($app->buffer(), "Chunk1Chunk2Chunk3\n", "warp_message undef");
+
+######################################################################
+# warp_message undef: Concatenation plus JOIN_MSG_ARRAY_CHAR
+######################################################################
+Log::Log4perl->init( \ <<EOT );
+ log4perl.rootLogger=DEBUG, A1
+ log4perl.appender.A1=Log::Log4perl::Appender::TestBuffer
+ log4perl.appender.A1.layout=PatternLayout
+ log4perl.appender.A1.layout.ConversionPattern=%m%n
+EOT
+
+$Log::Log4perl::JOIN_MSG_ARRAY_CHAR = "bang!";
+
+$app = Log::Log4perl::Appender::TestBuffer->by_name("A1");
+$logger = Log::Log4perl->get_logger("");
+$logger->debug("Chunk1", "Chunk2", "Chunk3");
+
+is($app->buffer(), "Chunk1bang!Chunk2bang!Chunk3\n",
+ "warp_message undef (JOIN_MSG_ARRAY_CHAR)");
+
+$Log::Log4perl::JOIN_MSG_ARRAY_CHAR = ""; # back to default
+
+######################################################################
+# warp_message 0
+######################################################################
+Log::Log4perl->init( \ <<EOT );
+ log4perl.rootLogger=DEBUG, A1
+ log4perl.appender.A1=Log::Log4perl::Appender::TestArrayBuffer
+ log4perl.appender.A1.layout=NoopLayout
+ log4perl.appender.A1.warp_message=0
+EOT
+
+$app = Log::Log4perl::Appender::TestArrayBuffer->by_name("A1");
+$logger = Log::Log4perl->get_logger("");
+$logger->debug("Chunk1", "Chunk2", "Chunk3");
+
+is($app->buffer(), "[Chunk1,Chunk2,Chunk3]",
+ "warp_message 0 (NoopLayout)");
+
+######################################################################
+# warp_message = code ref
+######################################################################
+Log::Log4perl->init( \ <<'EOT' );
+ log4perl.rootLogger=DEBUG, A1
+ log4perl.appender.A1=Log::Log4perl::Appender::TestArrayBuffer
+ log4perl.appender.A1.layout=NoopLayout
+ log4perl.appender.A1.warp_message = sub { $#_ = 2 if @_ > 3; \
+ return @_; }
+EOT
+
+$app = Log::Log4perl::Appender::TestArrayBuffer->by_name("A1");
+$logger = Log::Log4perl->get_logger("");
+$logger->debug("Chunk1", "Chunk2", "Chunk3", "Chunk4");
+
+is($app->buffer(), "[Chunk1,Chunk2,Chunk3]",
+ "warp_message = function (by cref)");
+
+
+######################################################################
+# warp_message = function
+######################################################################
+my $COUNTER = 0;
+sub warp_my_message {
+ my @chunks = @_;
+ unshift @chunks, ++$COUNTER;
+ return @chunks;
+}
+
+Log::Log4perl->init( \ <<'EOT' );
+ log4perl.rootLogger=DEBUG, A1
+ log4perl.appender.A1=Log::Log4perl::Appender::TestArrayBuffer
+ log4perl.appender.A1.layout=NoopLayout
+ log4perl.appender.A1.warp_message = main::warp_my_message
+EOT
+
+$app = Log::Log4perl::Appender::TestArrayBuffer->by_name("A1");
+$logger = Log::Log4perl->get_logger("");
+$logger->debug("Chunk1", "Chunk2", "Chunk3");
+
+is($app->buffer(), "[1,Chunk1,Chunk2,Chunk3]",
+ "warp_message = function (by name)");