X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F72pg.t;h=71213e84a071858a3e01c45b316a2f533bb4ae19;hb=7302b3e0fadad3321a1e0ad681949b06c9c8601f;hp=e03cd2be1d039916f9ac5bc6c25feaa45a95de91;hpb=a2c77c97735124a7bf4073cf5cef5480bec752a8;p=dbsrgits%2FDBIx-Class.git diff --git a/t/72pg.t b/t/72pg.t index e03cd2b..71213e8 100644 --- a/t/72pg.t +++ b/t/72pg.t @@ -5,6 +5,7 @@ use warnings; use Test::More; use Test::Exception; +use Test::Warn; use Sub::Name; use Config; use DBIx::Class::Optional::Dependencies (); @@ -485,7 +486,24 @@ lives_ok { $cds->update({ year => '2010' }) } 'Update on prefetched rs'; $schema->resultset('Track')->create({ trackid => 1, cd => 9999, position => 1, title => 'Track1' }); - } qr/constraint/i, 'with_deferred_fk_checks is off'; + } qr/violates foreign key constraint/i, 'with_deferred_fk_checks is off outside of TXN'; + + # rerun the same under with_deferred_fk_checks + # it is expected to fail, hence the eval + # but it also should not warn + warnings_like { + eval { + $schema->storage->with_deferred_fk_checks(sub { + $schema->resultset('Track')->create({ + trackid => 1, cd => 9999, position => 1, title => 'Track1' + }); + } ) + }; + + like $@, qr/violates foreign key constraint/i, + "Still expected exception on deferred failure at commit time"; + + } [], 'No warnings on deferred rollback'; } done_testing;