7e17419614b8b7ea044d1fea707b15c2fc04d0d5
[dbsrgits/DBIx-Class.git] / t / cdbi-t / 23-cascade.t
1 use strict;
2 use Test::More;
3
4 BEGIN {
5         eval "use DBD::SQLite";
6         plan $@ ? (skip_all => 'needs DBD::SQLite for testing') : (tests => 5);
7 }
8
9 use lib 't/testlib';
10 use Film;
11 use Director;
12
13 { # Cascade Strategies
14         Director->has_many(nasties => Film => { cascade => 'Fail' });
15
16         my $dir = Director->insert({ name => "Nasty Noddy" });
17         my $kk = $dir->add_to_nasties({ Title => 'Killer Killers' });
18         is $kk->director, $dir, "Director set OK";
19         is $dir->nasties, 1, "We have one nasty";
20         eval { $dir->delete };
21         like $@, qr/1/, "Can't delete while films exist";
22         my $rr = $dir->add_to_nasties({ Title => 'Revenge of the Revengers' });
23         eval { $dir->delete };
24         like $@, qr/2/, "Still can't delete";
25         $dir->nasties->delete_all;
26         eval { $dir->delete };
27         is $@, '', "Can delete once films are gone";
28 }