1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
use FixMyStreet::Test;
use Test::Exception;
use FixMyStreet::DB;
use DateTime;
my $dt = DateTime->now;
my $user = FixMyStreet::DB->resultset('User')->find_or_create({
name => 'Bob', email => 'bob@example.com',
});
sub get_report_and_original_data {
my $report = FixMyStreet::DB->resultset('Problem')->create(
{
postcode => 'BR1 3SB',
bodies_str => '',
areas => ",,",
category => 'Other',
title => 'test',
detail => 'test',
used_map => 't',
name => 'Anon',
anonymous => 't',
state => 'confirmed',
confirmed => $dt->ymd . ' ' . $dt->hms,
lang => 'en-gb',
service => '',
cobrand => 'default',
cobrand_data => '',
send_questionnaire => 't',
latitude => '51.4129',
longitude => '0.007831',
user => $user,
});
my $original = $report->create_related( moderation_original_data => {
anonymous => 't',
title => 'test',
detail => 'test',
photo => 'f',
} );
return ($report, $original);
}
subtest 'Explicit Deletion (sanity test)' => sub {
my ($report, $orig) = get_report_and_original_data;
lives_ok {
$orig->delete;
$report->delete;
};
};
subtest 'Implicit Chained Deletion' => sub {
my ($report, $orig) = get_report_and_original_data;
lives_ok {
$report->delete;
};
};
done_testing();
|