Commit | Line | Data |
c0329273 |
1 | BEGIN { do "./t/lib/ANFANG.pm" or die ( $@ || $! ) } |
83eef562 |
2 | use DBIx::Class::Optional::Dependencies -skip_all_without => 'cdbicompat'; |
3 | |
37702ea5 |
4 | use strict; |
4a233f30 |
5 | use warnings; |
83eef562 |
6 | |
37702ea5 |
7 | use Test::More; |
8fc4291e |
8 | use DBIx::Class::_Util 'dump_value'; |
37702ea5 |
9 | |
a40329c4 |
10 | use lib 't/cdbi/testlib'; |
11 | use Film; |
12 | use Director; |
deff792e |
13 | |
14 | { # Cascade on delete |
15 | Director->has_many(nasties => 'Film'); |
16 | |
17 | my $dir = Director->insert({ |
18 | name => "Lewis Teague", |
19 | }); |
20 | my $kk = $dir->add_to_nasties({ |
21 | Title => 'Alligator' |
22 | }); |
23 | is $kk->director, $dir, "Director set OK"; |
24 | is $dir->nasties, 1, "We have one nasty"; |
25 | |
26 | ok $dir->delete; |
27 | ok !Film->retrieve("Alligator"), "has_many cascade deletes by default"; |
28 | } |
29 | |
30 | |
31 | # Two ways of saying not to cascade |
32 | for my $args ({ no_cascade_delete => 1 }, { cascade => "None" }) { |
33 | Director->has_many(nasties => 'Film', $args); |
34 | |
35 | my $dir = Director->insert({ |
36 | name => "Lewis Teague", |
37 | }); |
38 | my $kk = $dir->add_to_nasties({ |
39 | Title => 'Alligator' |
40 | }); |
41 | is $kk->director, $dir, "Director set OK"; |
42 | is $dir->nasties, 1, "We have one nasty"; |
43 | |
44 | ok $dir->delete; |
8fc4291e |
45 | ok +Film->retrieve("Alligator"), 'has_many with ' . dump_value $args; |
deff792e |
46 | $kk->delete; |
47 | } |
48 | |
49 | |
50 | #{ # Fail on cascade |
51 | # local $TODO = 'cascade => "Fail" unimplemented'; |
8273e845 |
52 | # |
deff792e |
53 | # Director->has_many(nasties => Film => { cascade => 'Fail' }); |
54 | # |
55 | # my $dir = Director->insert({ name => "Nasty Noddy" }); |
56 | # my $kk = $dir->add_to_nasties({ Title => 'Killer Killers' }); |
57 | # is $kk->director, $dir, "Director set OK"; |
58 | # is $dir->nasties, 1, "We have one nasty"; |
59 | # |
60 | # ok !eval { $dir->delete }; |
61 | # like $@, qr/1/, "Can't delete while films exist"; |
62 | # |
63 | # my $rr = $dir->add_to_nasties({ Title => 'Revenge of the Revengers' }); |
64 | # ok !eval { $dir->delete }; |
65 | # like $@, qr/2/, "Still can't delete"; |
66 | # |
67 | # $dir->nasties->delete_all; |
68 | # ok eval { $dir->delete }; |
69 | # is $@, '', "Can delete once films are gone"; |
70 | #} |
d9bd5195 |
71 | |
72 | done_testing; |