File: 003_dump.t

package info (click to toggle)
libpackage-new-perl 0.09-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 100 kB
  • sloc: perl: 38; makefile: 2
file content (76 lines) | stat: -rw-r--r-- 1,645 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# -*- perl -*-

use strict;
use warnings;
use Test::More tests => 17;

BEGIN { use_ok( 'Package::New::Dump' ); }

my $object = Bar->new(one=>{two=>{three=>{four=>{}}}});
isa_ok($object, 'Bar');
isa_ok($object, 'Foo');
isa_ok($object, 'Package::New::Dump');
isa_ok($object, 'Package::New');

can_ok($object, qw{new initialize dump});
can_ok($object, qw{bar});
can_ok($object, qw{baz});
is($object->bar, "baz", "object method");
is(Bar->bar,     "baz", "class method");
is($object->baz, "buz", "object method");
is(Bar->baz,     "buz", "class method");

{
  my $dump = $object->dump(1);
  diag($dump);
  $dump =~ s/\s+//g; #white space compress
  $dump =~ s/0x[0-9a-f]+/XXX/;
  is($dump, q{$VAR1=bless({'one'=>'HASH(XXX)'},'Bar');});
}

{
  my $dump = $object->dump();
  diag($dump);
  $dump =~ s/\s+//g; #white space compress
  $dump =~ s/0x[0-9a-f]+/XXX/;
  is($dump, q{$VAR1=bless({'one'=>{'two'=>'HASH(XXX)'}},'Bar');});
}

{
  my $dump = $object->dump(undef);
  diag($dump);
  $dump =~ s/\s+//g; #white space compress
  $dump =~ s/0x[0-9a-f]+/XXX/;
  is($dump, q{$VAR1=bless({'one'=>{'two'=>'HASH(XXX)'}},'Bar');});
}

{
  my $dump = $object->dump(2);
  diag($dump);
  $dump =~ s/\s+//g; #white space compress
  $dump =~ s/0x[0-9a-f]+/XXX/;
  is($dump, q{$VAR1=bless({'one'=>{'two'=>'HASH(XXX)'}},'Bar');});
}

{
  my $dump = $object->dump(0);
  diag($dump);
  $dump =~ s/\s+//g; #white space compress
  is($dump, q{$VAR1=bless({'one'=>{'two'=>{'three'=>{'four'=>{}}}}},'Bar');});
}

{
  package #hide
  Foo;
  use base qw{Package::New::Dump};
  sub bar {"baz"};
  1;
}

{
  package #hide
  Bar;
  use base qw{Foo};
  sub baz {"buz"};
  1;
}