X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F68inflate_serialize.t;h=59c099753807729491c3d220b9ae7e5162c4f58c;hb=abb4aae3f058566ca6f42e6ed835b1d272eff3f5;hp=5eed8437236211e976d70b3e5760dadedcb235ac;hpb=a47e123334d8bcea0d34dc9ea09738d6f3b1fd49;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/t/68inflate_serialize.t b/t/68inflate_serialize.t index 5eed843..59c0997 100644 --- a/t/68inflate_serialize.t +++ b/t/68inflate_serialize.t @@ -32,7 +32,7 @@ foreach my $serializer (@serializers) { plan (skip_all => "No suitable serializer found") unless $selected; -plan (tests => 6); +plan (tests => 8); DBICTest::Schema::Serialized->inflate_column( 'serialized', { inflate => $selected->{inflater}, deflate => $selected->{deflater}, @@ -40,36 +40,47 @@ DBICTest::Schema::Serialized->inflate_column( 'serialized', ); Class::C3->reinitialize; -my $complex1 = { - id => 1, - serialized => { - a => 1, - b => [ - { c => 2 }, - ], - d => 3, - }, +my $struct_hash = { + a => 1, + b => [ + { c => 2 }, + ], + d => 3, }; -my $complex2 = { - id => 1, - serialized => [ - 'a', - { b => 1, c => 2}, - 'd', - ], -}; +my $struct_array = [ + 'a', + { + b => 1, + c => 2 + }, + 'd', +]; my $rs = $schema->resultset('Serialized'); -my $entry = $rs->create({ id => 1, serialized => ''}); - my $inflated; -ok($entry->update ({ %{$complex1} }), 'hashref deflation ok'); -ok($inflated = $entry->serialized, 'hashref inflation ok'); -is_deeply($inflated, $complex1->{serialized}, 'inflated hash matches original'); +#======= testing hashref serialization + +my $object = $rs->create( { + id => 1, + serialized => '', +} ); +ok($object->update( { serialized => $struct_hash } ), 'hashref deflation'); +ok($inflated = $object->serialized, 'hashref inflation'); +is_deeply($inflated, $struct_hash, 'inflated hash matches original'); + +$object = $rs->create( { + id => 2, + serialized => '', +} ); +eval { $object->set_inflated_column('serialized', $struct_hash) }; +ok(!$@, 'set_inflated_column to a hashref'); +is_deeply($object->serialized, $struct_hash, 'inflated hash matches original'); + -ok($entry->update ({ %{$complex2} }), 'arrayref deflation ok'); -ok($inflated = $entry->serialized, 'arrayref inflation ok'); -is_deeply($inflated, $complex2->{serialized}, 'inflated array matches original'); +#====== testing arrayref serialization +ok($object->update( { serialized => $struct_array } ), 'arrayref deflation'); +ok($inflated = $object->serialized, 'arrayref inflation'); +is_deeply($inflated, $struct_array, 'inflated array matches original');