first cut
[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
15 my $dd_c = Dumper;
16
17 my $to_dump = { foo => "bar\nbaz", quux => sub { "fleem" } };
18
19 $dd_c->Values([ $to_dump ]);
20 $dd->Values([ $to_dump ]);
21
22 my $example = do {
23   local $Data::Dumper::Terse = 1;
24   local $Data::Dumper::Indent = 1;
25   local $Data::Dumper::Useqq = 1;
26   local $Data::Dumper::Deparse = 1;
27   local $Data::Dumper::Quotekeys = 0;
28   local $Data::Dumper::Sortkeys = 1;
29   Data::Dumper::Dumper($to_dump);
30 };
31
32 is($example, $dd->Dump, 'Both Data::Dumper usages equivalent');
33
34 is($example, $dd_c->Dump, 'Returned object usage equivalent');
35
36 is($example, Dumper($to_dump), 'Subroutine call usage equivalent');
37
38 ok(!eval { Dumper(1); 1 }, 'Non-ref call dies');
39
40 ok(!eval { Dumper({}, {}); 1 }, 'Multi-ref call dies');