5 use RT::Test tests => undef;
9 ok (require RT::Tickets);
10 ok( my $testtickets = RT::Tickets->new( RT->SystemUser ) );
11 ok( $testtickets->LimitStatus( VALUE => 'deleted' ) );
12 # Should be zero until 'allow_deleted_search'
13 is( $testtickets->Count , 0 );
20 # Test to make sure that you can search for tickets by requestor address and
24 my $u1 = RT::User->new(RT->SystemUser);
25 ($id, $msg) = $u1->Create( Name => 'RequestorTestOne', EmailAddress => 'rqtest1@example.com');
27 my $u2 = RT::User->new(RT->SystemUser);
28 ($id, $msg) = $u2->Create( Name => 'RequestorTestTwo', EmailAddress => 'rqtest2@example.com');
31 my $t1 = RT::Ticket->new(RT->SystemUser);
33 ($id,$trans,$msg) =$t1->Create (Queue => 'general', Subject => 'Requestor test one', Requestor => [$u1->EmailAddress]);
36 my $t2 = RT::Ticket->new(RT->SystemUser);
37 ($id,$trans,$msg) =$t2->Create (Queue => 'general', Subject => 'Requestor test one', Requestor => [$u2->EmailAddress]);
41 my $t3 = RT::Ticket->new(RT->SystemUser);
42 ($id,$trans,$msg) =$t3->Create (Queue => 'general', Subject => 'Requestor test one', Requestor => [$u2->EmailAddress, $u1->EmailAddress]);
46 my $tix1 = RT::Tickets->new(RT->SystemUser);
47 $tix1->FromSQL('Requestor.EmailAddress LIKE "rqtest1" OR Requestor.EmailAddress LIKE "rqtest2"');
51 my $tix2 = RT::Tickets->new(RT->SystemUser);
52 $tix2->FromSQL('Requestor.Name LIKE "TestOne" OR Requestor.Name LIKE "TestTwo"');
57 my $tix3 = RT::Tickets->new(RT->SystemUser);
58 $tix3->FromSQL('Requestor.EmailAddress LIKE "rqtest1"');
62 my $tix4 = RT::Tickets->new(RT->SystemUser);
63 $tix4->FromSQL('Requestor.Name LIKE "TestOne" ');
67 # Searching for tickets that have two requestors isn't supported
68 # There's no way to differentiate "one requestor name that matches foo and bar"
69 # and "two requestors, one matching foo and one matching bar"
71 # my $tix5 = RT::Tickets->new(RT->SystemUser);
72 # $tix5->FromSQL('Requestor.Name LIKE "TestOne" AND Requestor.Name LIKE "TestTwo"');
74 # is ($tix5->Count, 1);
76 # my $tix6 = RT::Tickets->new(RT->SystemUser);
77 # $tix6->FromSQL('Requestor.EmailAddress LIKE "rqtest1" AND Requestor.EmailAddress LIKE "rqtest2"');
79 # is ($tix6->Count, 1);
87 my $t1 = RT::Ticket->new(RT->SystemUser);
88 $t1->Create(Queue => 'general', Subject => "LimitWatchers test", Requestors => \['requestor1@example.com']);
95 # We assume that we've got some tickets hanging around from before.
96 ok( my $unlimittickets = RT::Tickets->new( RT->SystemUser ) );
97 ok( $unlimittickets->UnLimit );
98 ok( $unlimittickets->Count > 0, "UnLimited tickets object should return tickets" );
105 my $tickets = RT::Tickets->new( RT->SystemUser );
106 $tickets->Limit( FIELD => 'id', OPERATOR => '>', VALUE => 0 );
107 my $count = $tickets->Count();
108 ok $count > 1, "found more than one ticket";
111 $tickets->Limit( FIELD => 'id', OPERATOR => '=', VALUE => 1, ENTRYAGGREGATOR => 'none' );
112 $count = $tickets->Count();
113 ok $count == 1, "found one ticket";
117 my $tickets = RT::Tickets->new( RT->SystemUser );
118 my ($ret, $msg) = $tickets->FromSQL("Resolved IS NULL");
119 ok $ret, "Ran query with IS NULL: $msg";
120 my $count = $tickets->Count();
121 ok $count > 1, "Found more than one ticket";
126 my $ticket = RT::Ticket->new( RT->SystemUser );
127 ok $ticket->Load(1), "Loaded test ticket 1";
128 ok $ticket->SetStatus('resolved'), "Set to resolved";
130 my $tickets = RT::Tickets->new( RT->SystemUser );
131 my ($ret, $msg) = $tickets->FromSQL("Resolved IS NOT NULL");
132 ok $ret, "Ran query with IS NOT NULL: $msg";
133 my $count = $tickets->Count();
134 ok $count == 1, "Found one ticket";
139 my $tickets = RT::Tickets->new( RT->SystemUser );
140 $tickets->LimitDate( FIELD => "Resolved", OPERATOR => "IS", VALUE => "NULL" );
141 $tickets->LimitDate( FIELD => "Resolved", OPERATOR => "IS NOT", VALUE => "NULL" );
142 my $count = $tickets->Count();
143 ok $count > 1, "Found more than one ticket";