RT 4.0.22
[freeside.git] / rt / t / api / transaction.t
1
2 use strict;
3 use warnings;
4 use RT;
5 use RT::Test tests => undef;
6 use Test::Warn;
7
8 use_ok ('RT::Transaction');
9
10 {
11     my $u = RT::User->new(RT->SystemUser);
12     $u->Load("root");
13     ok ($u->Id, "Found the root user");
14     ok(my $t = RT::Ticket->new(RT->SystemUser));
15     my ($id, $msg) = $t->Create( Queue => 'General',
16                                     Subject => 'Testing',
17                                     Owner => $u->Id
18                                );
19     ok($id, "Create new ticket $id");
20     isnt($id , 0);
21
22     my $txn = RT::Transaction->new(RT->SystemUser);
23     my ($txn_id, $txn_msg) = $txn->Create(
24                   Type => 'AddLink',
25                   Field => 'RefersTo',
26                   Ticket => $id,
27                   NewValue => 'ticket 42', );
28     ok( $txn_id, "Created transaction $txn_id: $txn_msg");
29
30     my $brief;
31     warning_like { $brief = $txn->BriefDescription }
32                   qr/Could not determine a URI scheme/,
33                     "Caught URI warning";
34
35     is( $brief, 'Reference to ticket 42 added', "Got string description: $brief");
36
37     $txn = RT::Transaction->new(RT->SystemUser);
38     ($txn_id, $txn_msg) = $txn->Create(
39                   Type => 'DeleteLink',
40                   Field => 'RefersTo',
41                   Ticket => $id,
42                   OldValue => 'ticket 42', );
43     ok( $txn_id, "Created transaction $txn_id: $txn_msg");
44
45     warning_like { $brief = $txn->BriefDescription }
46                   qr/Could not determine a URI scheme/,
47                     "Caught URI warning";
48
49     is( $brief, 'Reference to ticket 42 deleted', "Got string description: $brief");
50 }
51
52 done_testing;