1#============================================================= -*-perl-*- 2# 3# t/core/dump.t 4# 5# Test the Badger::Debug module. 6# 7# Written by Andy Wardley <abw@wardley.org> 8# 9# This is free software; you can redistribute it and/or modify it 10# under the same terms as Perl itself. 11# 12#======================================================================== 13 14use strict; 15use warnings; 16 17use lib qw( ./lib ../lib ../../lib t/core/lib ); 18use Badger::Debug; 19use Badger::Base; 20use Badger::Test 21 tests => 1, 22 debug => 'Badger::Debug', 23 args => \@ARGV; 24 25 26 27#----------------------------------------------------------------------- 28# test dump methods 29#----------------------------------------------------------------------- 30 31package My::Badger::Base; 32use base 'Badger::Base'; 33use Badger::Debug ':debug :dump'; 34 35sub init{ 36 my ($self, $config) = @_; 37 @$self{ keys %$config } = values %$config; 38 return $self; 39} 40 41package My::Badger::One; 42use base 'My::Badger::Base'; 43use Badger::Debug dumps => 'x y'; 44 45sub init{ 46 my ($self, $config) = @_; 47 @$self{ keys %$config } = values %$config; 48 return $self; 49} 50 51package My::Badger::Two; 52use base 'My::Badger::Base'; 53 54sub NOT_dumper { 55 my ($self, $indent) = @_; 56 $self->dump_hash($self,$indent,'-hidden'); 57} 58 59package My::Badger::Tre; 60use base 'My::Badger::Base'; 61use Badger::Debug ':dump'; 62 63package main; 64 65my $one = My::Badger::One->new( x => 10, y => 20, secret => 'password' ); 66my $two = My::Badger::Two->new( pi => 3.142, e => 2.718, one => $one, hidden => 'treasure' ); 67my $tre = My::Badger::Tre->new( 68 two => $two, 69 person => { 70 name => 'Arthur Dent', 71 email => 'dent@tt2.org', 72 }, 73 products => ['widget123', 'doodah99'], 74); 75 76my $text = $tre->dump; 77#print $text; 78like( $text, qr/one => \{\s+x => 10,\s+y => 20\s+\}/, 'partial dump of one' ); 79