Commit | Line | Data |
157fdb0c |
1 | use Test::More; |
2 | use strict; |
3 | use warnings; |
4 | use lib qw(t/lib); |
5 | use DBICTest; |
6 | |
7 | plan tests => 3; |
8 | |
9 | my $schema = DBICTest->init_schema(); |
10 | |
11 | my $ars = $schema->resultset('Artist'); |
12 | my $cdrs = $schema->resultset('CD'); |
13 | |
14 | # create some custom entries |
15 | $ars->create ({ artistid => 9, name => 'dead man walking' }); |
16 | $cdrs->populate ([ |
17 | [qw/cdid artist title year/], |
18 | [qw/70 2 delete0 2005/], |
19 | [qw/71 3 delete1 2005/], |
20 | [qw/72 3 delete2 2005/], |
21 | [qw/73 3 delete3 2006/], |
22 | [qw/74 3 delete4 2007/], |
23 | [qw/75 9 delete5 2008/], |
24 | ]); |
25 | |
26 | my $total_cds = $cdrs->count; |
27 | |
28 | # test that delete_related w/o conditions deletes all related records only |
29 | $ars->find (9)->delete_related ('cds'); |
30 | is ($cdrs->count, $total_cds -= 1, 'related delete ok'); |
31 | |
32 | my $a3_cds = $ars->find(3)->cds; |
33 | |
34 | # test that related deletion w/conditions deletes just the matched related records only |
35 | $a3_cds->search ({ year => 2005 })->delete; |
36 | is ($cdrs->count, $total_cds -= 2, 'related + condition delete ok'); |
37 | |
38 | # test that related deletion with limit condition works |
39 | $a3_cds->search ({}, { rows => 1})->delete; |
40 | is ($cdrs->count, $total_cds -= 1, 'related + limit delete ok'); |