# # $Id: 02-storable.t,v 0.3 2006/03/22 22:10:28 dankogai Exp $ # use strict; use Data::Dumper; use Test::More 'no_plan'; BEGIN{ use_ok('Tie::Storable') }; my $scalar = 7; my @array = qw(Sun Mon Tue Wed Thu Fri Sat); my %hash = map { $_ => 7 } @array; my $src; { tie my %dst => 'Tie::Storable', 'hash.po'; $src = { scalar => $scalar, array => [@array], hash=>{%hash} }; %dst = %{$src}; }{ tie my %dst => 'Tie::Storable', 'hash.po'; is_deeply(\%dst, $src, 'Tie::Storable - hash'); } { tie my @dst => 'Tie::Storable', 'array.po'; $src = [ $scalar, [@array], {%hash} ]; @dst = @{$src}; }{ tie my @dst => 'Tie::Storable', 'array.po'; is_deeply(\@dst, $src, 'Tie::Storable - array'); } { tie my $dst => 'Tie::Storable', 'scalar.po'; $src = $scalar; $dst = $src; }{ tie my $dst => 'Tie::Storable', 'scalar.po'; is_deeply($dst, $src, 'Tie::Storable - scalar'); } { tie my $dst => 'Tie::Storable', 'scalar.po'; $src = { scalar => $scalar, array => [@array], hash=>{%hash} }; bless $src, 'object'; $dst = $src; }{ tie my $dst => 'Tie::Storable', 'scalar.po'; is_deeply($dst, $src, 'Tie::Storable - object'); } { tie my $dst => 'Tie::Storable::More', 'scalar.po', 0666; $src = { scalar => $scalar, array => [@array], hash=>{%hash} }; $dst = $src; }{ tie my $dst => 'Tie::Storable::More', 'scalar.po', 0444; is_deeply($dst, $src, 'Tie::Storable::More'); eval{ $dst = '' }; ok($@, 'Tie::Storable::More - readonly'); } unlink 'hash.po', 'array.po', 'scalar.po';