Use Trailingcomma option when available (RT#114609)
[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
7 my $dd = Data::Dumper->new([])
8                      ->Terse(1)
9                      ->Indent(1)
10                      ->Useqq(1)
11                      ->Deparse(1)
12                      ->Quotekeys(0)
13                      ->Sortkeys(1);
14 $dd->Trailingcomma(1) if $dd->can('Trailingcomma');
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     no warnings 'once'; # in case Trailingcomma option is unknown in this DD
31     local $Data::Dumper::Trailingcomma = 1;
32     Data::Dumper::Dumper(@$to_dump);
33   };
34
35   is($example, $dd->Dump, 'Both Data::Dumper usages equivalent');
36
37   is($example, Dumper(@$to_dump), 'Subroutine call usage equivalent');
38 }
39
40 my $out = DumperF { "arr: $_[0] str: $_[1]" } [qw(wut HALP)], "gnarl";
41
42 like($out, qr{^arr: \[\n  "wut",\n  "HALP",?\n\]\n str: "gnarl"\n\z}, 'DumperF works!');
43
44 like(Dumper([1..3]), qr/,\s*]\s*$/, 'trailing comma enabled')
45     if $dd->can('Trailingcomma');