use Test::Exception;
use Test::Deep;
+use Test::Requires {
+ 'Digest' => 0.01, # skip all if not installed
+ 'Digest::SHA1' => 0.01,
+ 'JSON::Any' => 0.01,
+};
+
BEGIN {
- eval "use Digest; use Digest::SHA1";
- plan skip_all => "Digest and Digest::SHA1 is required for this test" if $@;
- eval "use JSON::Any";
- plan skip_all => "JSON::Any is required for this test" if $@;
plan tests => 26;
use_ok('MooseX::Storage');
}
{
-
package Foo;
use Moose;
use MooseX::Storage;
object => Foo->new( number => 2 ),
);
isa_ok( $foo, 'Foo' );
-
+
my $packed = $foo->pack;
-
+
cmp_deeply(
$packed,
{
float => 10.5,
array => [ 1 .. 10 ],
hash => { map { $_ => undef } ( 1 .. 10 ) },
- object => {
- __CLASS__ => 'Foo',
- __DIGEST__ => re('[0-9a-f]+'),
- number => 2
- },
+ object => {
+ __CLASS__ => 'Foo',
+ __DIGEST__ => re('[0-9a-f]+'),
+ number => 2
+ },
},
'... got the right frozen class'
);
$foo2 = Foo->unpack($packed);
} '... unpacked okay';
isa_ok($foo2, 'Foo');
-
+
cmp_deeply(
$foo2->pack,
{
float => 10.5,
array => [ 1 .. 10 ],
hash => { map { $_ => undef } ( 1 .. 10 ) },
- object => {
- __CLASS__ => 'Foo',
- __DIGEST__ => re('[0-9a-f]+'),
- number => 2
- },
+ object => {
+ __CLASS__ => 'Foo',
+ __DIGEST__ => re('[0-9a-f]+'),
+ number => 2
+ },
},
'... got the right frozen class'
- );
+ );
}
{