[Rt-commit] r18639 - rt/3.999/branches/on-tisql/t/ticket

ruz at bestpractical.com ruz at bestpractical.com
Tue Mar 3 13:47:25 EST 2009


Author: ruz
Date: Tue Mar  3 13:47:25 2009
New Revision: 18639

Modified:
   rt/3.999/branches/on-tisql/t/ticket/search_by_links.t

Log:
* convert tests to tisql

Modified: rt/3.999/branches/on-tisql/t/ticket/search_by_links.t
==============================================================================
--- rt/3.999/branches/on-tisql/t/ticket/search_by_links.t	(original)
+++ rt/3.999/branches/on-tisql/t/ticket/search_by_links.t	Tue Mar  3 13:47:25 2009
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 80;
+use Test::More tests => 76;
 use RT::Test;
 use RT::Model::Ticket;
 
@@ -30,10 +30,10 @@
 }
 
 sub run_tests {
-    my $query_prefix = join ' OR ', map 'id = '. $_->id, @tickets;
+    my @ids = map $_->id, @tickets;
     foreach my $key ( sort keys %test ) {
         my $tix = RT::Model::TicketCollection->new(current_user => RT->system_user);
-        $tix->from_sql( "( $query_prefix ) AND ( $key )" );
+        $tix->tisql->query( "( $key ) AND .id = ?", [ @ids ] );
 
         my $error = 0;
 
@@ -49,7 +49,7 @@
         }
         ok( $good_tickets, "all tickets are good with '$key'" ) or $error = 1;
 
-        diag "Wrong SQL query for '$key':". $tix->BuildSelectQuery if $error;
+        diag "Wrong SQL query for '$key':". $tix->build_select_query if $error;
     }
 }
 
