X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fsugar.t;h=8c1dba003345c77525e1aca11bd522ebf53b556b;hb=452e7ff29c95f7771bf5efd31c24cfb6f2d7b2bb;hp=280f44d039596245f75488f0653fa3ab6b6dbdb5;hpb=884bc377c628147227def33cb6ec558dd9154b25;p=p5sagit%2FData-Dumper-Concise.git diff --git a/t/sugar.t b/t/sugar.t index 280f44d..8c1dba0 100644 --- a/t/sugar.t +++ b/t/sugar.t @@ -5,18 +5,57 @@ use Data::Dumper::Concise::Sugar; use Data::Dumper::Concise (); use Test::More qw(no_plan); -use Test::Warn; -my @foo; -warnings_like { - @foo = Dwarn 'warn', 'friend'; -} [qr/"warn"/,qr/friend/], "Dwarn warns"; +my $warned_string; -ok eq_array(\@foo, ['warn']), 'Dwarn passes through correctly'; +BEGIN { + $SIG{'__WARN__'} = sub { + $warned_string = $_[0] + } +} -my $bar; -warning_like { - $bar = DwarnS 'robot',2,3; -} qr{^"robot"$}, "DwarnS warns"; +DWARNL: { + my @foo = DwarnL 'warn', 'friend'; + is $warned_string,qq{"warn"\n"friend"\n}, 'DwarnL warns'; + + ok eq_array(\@foo, ['warn','friend']), 'DwarnL passes through correctly'; +} + +DWARNS: { + my $bar = DwarnS 'robot',2,3; + is $warned_string,qq{"robot"\n}, 'DwarnS warns'; + is $bar, 'robot', 'DwarnS passes through correctly'; +} + +DWARN: { + my @foo = Dwarn 'warn', 'friend'; + is $warned_string,qq{"warn"\n"friend"\n}, 'Dwarn warns lists'; + + ok eq_array(\@foo, ['warn','friend']), 'Dwarn passes lists through correctly'; + + my $bar = Dwarn 'robot',2,3; + is $warned_string,qq{"robot"\n}, 'Dwarn warns scalars correctly'; + is $bar, 'robot', 'Dwarn passes scalars through correctly'; +} + +DWARN_CODEREF: { + my $foo = ['warn', 'friend']->$Dwarn; + is $warned_string,qq{[\n "warn",\n "friend"\n]\n}, 'Dwarn warns lists'; + + ok eq_array($foo, ['warn','friend']), 'Dwarn passes lists through correctly'; +} + +DWARNN: { + my $loaded = eval { require Devel::ArgNames; 1 }; + if ($loaded) { + my $x = [1]; + my $foo = DwarnN $x; + is $warned_string, qq{\$x => [\n 1\n]\n}, 'DwarnN warns'; + + ok eq_array($foo, [1]), 'DwarnN passes through correctly'; + + DwarnN [1]; + is $warned_string, qq{(anon) => [\n 1\n]\n}, 'DwarnN warns'; + } +} -is $bar, 'robot', 'DwarnS passes through correctly';