summaryrefslogtreecommitdiff
path: root/t/003_dump.t
blob: 02a61ad7f3bccdf54ddad830687eba17a8ed79bd (plain)
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
# -*- perl -*-

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

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");

if ($ENV{"DEVELOPER"}) {
  diag("Dump Level 1");
  diag($object->dump(1));
  diag("Dump Level default");
  diag($object->dump);
  diag("Dump Level 2");
  diag($object->dump(2));
  diag("Dump Level 3");
  diag($object->dump(3));
  diag("Dump Level 4");
  diag($object->dump(4));
  diag("Dump Level 0");
  diag($object->dump(0));
}

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

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