use Test::More tests => 11;
#$Id: dogpound.t 26 2006-04-16 15:18:52Z demerphq $#
BEGIN { use_ok( 'Data::Dump::Streamer', qw(:undump) ); }
use strict;
use warnings;
use Data::Dumper;
# imports same()
(my $helper=$0)=~s/\w+\.\w+$/test_helper.pl/;
require $helper;
# use this one for simple, non evalable tests. (GLOB)
# same ( $got,$expected,$name,$obj )
#
# use this one for eval checks and dumper checks but NOT for GLOB's
# same ( $name,$obj,$expected,@args )
my $dump;
my $o = Data::Dump::Streamer->new();
{
our @dogs = ( 'Fido', 'Wags' );
our %kennel = (
First => \$dogs[0],
Second => \$dogs[1],
);
$dogs[2] = \%kennel;
our $mutts = \%kennel;
$mutts = $mutts; # avoid warning
same( "Dog Pound 1", $o->Declare(1), <<'EXPECT', ( \@dogs,\%kennel,$mutts ) );
my $ARRAY1 = [
'Fido',
'Wags',
'V: $HASH1'
];
my $HASH1 = {
First => \$ARRAY1->[0],
Second => \$ARRAY1->[1]
};
$ARRAY1->[2] = $HASH1;
my $HASH2 = $HASH1;
EXPECT
same( "Dog Pound 2",$o->Declare(1), <<'EXPECT', ( \%kennel,\@dogs,$mutts ) );
my $HASH1 = {
First => 'R: $ARRAY1->[0]',
Second => 'R: $ARRAY1->[1]'
};
my $ARRAY1 = [
'Fido',
'Wags',
$HASH1
];
$HASH1->{First} = \$ARRAY1->[0];
$HASH1->{Second} = \$ARRAY1->[1];
my $HASH2 = $HASH1;
EXPECT
same( "Dog Pound 3", $o->Declare(1), <<'EXPECT',( \%kennel,$mutts,\@dogs ));
my $HASH1 = {
First => 'R: $ARRAY1->[0]',
Second => 'R: $ARRAY1->[1]'
};
my $HASH2 = $HASH1;
my $ARRAY1 = [
'Fido',
'Wags',
$HASH1
];
$HASH1->{First} = \$ARRAY1->[0];
$HASH1->{Second} = \$ARRAY1->[1];
EXPECT
same( "Dog Pound 4", $o->Declare(1), <<'EXPECT',( $mutts,\%kennel,\@dogs ));
my $HASH1 = {
First => 'R: $ARRAY1->[0]',
Second => 'R: $ARRAY1->[1]'
};
my $HASH2 = $HASH1;
my $ARRAY1 = [
'Fido',
'Wags',
$HASH1
];
$HASH1->{First} = \$ARRAY1->[0];
$HASH1->{Second} = \$ARRAY1->[1];
EXPECT
same( "Dog Pound 5", $o->Declare(1), <<'EXPECT',( $mutts,\@dogs,\%kennel, ) );
my $HASH1 = {
First => 'R: $ARRAY1->[0]',
Second => 'R: $ARRAY1->[1]'
};
my $ARRAY1 = [
'Fido',
'Wags',
$HASH1
];
$HASH1->{First} = \$ARRAY1->[0];
$HASH1->{Second} = \$ARRAY1->[1];
my $HASH2 = $HASH1;
EXPECT
same( "Dog Pound 6", $o->Declare(0), <<'EXPECT',( \@dogs,\%kennel,$mutts ));
$ARRAY1 = [
'Fido',
'Wags',
'V: $HASH1'
];
$HASH1 = {
First => \$ARRAY1->[0],
Second => \$ARRAY1->[1]
};
$ARRAY1->[2] = $HASH1;
$HASH2 = $HASH1;
EXPECT
same( "Dog Pound 7", $o->Declare(0), <<'EXPECT',( \%kennel,\@dogs,$mutts ) );
$HASH1 = {
First => 'R: $ARRAY1->[0]',
Second => 'R: $ARRAY1->[1]'
};
$ARRAY1 = [
'Fido',
'Wags',
$HASH1
];
$HASH1->{First} = \$ARRAY1->[0];
$HASH1->{Second} = \$ARRAY1->[1];
$HASH2 = $HASH1;
EXPECT
same( "Dog Pound 8",$o->Declare(0), <<'EXPECT', ( \%kennel,$mutts,\@dogs ));
$HASH1 = {
First => 'R: $ARRAY1->[0]',
Second => 'R: $ARRAY1->[1]'
};
$HASH2 = $HASH1;
$ARRAY1 = [
'Fido',
'Wags',
$HASH1
];
$HASH1->{First} = \$ARRAY1->[0];
$HASH1->{Second} = \$ARRAY1->[1];
EXPECT
same( "Dog Pound 9", $o->Declare(0), <<'EXPECT',( $mutts,\%kennel,\@dogs ) );
$HASH1 = {
First => 'R: $ARRAY1->[0]',
Second => 'R: $ARRAY1->[1]'
};
$HASH2 = $HASH1;
$ARRAY1 = [
'Fido',
'Wags',
$HASH1
];
$HASH1->{First} = \$ARRAY1->[0];
$HASH1->{Second} = \$ARRAY1->[1];
EXPECT
same( "Dog Pound 10", $o->Declare(0), <<'EXPECT', ( $mutts,\@dogs,\%kennel, ) );
$HASH1 = {
First => 'R: $ARRAY1->[0]',
Second => 'R: $ARRAY1->[1]'
};
$ARRAY1 = [
'Fido',
'Wags',
$HASH1
];
$HASH1->{First} = \$ARRAY1->[0];
$HASH1->{Second} = \$ARRAY1->[1];
$HASH2 = $HASH1;
EXPECT
}
__END__
# with eval testing
{
same( "", $o, <<'EXPECT', ( ) );
}
# without eval testing
{
same( $dump = $o->Data()->Out, <<'EXPECT', "", $o );
EXPECT
}