no need for FS calendar buttons in RT 4.2
[freeside.git] / rt / t / api / tickets.t
index 9148a88..172965c 100644 (file)
@@ -2,13 +2,12 @@
 use strict;
 use warnings;
 use RT;
-use RT::Test tests => 16;
-
+use RT::Test tests => undef;
 
 {
 
 ok (require RT::Tickets);
-ok( my $testtickets = RT::Tickets->new( $RT::SystemUser ) );
+ok( my $testtickets = RT::Tickets->new( RT->SystemUser ) );
 ok( $testtickets->LimitStatus( VALUE => 'deleted' ) );
 # Should be zero until 'allow_deleted_search'
 is( $testtickets->Count , 0 );
@@ -22,45 +21,45 @@ is( $testtickets->Count , 0 );
 # by requestor name.
 
 my ($id,$msg);
-my $u1 = RT::User->new($RT::SystemUser);
+my $u1 = RT::User->new(RT->SystemUser);
 ($id, $msg) = $u1->Create( Name => 'RequestorTestOne', EmailAddress => 'rqtest1@example.com');
 ok ($id,$msg);
-my $u2 = RT::User->new($RT::SystemUser);
+my $u2 = RT::User->new(RT->SystemUser);
 ($id, $msg) = $u2->Create( Name => 'RequestorTestTwo', EmailAddress => 'rqtest2@example.com');
 ok ($id,$msg);
 
-my $t1 = RT::Ticket->new($RT::SystemUser);
+my $t1 = RT::Ticket->new(RT->SystemUser);
 my ($trans);
 ($id,$trans,$msg) =$t1->Create (Queue => 'general', Subject => 'Requestor test one', Requestor => [$u1->EmailAddress]);
 ok ($id, $msg);
 
-my $t2 = RT::Ticket->new($RT::SystemUser);
+my $t2 = RT::Ticket->new(RT->SystemUser);
 ($id,$trans,$msg) =$t2->Create (Queue => 'general', Subject => 'Requestor test one', Requestor => [$u2->EmailAddress]);
 ok ($id, $msg);
 
 
-my $t3 = RT::Ticket->new($RT::SystemUser);
+my $t3 = RT::Ticket->new(RT->SystemUser);
 ($id,$trans,$msg) =$t3->Create (Queue => 'general', Subject => 'Requestor test one', Requestor => [$u2->EmailAddress, $u1->EmailAddress]);
 ok ($id, $msg);
 
 
-my $tix1 = RT::Tickets->new($RT::SystemUser);
+my $tix1 = RT::Tickets->new(RT->SystemUser);
 $tix1->FromSQL('Requestor.EmailAddress LIKE "rqtest1" OR Requestor.EmailAddress LIKE "rqtest2"');
 
 is ($tix1->Count, 3);
 
-my $tix2 = RT::Tickets->new($RT::SystemUser);
+my $tix2 = RT::Tickets->new(RT->SystemUser);
 $tix2->FromSQL('Requestor.Name LIKE "TestOne" OR Requestor.Name LIKE "TestTwo"');
 
 is ($tix2->Count, 3);
 
 
-my $tix3 = RT::Tickets->new($RT::SystemUser);
+my $tix3 = RT::Tickets->new(RT->SystemUser);
 $tix3->FromSQL('Requestor.EmailAddress LIKE "rqtest1"');
 
 is ($tix3->Count, 2);
 
-my $tix4 = RT::Tickets->new($RT::SystemUser);
+my $tix4 = RT::Tickets->new(RT->SystemUser);
 $tix4->FromSQL('Requestor.Name LIKE "TestOne" ');
 
 is ($tix4->Count, 2);
@@ -69,12 +68,12 @@ is ($tix4->Count, 2);
 # There's no way to differentiate "one requestor name that matches foo and bar"
 # and "two requestors, one matching foo and one matching bar"
 
-# my $tix5 = RT::Tickets->new($RT::SystemUser);
+# my $tix5 = RT::Tickets->new(RT->SystemUser);
 # $tix5->FromSQL('Requestor.Name LIKE "TestOne" AND Requestor.Name LIKE "TestTwo"');
 # 
 # is ($tix5->Count, 1);
 # 
-# my $tix6 = RT::Tickets->new($RT::SystemUser);
+# my $tix6 = RT::Tickets->new(RT->SystemUser);
 # $tix6->FromSQL('Requestor.EmailAddress LIKE "rqtest1" AND Requestor.EmailAddress LIKE "rqtest2"');
 # 
 # is ($tix6->Count, 1);
@@ -85,7 +84,7 @@ is ($tix4->Count, 2);
 
 {
 
-my $t1 = RT::Ticket->new($RT::SystemUser);
+my $t1 = RT::Ticket->new(RT->SystemUser);
 $t1->Create(Queue => 'general', Subject => "LimitWatchers test", Requestors => \['requestor1@example.com']);
 
 
@@ -94,11 +93,55 @@ $t1->Create(Queue => 'general', Subject => "LimitWatchers test", Requestors => \
 {
 
 # We assume that we've got some tickets hanging around from before.
-ok( my $unlimittickets = RT::Tickets->new( $RT::SystemUser ) );
+ok( my $unlimittickets = RT::Tickets->new( RT->SystemUser ) );
 ok( $unlimittickets->UnLimit );
 ok( $unlimittickets->Count > 0, "UnLimited tickets object should return tickets" );
 
 
 }
 
-1;
+
+{
+    my $tickets = RT::Tickets->new( RT->SystemUser );
+    $tickets->Limit( FIELD => 'id', OPERATOR => '>', VALUE => 0 );
+    my $count = $tickets->Count();
+    ok $count > 1, "found more than one ticket";
+    undef $count;
+
+    $tickets->Limit( FIELD => 'id', OPERATOR => '=', VALUE => 1, ENTRYAGGREGATOR => 'none' );
+    $count = $tickets->Count();
+    ok $count == 1, "found one ticket";
+}
+
+{
+    my $tickets = RT::Tickets->new( RT->SystemUser );
+    my ($ret, $msg) = $tickets->FromSQL("Resolved IS NULL");
+    ok $ret, "Ran query with IS NULL: $msg";
+    my $count = $tickets->Count();
+    ok $count > 1, "Found more than one ticket";
+    undef $count;
+}
+
+{
+    my $ticket = RT::Ticket->new( RT->SystemUser );
+    ok $ticket->Load(1), "Loaded test ticket 1";
+    ok $ticket->SetStatus('resolved'), "Set to resolved";
+
+    my $tickets = RT::Tickets->new( RT->SystemUser );
+    my ($ret, $msg) = $tickets->FromSQL("Resolved IS NOT NULL");
+    ok $ret, "Ran query with IS NOT NULL: $msg";
+    my $count = $tickets->Count();
+    ok $count == 1, "Found one ticket";
+    undef $count;
+}
+
+{
+    my $tickets = RT::Tickets->new( RT->SystemUser );
+    $tickets->LimitDate( FIELD => "Resolved", OPERATOR => "IS",     VALUE => "NULL" );
+    $tickets->LimitDate( FIELD => "Resolved", OPERATOR => "IS NOT", VALUE => "NULL" );
+    my $count = $tickets->Count();
+    ok $count > 1, "Found more than one ticket";
+    undef $count;
+}
+
+done_testing;