The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#perl -T 

use Test::More no_plan => 1;

BEGIN { use_ok('Data::Dumper::Again'); }

{
my $dumper = Data::Dumper::Again->new;
isa_ok($dumper, 'Data::Dumper::Again');

my $s = $dumper->dump(1);
is ($s, "\$VAR = 1;\n", q{dump(1) returns "\$VAR = 1;\n"});

my $s2 = $dumper->dump(1, 2);
my $expected2 = <<'DUMP';
@VAR = (
         1,
         2
       );
DUMP
is ($s2, $expected2, q{dump(1, 2) returns "\@VAR = (1, 2)\n"});

my $s3 = $dumper->dump(); # the empty list edge case
is ($s3, "\@VAR = ();\n", q{dump(1, 2) returns "\@VAR = ()\n"});

# don't remember seen data structures between dump invocations, 
# at least by default
my $var = [ qw(a b) ];

is($dumper->dump($var), <<'DUMP', 'dumping an array ref');
$VAR = [
         'a',
         'b'
       ];
DUMP
my $var2 = [ $var, qw(c) ];
is($dumper->dump($var2), <<'DUMP', 'dumping an array ref, containing the former');
$VAR = [
         [
           'a',
           'b'
         ],
         'c'
       ];
DUMP

}