diff options
author | Jesse Luehrs <doy@tozt.net> | 2011-02-02 23:31:53 -0600 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2011-02-02 23:31:53 -0600 |
commit | 1229e6ee02def382dcd96accb44b23b26209da6a (patch) | |
tree | 27f21e61890d4b2fe5d29154784933d1f2dc74a0 | |
parent | f07cd4e7a5c7135095380e6626fdd9b6c9689916 (diff) | |
download | kiokudb-serializer-crypt-1229e6ee02def382dcd96accb44b23b26209da6a.tar.gz kiokudb-serializer-crypt-1229e6ee02def382dcd96accb44b23b26209da6a.zip |
pass default_typemap through
-rw-r--r-- | dist.ini | 1 | ||||
-rw-r--r-- | lib/KiokuDB/Serializer/Crypt.pm | 9 | ||||
-rw-r--r-- | t/02-typemap.t | 40 |
3 files changed, 50 insertions, 0 deletions
@@ -18,4 +18,5 @@ Test::More = 0.88 [Prereqs / TestRecommends] Crypt::Rijndael = 0 Crypt::CFB = 0 +DateTime = 0 JSON = 0 diff --git a/lib/KiokuDB/Serializer/Crypt.pm b/lib/KiokuDB/Serializer/Crypt.pm index 21a9196..299e24c 100644 --- a/lib/KiokuDB/Serializer/Crypt.pm +++ b/lib/KiokuDB/Serializer/Crypt.pm @@ -138,6 +138,15 @@ around deserialize => sub { return $self->$orig($self->decrypt_string($collapsed), @args); }; +sub default_typemap { + my $self = shift; + + return $self->serializer->default_typemap + if $self->serializer->default_typemap; + + return KiokuDB::Typemap->new; +} + with 'KiokuDB::Backend::Serialize'; =head1 BUGS diff --git a/t/02-typemap.t b/t/02-typemap.t new file mode 100644 index 0000000..4bc0cb8 --- /dev/null +++ b/t/02-typemap.t @@ -0,0 +1,40 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; + +use Test::Requires 'Crypt::Rijndael'; +use Test::Requires 'Crypt::CFB'; +use Test::Requires 'DateTime'; + +use KiokuDB; +use KiokuDB::Util; +use KiokuDB::Serializer::Crypt; + +my $backend = KiokuDB::Util::dsn_to_backend( + 'hash', + serializer => KiokuDB::Serializer::Crypt->new( + serializer => 'json', + crypt_cipher => 'Rijndael', + crypt_mode => 'CFB', + crypt_key => 'foo', + ), +); + +my $d = KiokuDB->new(backend => $backend); +my $obj = [DateTime->now]; + +{ + my $s = $d->new_scope; + $d->insert(obj => $obj); +} + +{ + my $s = $d->new_scope; + my $db_obj = $d->lookup('obj'); + is(ref($db_obj), 'ARRAY', "got array back"); + isa_ok($db_obj->[0], 'DateTime'); + is_deeply($db_obj, $obj, "got the right obj"); +} + +done_testing; |