work in progress
[p5sagit/Data-Dumper-Concise.git] / t / concise.t
1 use strict;
2 use warnings;
3 use Data::Dumper ();
4 use Data::Dumper::Concise;
5 use Test::More qw(no_plan);
6 use Scalar::Util 'weaken';
7
8 my $dd = Data::Dumper->new([])
9                      ->Terse(1)
10                      ->Indent(1)
11                      ->Useqq(1)
12                      ->Deparse(1)
13                      ->Quotekeys(0)
14                      ->Sortkeys(1);
15
16 foreach my $to_dump (
17   [ { foo => "bar\nbaz", quux => sub { "fleem" }  } ],
18   [ 'one', 'two' ]
19 ) {
20
21   $dd->Values([ @$to_dump ]);
22
23   my $example = do {
24     local $Data::Dumper::Terse = 1;
25     local $Data::Dumper::Indent = 1;
26     local $Data::Dumper::Useqq = 1;
27     local $Data::Dumper::Deparse = 1;
28     local $Data::Dumper::Quotekeys = 0;
29     local $Data::Dumper::Sortkeys = 1;
30     Data::Dumper::Dumper(@$to_dump);
31   };
32
33   is($example, $dd->Dump, 'Both Data::Dumper usages equivalent');
34
35   is($example, Dumper(@$to_dump), 'Subroutine call usage equivalent');
36 }
37
38 my $out = DumperF { "arr: $_[0] str: $_[1]" } [qw(wut HALP)], "gnarl";
39 my $x = [1, 2];
40 my $z = $x;
41 my $y = weaken($x);
42 warn Dumper($y);
43 warn Dumper($x);
44 is($out, qq{arr: [\n  "wut",\n  "HALP"\n]\n str: "gnarl"\n}, 'DumperF works!');