diff options
author | Jesse Luehrs <doy@tozt.net> | 2010-12-21 15:19:26 -0600 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2010-12-21 15:19:26 -0600 |
commit | f9c293d86ac113791198259a448418e754432b07 (patch) | |
tree | fc8de973f5bf03e7c005884a40fb6fd33ef15790 | |
parent | a9d87c10509f73a9fe4d330a80417585d98177c1 (diff) | |
download | kiokudb-serializer-crypt-f9c293d86ac113791198259a448418e754432b07.tar.gz kiokudb-serializer-crypt-f9c293d86ac113791198259a448418e754432b07.zip |
more tests
-rw-r--r-- | t/01-basic.t | 87 |
1 files 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,10 +9,50 @@ 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( crypt_key => 's3cr3t', serializer => 'json', @@ -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'); } } |