From f9c293d86ac113791198259a448418e754432b07 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Tue, 21 Dec 2010 15:19:26 -0600 Subject: more tests --- t/01-basic.t | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 84 insertions(+), 3 deletions(-) diff --git a/t/01-basic.t b/t/01-basic.t index 5a36839..6dd4fff 100644 --- a/t/01-basic.t +++ b/t/01-basic.t @@ -9,8 +9,48 @@ use Test::Requires 'JSON'; use Crypt::Util; use KiokuDB; use KiokuDB::Util; +use Storable 'thaw'; + use KiokuDB::Serializer::Crypt; +{ + my $backend = KiokuDB::Backend::Hash->new( + serializer => KiokuDB::Serializer::Crypt->new(crypt_key => 's3cr3t'), + ); + my $d = KiokuDB->new(backend => $backend); + + { + my $s = $d->new_scope; + my $foo = Moose::Meta::Class->create('Foo')->new_object; + $d->insert(foo => $foo); + } + + { + my $storage = $d->backend->storage; + my $serialized_foo = $storage->{foo}; + + my $crypt = Crypt::Util->new(default_key => 's3cr3t'); + my $decrypted = $crypt->decrypt_string($serialized_foo); + my $data = thaw($decrypted); + is_deeply( + $data, + { + class => 'Foo', + root => 1, + id => 'foo', + data => {}, + }, + "encrypted properly" + ); + } + + { + my $s = $d->new_scope; + my $foo = $d->lookup('foo'); + isa_ok($foo, 'Foo'); + } +} + { my $backend = KiokuDB::Backend::Hash->new( serializer => KiokuDB::Serializer::Crypt->new( @@ -22,7 +62,7 @@ use KiokuDB::Serializer::Crypt; { my $s = $d->new_scope; - my $foo = Moose::Meta::Class->create('Foo')->new_object; + my $foo = Moose::Meta::Class->create('Bar')->new_object; $d->insert(foo => $foo); } @@ -36,7 +76,7 @@ use KiokuDB::Serializer::Crypt; is_deeply( $data, { - __CLASS__ => 'Foo', + __CLASS__ => 'Bar', root => 'true', id => 'foo', data => {}, @@ -48,7 +88,48 @@ use KiokuDB::Serializer::Crypt; { my $s = $d->new_scope; my $foo = $d->lookup('foo'); - isa_ok($foo, 'Foo'); + isa_ok($foo, 'Bar'); + } +} + +{ + my $backend = KiokuDB::Backend::Hash->new( + serializer => KiokuDB::Serializer::Crypt->new( + crypt => Crypt::Util->new(default_key => 's3cr3t'), + serializer => 'json', + ), + ); + my $d = KiokuDB->new(backend => $backend); + + { + my $s = $d->new_scope; + my $foo = Moose::Meta::Class->create('Baz')->new_object; + $d->insert(foo => $foo); + } + + { + my $storage = $d->backend->storage; + my $serialized_foo = $storage->{foo}; + + my $crypt = Crypt::Util->new(default_key => 's3cr3t'); + my $decrypted = $crypt->decrypt_string($serialized_foo); + my $data = JSON->new->decode($decrypted); + is_deeply( + $data, + { + __CLASS__ => 'Baz', + root => 'true', + id => 'foo', + data => {}, + }, + "encrypted properly" + ); + } + + { + my $s = $d->new_scope; + my $foo = $d->lookup('foo'); + isa_ok($foo, 'Baz'); } } -- cgit v1.2.3