1#!perl -w 2 3use strict; 4use Test qw(plan ok); 5plan tests => 39; 6 7use Data::Dump qw(dumpf); 8 9ok(dumpf("foo", sub { return { dump => "x" }}), 'x'); 10ok(dumpf("foo", sub { return { object => "x" }}), '"x"'); 11ok(dumpf("foo", sub { return { comment => "x" }}), "# x\n\"foo\""); 12ok(dumpf({}, sub { return { bless => "x"}}), "bless({}, \"x\")"); 13ok(dumpf({a => 1, b => 2}, sub { return { hide_keys => ["b"] }}), "{ a => 1 }"); 14ok(dumpf("foo", sub { return }), '"foo"'); 15 16my $cb_count = 0; 17ok(dumpf("foo", sub { 18 my($ctx, $obj) = @_; 19 $cb_count++; 20 ok($$obj, "foo"); 21 ok($ctx->object_ref, $obj); 22 ok($ctx->class, ""); 23 ok(!$ctx->object_isa("SCALAR")); 24 ok($ctx->container_class, ""); 25 ok(!$ctx->container_isa("SCALAR")); 26 ok($ctx->container_self, ""); 27 ok(!$ctx->is_ref); 28 ok(!$ctx->is_blessed); 29 ok(!$ctx->is_array); 30 ok(!$ctx->is_hash); 31 ok( $ctx->is_scalar); 32 ok(!$ctx->is_code); 33 ok($ctx->depth, 0); 34 return; 35}), '"foo"'); 36ok($cb_count, 1); 37 38$cb_count = 0; 39ok(dumpf(bless({ a => 1, b => bless {}, "Bar"}, "Foo"), sub { 40 my($ctx, $obj) = @_; 41 $cb_count++; 42 return unless $ctx->object_isa("Bar"); 43 ok(ref($obj), "Bar"); 44 ok($ctx->object_ref, $obj); 45 ok($ctx->class, "Bar"); 46 ok($ctx->object_isa("Bar")); 47 ok(!$ctx->object_isa("Foo")); 48 ok($ctx->container_class, "Foo"); 49 ok($ctx->container_isa("Foo")); 50 ok($ctx->container_self, '$self->{b}'); 51 ok($ctx->is_ref); 52 ok($ctx->is_blessed); 53 ok(!$ctx->is_array); 54 ok($ctx->is_hash); 55 ok(!$ctx->is_scalar); 56 ok(!$ctx->is_code); 57 ok($ctx->depth, 1); 58 return; 59}) =~ /^bless\(.*, "Foo"\)\z/); 60ok($cb_count, 3); 61