1#!./perl -w 2 3use strict; 4use warnings; 5 6use Carp; 7use Data::Dumper; 8use Test::More tests => 15; 9use lib qw( ./t/lib ); 10use Testing qw( _dumptostr ); 11 12my ($a, $b, $obj); 13my (@names); 14my (@newnames, $objagain, %newnames); 15my $dumpstr; 16$a = 'alpha'; 17$b = 'beta'; 18 19$obj = Data::Dumper->new([$a,$b], [qw(a b)]); 20@names = $obj->Names; 21is_deeply(\@names, [qw(a b)], "Names() returned expected list"); 22 23@newnames = ( qw| gamma delta | ); 24$objagain = $obj->Names(\@newnames); 25is($objagain, $obj, "Names returned same object"); 26is_deeply($objagain->{names}, \@newnames, 27 "Able to use Names() to set names to be dumped"); 28 29$obj = Data::Dumper->new([$a,$b], [qw(a b)]); 30%newnames = ( gamma => 'delta', epsilon => 'zeta' ); 31eval { @names = $obj->Names(\%newnames); }; 32like($@, qr/Argument to Names, if provided, must be array ref/, 33 "Got expected error message: bad argument to Names()"); 34 35$obj = Data::Dumper->new([$a,$b], [qw(a b)]); 36@newnames = ( qw| gamma delta epsilon | ); 37$objagain = $obj->Names(\@newnames); 38is($objagain, $obj, "Names returned same object"); 39is_deeply($objagain->{names}, \@newnames, 40 "Able to use Names() to set names to be dumped"); 41$dumpstr = _dumptostr($obj); 42like($dumpstr, qr/gamma/s, "Got first name expected"); 43like($dumpstr, qr/delta/s, "Got first name expected"); 44unlike($dumpstr, qr/epsilon/s, "Did not get name which was not expected"); 45 46$obj = Data::Dumper->new([$a,$b], [qw(a b)]); 47@newnames = ( qw| gamma | ); 48$objagain = $obj->Names(\@newnames); 49is($objagain, $obj, "Names returned same object"); 50is_deeply($objagain->{names}, \@newnames, 51 "Able to use Names() to set names to be dumped"); 52$dumpstr = _dumptostr($obj); 53like($dumpstr, qr/gamma/s, "Got name expected"); 54unlike($dumpstr, qr/delta/s, "Did not get name which was not expected"); 55unlike($dumpstr, qr/epsilon/s, "Did not get name which was not expected"); 56like($dumpstr, qr/\$VAR2/s, "Got default name"); 57 58