X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fcdbi%2F04-lazy.t;h=2e37827ae405e1cfc47c6475995be17423cc756d;hb=26c663f123032941cb3f61d6cd11869b86716d6d;hp=6c9a8d3b7f9cd250a25a302fed194c4321574100;hpb=f54428abf9cc7d7e5604745335694eaf558f6820;p=dbsrgits%2FDBIx-Class.git diff --git a/t/cdbi/04-lazy.t b/t/cdbi/04-lazy.t index 6c9a8d3..2e37827 100644 --- a/t/cdbi/04-lazy.t +++ b/t/cdbi/04-lazy.t @@ -1,5 +1,8 @@ +use DBIx::Class::Optional::Dependencies -skip_all_without => 'cdbicompat'; + use strict; use warnings; + use Test::More; use Test::Warn; @@ -7,18 +10,8 @@ use Test::Warn; # Test lazy loading #---------------------------------------------------------------------- -BEGIN { - eval "use DBIx::Class::CDBICompat;"; - plan $@ - ? (skip_all => 'Class::Trigger and DBIx::ContextualFetch required') - : (tests => 36) - ; -} - -INIT { - use lib 't/cdbi/testlib'; - use Lazy; -} +use lib 't/cdbi/testlib'; +use Lazy; is_deeply [ Lazy->columns('Primary') ], [qw/this/], "Pri"; is_deeply [ sort Lazy->columns('Essential') ], [qw/opop this/], "Essential"; @@ -110,20 +103,20 @@ warning_like { }, undef, 23, $l->this); is $l->oop, 23; - + $l->delete; } # Now again for inflated values SKIP: { - skip "Requires Date::Simple 3.03", 5 unless eval "use Date::Simple 3.03; 1; "; + DBIx::Class::Optional::Dependencies->skip_without( 'Date::Simple>=3.03' ); Lazy->has_a( orp => 'Date::Simple', inflate => sub { Date::Simple->new($_[0] . '-01-01') }, deflate => 'format' ); - + my $l = Lazy->create({ this => 89, that => 2, @@ -135,13 +128,13 @@ SKIP: { SET orp = ? WHERE this = ? }, undef, 1987, $l->this); - + is $l->orp, '1987-01-01'; $l->orp(2007); is $l->orp, '2007-01-01'; # make sure it's inflated $l->update; - + ok $l->db_Main->do(qq{ UPDATE @{[ $l->table ]} SET orp = ? @@ -149,7 +142,7 @@ SKIP: { }, undef, 1942, $l->this); is $l->orp, '1942-01-01'; - + $l->delete; } @@ -163,19 +156,21 @@ SKIP: { oop => 3, opop => 4, }); - + # Delete the object without it knowing. Lazy->db_Main->do(qq[ DELETE FROM @{[ Lazy->table ]} WHERE this = 99 ]); - + $l->eep; - + # The problem was when an object had an inflated object # loaded. _flesh() would set _column_data to undef and # get_column() would think nothing was there. # I'm too lazy to set up the proper inflation test. ok !exists $l->{_column_data}{orp}; } + +done_testing;