Introduce GOVERNANCE document and empty RESOLUTIONS file.
[dbsrgits/DBIx-Class.git] / t / cdbi / 98-failure.t
CommitLineData
c0329273 1BEGIN { do "./t/lib/ANFANG.pm" or die ( $@ || $! ) }
83eef562 2use DBIx::Class::Optional::Dependencies -skip_all_without => 'cdbicompat';
3
5a66aa65 4use strict;
4a233f30 5use warnings;
83eef562 6
5a66aa65 7use Test::More;
8
9#----------------------------------------------------------------------
10# Test database failures
11#----------------------------------------------------------------------
12
50891152 13use lib 't/cdbi/testlib';
5a66aa65 14use Film;
15
16Film->create_test_film;
17
18{
6a3bf251 19 my $btaste = Film->retrieve('Bad Taste');
20 isa_ok $btaste, 'Film', "We have Bad Taste";
21 {
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";
26 }
27 my $still = Film->retrieve('Bad Taste');
28 isa_ok $btaste, 'Film', "We still have Bad Taste";
5a66aa65 29}
30
31{
6a3bf251 32 my $btaste = Film->retrieve('Bad Taste');
33 isa_ok $btaste, 'Film', "We have Bad Taste";
34 $btaste->numexplodingsheep(10);
35 {
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";
40 }
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";
5a66aa65 45}
46
47if (0) {
6a3bf251 48 my $sheep = Film->maximum_value_of('numexplodingsheep');
49 is $sheep, 1, "1 exploding sheep";
50 {
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";
55 }
5a66aa65 56}
57
d9bd5195 58done_testing;