summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2010-12-21 15:19:26 -0600
committerJesse Luehrs <doy@tozt.net>2010-12-21 15:19:26 -0600
commitf9c293d86ac113791198259a448418e754432b07 (patch)
treefc8de973f5bf03e7c005884a40fb6fd33ef15790
parenta9d87c10509f73a9fe4d330a80417585d98177c1 (diff)
downloadkiokudb-serializer-crypt-f9c293d86ac113791198259a448418e754432b07.tar.gz
kiokudb-serializer-crypt-f9c293d86ac113791198259a448418e754432b07.zip
more tests
-rw-r--r--t/01-basic.t87
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');
}
}