first pass RT4 merge, RT#13852
[freeside.git] / rt / t / api / reminders.t
1
2 use strict;
3 use warnings;
4 use RT;
5 use RT::Test tests => 20;
6
7
8 {
9
10 # Create test queues
11 use_ok ('RT::Queue');
12
13 ok(my $testqueue = RT::Queue->new(RT->SystemUser), 'Instantiate RT::Queue');
14 ok($testqueue->Create( Name => 'reminders tests'), 'Create new queue: reminders tests');
15 isnt($testqueue->Id , 0, 'Success creating queue');
16
17 ok($testqueue->Create( Name => 'reminders tests 2'), 'Create new queue: reminders tests 2');
18 isnt($testqueue->Id , 0, 'Success creating queue');
19
20 # Create test ticket
21 use_ok('RT::Ticket');
22
23 my $u = RT::User->new(RT->SystemUser);
24 $u->Load("root");
25 ok ($u->Id, "Found the root user");
26 ok(my $t = RT::Ticket->new(RT->SystemUser), 'Instantiate RT::Ticket');
27 ok(my ($id, $msg) = $t->Create( Queue => $testqueue->Id,
28                Subject => 'Testing',
29                Owner => $u->Id
30               ), 'Create sample ticket');
31 isnt($id , 0, 'Success creating ticket');
32
33 # Add reminder
34 my $due_obj = RT::Date->new( RT->SystemUser );
35 $due_obj->SetToNow;
36 ok(my ( $add_id, $add_msg, $txnid ) = $t->Reminders->Add(
37     Subject => 'TestReminder',
38     Owner   => 'root',
39     Due     => $due_obj->ISO
40     ), 'Add reminder');
41
42 # Check that the new Reminder is here
43 my $reminders = $t->Reminders->Collection;
44 ok($reminders, 'Loading reminders for this ticket');
45 my $found = 0;
46 while ( my $reminder = $reminders->Next ) {
47     next unless $found == 0;
48     $found = 1 if ( $reminder->Subject =~ m/TestReminder/ );
49 }
50
51 is($found, 1, 'Reminder successfully added');
52
53 # Change queue
54 ok (my ($move_val, $move_msg) = $t->SetQueue('reminders tests 2'), 'Moving ticket from queue "reminders tests" to "reminders tests 2"');
55
56 is ($t->QueueObj->Name, 'reminders tests 2', 'Ticket successfully moved');
57
58 # Check that the new reminder is still there and moved to the new queue
59 $reminders = $t->Reminders->Collection;
60 ok($reminders, 'Loading reminders for this ticket');
61 $found = 0;
62 my $ok_queue = 0;
63 while ( my $reminder = $reminders->Next ) {
64     next unless $found == 0;
65     if ( $reminder->Subject =~ m/TestReminder/ ) {
66         $found = 1;
67         $ok_queue = 1 if ( $reminder->QueueObj->Name eq 'reminders tests 2' );
68     }
69 }
70 is($found, 1, 'Reminder successfully added');
71
72 is($ok_queue, 1, 'Reminder automatically moved to new queue');
73
74 # Resolve reminder
75 my $r_resolved = 0;
76 while ( my $reminder = $reminders->Next ) {
77     if ( $reminder->Subject =~ m/TestReminder/ ) {
78         if ( $reminder->Status ne 'resolved' ) {
79             $t->Reminders->Resolve($reminder);
80             $r_resolved = 1 if ( $reminder->Status eq 'resolved' );
81         }
82     }
83 }
84
85 is($r_resolved, 1, 'Reminder resolved');
86
87 }
88