1 BEGIN { do "./t/lib/ANFANG.pm" or die ( $@ || $! ) }
2 use DBIx::Class::Optional::Dependencies -skip_all_without => 'cdbicompat';
9 #----------------------------------------------------------------------
10 # Test database failures
11 #----------------------------------------------------------------------
13 use lib 't/cdbi/testlib';
16 Film->create_test_film;
19 my $btaste = Film->retrieve('Bad Taste');
20 isa_ok $btaste, 'Film', "We have Bad Taste";
22 no warnings 'redefine';
23 local *DBIx::ContextualFetch::st::execute = sub { die "Database died" };
24 eval { $btaste->delete };
25 ::like $@, qr/Database died/s, "We failed";
27 my $still = Film->retrieve('Bad Taste');
28 isa_ok $btaste, 'Film', "We still have Bad Taste";
32 my $btaste = Film->retrieve('Bad Taste');
33 isa_ok $btaste, 'Film', "We have Bad Taste";
34 $btaste->numexplodingsheep(10);
36 no warnings 'redefine';
37 local *DBIx::ContextualFetch::st::execute = sub { die "Database died" };
38 eval { $btaste->update };
39 ::like $@, qr/Database died/s, "We failed";
41 $btaste->discard_changes;
42 my $still = Film->retrieve('Bad Taste');
43 isa_ok $btaste, 'Film', "We still have Bad Taste";
44 is $btaste->numexplodingsheep, 1, "with 1 sheep";
48 my $sheep = Film->maximum_value_of('numexplodingsheep');
49 is $sheep, 1, "1 exploding sheep";
51 local *DBIx::ContextualFetch::st::execute = sub { die "Database died" };
52 my $sheep = eval { Film->maximum_value_of('numexplodingsheep') };
53 ::like $@, qr/select.*Database died/s,
54 "Handle database death in single value select";