xref: /openbsd-src/gnu/usr.bin/perl/dist/Data-Dumper/t/names.t (revision 256a93a44f36679bee503f12e49566c2183f6181)
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