v0.006004
[p5sagit/Log-Contextual.git] / t / dlog.t
index 177d21f..d795c4f 100644 (file)
--- a/t/dlog.t
+++ b/t/dlog.t
@@ -1,29 +1,51 @@
 use strict;
 use warnings;
 
-use lib 't/lib';
-use VarLogger;
+use Log::Contextual::SimpleLogger;
 use Test::More 'no_plan';
+my $var_log;
+my $var;
 
-use Log::Contextual qw{:dlog set_logger};
-
-my $var_log =  VarLogger->new;
-
-set_logger(sub { $var_log });
-my @foo = Dlog_debug { "Look ma, data: $_" } qw{frew bar baz};
-ok( eq_array(\@foo, [qw{frew bar baz}]), 'Dlog_debug passes data through correctly');
-is( $var_log->var, <<'OUT', 'Output for Dlog_debug is correct');
-dLook ma, data: "frew"
-"bar"
-"baz"
-OUT
-my $bar = DlogS_debug { "Look ma, data: $_" } [qw{frew bar baz}];
-ok( eq_array($bar, [qw{frew bar baz}]), 'DlogS_debug passes data through correctly');
-is( $var_log->var, <<'OUT', 'Output for DlogS_debug is correct');
-dLook ma, data: [
-  "frew",
-  "bar",
-  "baz"
-]
-OUT
+my @levels = qw(debug trace warn info error fatal);
+
+BEGIN {
+   $var_log = Log::Contextual::SimpleLogger->new({
+         levels  => [qw(trace debug info warn error fatal)],
+         coderef => sub { $var = shift }
+      })
+}
+
+use Log::Contextual qw{:dlog}, -logger => $var_log;
+
+for my $level (@levels) {
+
+   my @foo =
+     main->can("Dlog_$level")->(sub { "Look ma, data: $_" }, qw{frew bar baz});
+   ok(
+      eq_array(\@foo, [qw{frew bar baz}]),
+      "Dlog_$level passes data through correctly"
+   );
+   is(
+      $var,
+      qq([$level] Look ma, data: "frew"\n"bar"\n"baz"\n),
+      "Output for Dlog_$level is correct"
+   );
+
+   my $bar =
+     main->can("DlogS_$level")
+     ->(sub { "Look ma, data: $_" }, [qw{frew bar baz}]);
+   ok(
+      eq_array($bar, [qw{frew bar baz}]),
+      'DlogS_trace passes data through correctly'
+   );
+   is(
+      $var,
+      qq([$level] Look ma, data: [\n  "frew",\n  "bar",\n  "baz"\n]\n),
+      "Output for DlogS_$level is correct"
+   );
+
+   @foo = main->can("Dlog_$level")->(sub { "nothing: $_" }, ());
+   ok(eq_array(\@foo, []), "Dlog_$level passes nothing through correctly");
+   is($var, "[$level] nothing: ()\n", "Output for Dlog_$level is correct");
+}