X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F68inflate_serialize.t;h=59c099753807729491c3d220b9ae7e5162c4f58c;hb=2c5c07ecc0a7e4e54854aefdd5f3e44cb71cf5e7;hp=b51f9613a595e59fde3ba7698458890695a0fd40;hpb=d6915f449e2d68ac184d6bc616043fd605913757;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/t/68inflate_serialize.t b/t/68inflate_serialize.t index b51f961..59c0997 100644 --- a/t/68inflate_serialize.t +++ b/t/68inflate_serialize.t @@ -5,7 +5,7 @@ use Test::More; use lib qw(t/lib); use DBICTest; -my $schema = DBICTest::init_schema(); +my $schema = DBICTest->init_schema(); use Data::Dumper; @@ -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');