X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F68inflate_serialize.t;h=59c099753807729491c3d220b9ae7e5162c4f58c;hb=0ca2f0d15a354a396f21e4b7fdd1da885e1fa90a;hp=2efabbfb5f19284e61758575aaadc2d88b7b6fae;hpb=e81a62410d9b030620169dc317c82f87c1e823bf;p=dbsrgits%2FDBIx-Class.git diff --git a/t/68inflate_serialize.t b/t/68inflate_serialize.t index 2efabbf..59c0997 100644 --- a/t/68inflate_serialize.t +++ b/t/68inflate_serialize.t @@ -40,43 +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'); - -my $entry2 = $rs->create({ id => 2, serialized => ''}); +#======= testing hashref serialization -eval { $entry2->set_inflated_column('serialized', $complex1->{serialized}) }; +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'); -$entry2->update; -is_deeply($entry2->serialized, $complex1->{serialized}, 'inflated hash matches original'); +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');