@@ -61,26 +61,27 @@
 );
 @tickets = add_tix_from_data();
 %test = (
-    'Linked     IS NOT NULL'  => { '-' => 0, c => 1, p => 1 },
-    'Linked     IS     NULL'  => { '-' => 1, c => 0, p => 0 },
-    'LinkedTo   IS NOT NULL'  => { '-' => 0, c => 1, p => 0 },
-    'LinkedTo   IS     NULL'  => { '-' => 1, c => 0, p => 1 },
-    'LinkedFrom IS NOT NULL'  => { '-' => 0, c => 0, p => 1 },
-    'LinkedFrom IS     NULL'  => { '-' => 1, c => 1, p => 0 },
-
-    'has_member  IS NOT NULL'  => { '-' => 0, c => 0, p => 1 },
-    'has_member  IS     NULL'  => { '-' => 1, c => 1, p => 0 },
-    'MemberOf   IS NOT NULL'  => { '-' => 0, c => 1, p => 0 },
-    'MemberOf   IS     NULL'  => { '-' => 1, c => 0, p => 1 },
+    'has    .links'       => { '-' => 0, c => 1, p => 1 },
+    'has no .links'       => { '-' => 1, c => 0, p => 0 },
+    'has    .links_to'    => { '-' => 0, c => 1, p => 0 },
+    'has no .links_to'    => { '-' => 1, c => 0, p => 1 },
+    'has    .links_from'  => { '-' => 0, c => 0, p => 1 },
+    'has no .links_from'  => { '-' => 1, c => 1, p => 0 },
+
+    'has    .links{type => "HasMember"}'  => { '-' => 0, c => 0, p => 1 },
+    'has no .links{type => "HasMember"}'  => { '-' => 1, c => 1, p => 0 },
+    'has    .links{type => "MemberOf"}'    => { '-' => 0, c => 1, p => 0 },
+    'has no .links{type => "MemberOf"}'    => { '-' => 1, c => 0, p => 1 },
+
+    'has    .links{type => "RefersTo"}'    => { '-' => 0, c => 0, p => 0 },
+    'has no .links{type => "RefersTo"}'    => { '-' => 1, c => 1, p => 1 },
+
+# TODO:
+#    '.linked      = '. $tickets[0]->id  => { '-' => 0, c => 0, p => 0 },
+#    '.linked     != '. $tickets[0]->id  => { '-' => 1, c => 1, p => 1 },
 
-    'RefersTo   IS NOT NULL'  => { '-' => 0, c => 0, p => 0 },
-    'RefersTo   IS     NULL'  => { '-' => 1, c => 1, p => 1 },
-
-    'Linked      = '. $tickets[0]->id  => { '-' => 0, c => 0, p => 0 },
-    'Linked     != '. $tickets[0]->id  => { '-' => 1, c => 1, p => 1 },
-
-    'MemberOf    = '. $tickets[1]->id  => { '-' => 0, c => 1, p => 0 },
-    'MemberOf   != '. $tickets[1]->id  => { '-' => 1, c => 0, p => 1 },
+    '.links{type => "MemberOf"}.local_target     = '. $tickets[1]->id  => { '-' => 0, c => 1, p => 0 },
+    '.links{type => "MemberOf"}.local_target    != '. $tickets[1]->id  => { '-' => 1, c => 0, p => 1 },
 );
 {
     my $tix = RT::Model::TicketCollection->new(current_user => RT->system_user);
@@ -101,28 +102,44 @@
 @tickets = add_tix_from_data();
 my $pid = $tickets[1]->id;
 %test = (
-    'RefersTo IS NOT NULL'  => { '-' => 0, c => 0, p => 0, rp => 1, rc1 => 1, rc2 => 1 },
-    'RefersTo IS     NULL'  => { '-' => 1, c => 1, p => 1, rp => 0, rc1 => 0, rc2 => 0 },
+    'has    .links{type => "RefersTo"}' => { '-' => 0, c => 0, p => 0, rp => 1, rc1 => 1, rc2 => 1 },
+    'has no .links{type => "RefersTo"}' => { '-' => 1, c => 1, p => 1, rp => 0, rc1 => 0, rc2 => 0 },
 
-    'RefersTo IS NOT NULL AND MemberOf IS NOT NULL'  => { '-' => 0, c => 0, p => 0, rp => 0, rc1 => 0, rc2 => 0 },
-    'RefersTo IS NOT NULL AND MemberOf IS     NULL'  => { '-' => 0, c => 0, p => 0, rp => 1, rc1 => 1, rc2 => 1 },
-    'RefersTo IS     NULL AND MemberOf IS NOT NULL'  => { '-' => 0, c => 1, p => 0, rp => 0, rc1 => 0, rc2 => 0 },
-    'RefersTo IS     NULL AND MemberOf IS     NULL'  => { '-' => 1, c => 0, p => 1, rp => 0, rc1 => 0, rc2 => 0 },
-
-    'RefersTo IS NOT NULL OR  MemberOf IS NOT NULL'  => { '-' => 0, c => 1, p => 0, rp => 1, rc1 => 1, rc2 => 1 },
-    'RefersTo IS NOT NULL OR  MemberOf IS     NULL'  => { '-' => 1, c => 0, p => 1, rp => 1, rc1 => 1, rc2 => 1 },
-    'RefersTo IS     NULL OR  MemberOf IS NOT NULL'  => { '-' => 1, c => 1, p => 1, rp => 0, rc1 => 0, rc2 => 0 },
-    'RefersTo IS     NULL OR  MemberOf IS     NULL'  => { '-' => 1, c => 1, p => 1, rp => 1, rc1 => 1, rc2 => 1 },
-
-    "RefersTo  = $pid AND MemberOf  = $pid" => { '-' => 0, c => 0, p => 0, rp => 0, rc1 => 0, rc2 => 0 },
-    "RefersTo  = $pid AND MemberOf != $pid" => { '-' => 0, c => 0, p => 0, rp => 1, rc1 => 0, rc2 => 0 },
-    "RefersTo != $pid AND MemberOf  = $pid" => { '-' => 0, c => 1, p => 0, rp => 0, rc1 => 0, rc2 => 0 },
-    "RefersTo != $pid AND MemberOf != $pid" => { '-' => 1, c => 0, p => 1, rp => 0, rc1 => 1, rc2 => 1 },
-
-    "RefersTo  = $pid OR  MemberOf  = $pid" => { '-' => 0, c => 1, p => 0, rp => 1, rc1 => 0, rc2 => 0 },
-    "RefersTo  = $pid OR  MemberOf != $pid" => { '-' => 1, c => 0, p => 1, rp => 1, rc1 => 1, rc2 => 1 },
-    "RefersTo != $pid OR  MemberOf  = $pid" => { '-' => 1, c => 1, p => 1, rp => 0, rc1 => 1, rc2 => 1 },
-    "RefersTo != $pid OR  MemberOf != $pid" => { '-' => 1, c => 1, p => 1, rp => 1, rc1 => 1, rc2 => 1 },
+    'has    .links{type => "RefersTo"} AND has    .links{type => "MemberOf"}'
+        => { '-' => 0, c => 0, p => 0, rp => 0, rc1 => 0, rc2 => 0 },
+    'has    .links{type => "RefersTo"} AND has no .links{type => "MemberOf"}'
+        => { '-' => 0, c => 0, p => 0, rp => 1, rc1 => 1, rc2 => 1 },
+    'has no .links{type => "RefersTo"} AND has    .links{type => "MemberOf"}'
+        => { '-' => 0, c => 1, p => 0, rp => 0, rc1 => 0, rc2 => 0 },
+    'has no .links{type => "RefersTo"} AND has no .links{type => "MemberOf"}'
+        => { '-' => 1, c => 0, p => 1, rp => 0, rc1 => 0, rc2 => 0 },
+
+    'has    .links{type => "RefersTo"} OR  has    .links{type => "MemberOf"}'
+        => { '-' => 0, c => 1, p => 0, rp => 1, rc1 => 1, rc2 => 1 },
+    'has    .links{type => "RefersTo"} OR  has no .links{type => "MemberOf"}'
+        => { '-' => 1, c => 0, p => 1, rp => 1, rc1 => 1, rc2 => 1 },
+    'has no .links{type => "RefersTo"} OR  has    .links{type => "MemberOf"}'
+        => { '-' => 1, c => 1, p => 1, rp => 0, rc1 => 0, rc2 => 0 },
+    'has no .links{type => "RefersTo"} OR  has no .links{type => "MemberOf"}'
+        => { '-' => 1, c => 1, p => 1, rp => 1, rc1 => 1, rc2 => 1 },
+
+    ".links{type => 'RefersTo'}.local_target  = $pid AND .links{type => 'MemberOf'}.local_target  = $pid"
+        => { '-' => 0, c => 0, p => 0, rp => 0, rc1 => 0, rc2 => 0 },
+    ".links{type => 'RefersTo'}.local_target  = $pid AND .links{type => 'MemberOf'}.local_target != $pid"
+        => { '-' => 0, c => 0, p => 0, rp => 1, rc1 => 0, rc2 => 0 },
+    ".links{type => 'RefersTo'}.local_target != $pid AND .links{type => 'MemberOf'}.local_target  = $pid"
+        => { '-' => 0, c => 1, p => 0, rp => 0, rc1 => 0, rc2 => 0 },
+    ".links{type => 'RefersTo'}.local_target != $pid AND .links{type => 'MemberOf'}.local_target != $pid"
+        => { '-' => 1, c => 0, p => 1, rp => 0, rc1 => 1, rc2 => 1 },
+
+    ".links{type => 'RefersTo'}.local_target  = $pid OR  .links{type => 'MemberOf'}.local_target  = $pid"
+        => { '-' => 0, c => 1, p => 0, rp => 1, rc1 => 0, rc2 => 0 },
+    ".links{type => 'RefersTo'}.local_target  = $pid OR  .links{type => 'MemberOf'}.local_target != $pid"
+        => { '-' => 1, c => 0, p => 1, rp => 1, rc1 => 1, rc2 => 1 },
+    ".links{type => 'RefersTo'}.local_target != $pid OR  .links{type => 'MemberOf'}.local_target  = $pid"
+        => { '-' => 1, c => 1, p => 1, rp => 0, rc1 => 1, rc2 => 1 },
+    ".links{type => 'RefersTo'}.local_target != $pid OR  .links{type => 'MemberOf'}.local_target != $pid"
+        => { '-' => 1, c => 1, p => 1, rp => 1, rc1 => 1, rc2 => 1 },
 );
 {
     my $tix = RT::Model::TicketCollection->new(current_user => RT->system_user);


More information about the Rt-commit mailing list