Stop shipping world writeable files in our tarball
[dbsrgits/DBIx-Class.git] / t / cdbi / 98-failure.t
CommitLineData
5a66aa65 1use strict;
2use Test::More;
3
4#----------------------------------------------------------------------
5# Test database failures
6#----------------------------------------------------------------------
7
50891152 8use lib 't/cdbi/testlib';
5a66aa65 9use Film;
10
11Film->create_test_film;
12
13{
6a3bf251 14 my $btaste = Film->retrieve('Bad Taste');
15 isa_ok $btaste, 'Film', "We have Bad Taste";
16 {
17 no warnings 'redefine';
18 local *DBIx::ContextualFetch::st::execute = sub { die "Database died" };
19 eval { $btaste->delete };
20 ::like $@, qr/Database died/s, "We failed";
21 }
22 my $still = Film->retrieve('Bad Taste');
23 isa_ok $btaste, 'Film', "We still have Bad Taste";
5a66aa65 24}
25
26{
6a3bf251 27 my $btaste = Film->retrieve('Bad Taste');
28 isa_ok $btaste, 'Film', "We have Bad Taste";
29 $btaste->numexplodingsheep(10);
30 {
31 no warnings 'redefine';
32 local *DBIx::ContextualFetch::st::execute = sub { die "Database died" };
33 eval { $btaste->update };
34 ::like $@, qr/Database died/s, "We failed";
35 }
36 $btaste->discard_changes;
37 my $still = Film->retrieve('Bad Taste');
38 isa_ok $btaste, 'Film', "We still have Bad Taste";
39 is $btaste->numexplodingsheep, 1, "with 1 sheep";
5a66aa65 40}
41
42if (0) {
6a3bf251 43 my $sheep = Film->maximum_value_of('numexplodingsheep');
44 is $sheep, 1, "1 exploding sheep";
45 {
46 local *DBIx::ContextualFetch::st::execute = sub { die "Database died" };
47 my $sheep = eval { Film->maximum_value_of('numexplodingsheep') };
48 ::like $@, qr/select.*Database died/s,
49 "Handle database death in single value select";
50 }
5a66aa65 51}
52
d9bd5195 53done_testing;