[Rt-commit] r4529 - in rt/branches/3.7-EXPERIMENTAL: .
ruz at bestpractical.com
ruz at bestpractical.com
Tue Feb 14 18:28:07 EST 2006
Author: ruz
Date: Tue Feb 14 18:28:00 2006
New Revision: 4529
Modified:
rt/branches/3.7-EXPERIMENTAL/ (props changed)
rt/branches/3.7-EXPERIMENTAL/lib/RT/Tickets_Overlay.pm
rt/branches/3.7-EXPERIMENTAL/lib/RT/Tickets_Overlay_SQL.pm
Log:
r1700 at cubic-pc: cubic | 2006-02-08 13:56:26 +0300
* make tests reintrant in lib/RT/Tickets_Overlay_SQL.pm
* queries changes broke several things, for example
"id = 123 OR MemberOf = 123", all breakages covered allready
in tests.
Modified: rt/branches/3.7-EXPERIMENTAL/lib/RT/Tickets_Overlay.pm
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/lib/RT/Tickets_Overlay.pm (original)
+++ rt/branches/3.7-EXPERIMENTAL/lib/RT/Tickets_Overlay.pm Tue Feb 14 18:28:00 2006
@@ -370,33 +370,43 @@
# AND(main.id = Links_1.LocalTarget))
# WHERE Links_1.LocalBase IS NULL;
- my $linkalias = $sb->Join(
- TYPE => ($is_null || $is_negative)? 'LEFT': 'NORMAL',
- ALIAS1 => 'main',
- FIELD1 => 'id',
- TABLE2 => 'Links',
- FIELD2 => 'Local' . $linkfield
- );
- $sb->_OpenParen();
- $sb->SUPER::Limit(
- @rest,
- ($is_null || $is_negative)? (LEFTJOIN => $linkalias): (),
- FIELD => 'Type',
- OPERATOR => '=',
- VALUE => $meta->[2],
- );
if ($is_null) {
-
+ my $linkalias = $sb->Join(
+ TYPE => 'LEFT',
+ ALIAS1 => 'main',
+ FIELD1 => 'id',
+ TABLE2 => 'Links',
+ FIELD2 => 'Local' . $linkfield
+ );
+ $sb->SUPER::Limit(
+ LEFTJOIN => $linkalias,
+ FIELD => 'Type',
+ OPERATOR => '=',
+ VALUE => $meta->[2],
+ );
$sb->_SQLLimit(
- ALIAS => $linkalias,
- ENTRYAGGREGATOR => 'AND',
- FIELD => $matchfield,
- OPERATOR => $op,
- VALUE => 'NULL',
- QUOTEVALUE => 0,
+ @rest,
+ ALIAS => $linkalias,
+ FIELD => $matchfield,
+ OPERATOR => $op,
+ VALUE => 'NULL',
+ QUOTEVALUE => 0,
);
}
elsif ( $is_negative ) {
+ my $linkalias = $sb->Join(
+ TYPE => 'LEFT',
+ ALIAS1 => 'main',
+ FIELD1 => 'id',
+ TABLE2 => 'Links',
+ FIELD2 => 'Local' . $linkfield
+ );
+ $sb->SUPER::Limit(
+ LEFTJOIN => $linkalias,
+ FIELD => 'Type',
+ OPERATOR => '=',
+ VALUE => $meta->[2],
+ );
$sb->SUPER::Limit(
LEFTJOIN => $linkalias,
FIELD => $matchfield,
@@ -404,27 +414,41 @@
VALUE => $value,
);
$sb->_SQLLimit(
- ALIAS => $linkalias,
- ENTRYAGGREGATOR => 'AND',
- FIELD => $matchfield,
- OPERATOR => 'IS',
- VALUE => 'NULL',
- QUOTEVALUE => 0,
+ @rest,
+ ALIAS => $linkalias,
+ FIELD => $matchfield,
+ OPERATOR => 'IS',
+ VALUE => 'NULL',
+ QUOTEVALUE => 0,
);
}
else {
-
-
+ my $linkalias = $sb->NewAlias('Links');
+ $sb->_OpenParen();
+ $sb->_SQLLimit(
+ @rest,
+ ALIAS => $linkalias,
+ FIELD => 'Type',
+ OPERATOR => '=',
+ VALUE => $meta->[2],
+ );
$sb->_SQLLimit(
ALIAS => $linkalias,
+ FIELD => 'Local' . $linkfield,
+ OPERATOR => '=',
+ VALUE => 'main.id',
+ QUOTEVALUE => 0,
ENTRYAGGREGATOR => 'AND',
- FIELD => $matchfield,
- OPERATOR => $op,
- VALUE => $value,
);
-
+ $sb->_SQLLimit(
+ ALIAS => $linkalias,
+ FIELD => $matchfield,
+ OPERATOR => $op,
+ VALUE => $value,
+ ENTRYAGGREGATOR => 'AND',
+ );
+ $sb->_CloseParen();
}
- $sb->_CloseParen();
}
=head2 _DateLimit
Modified: rt/branches/3.7-EXPERIMENTAL/lib/RT/Tickets_Overlay_SQL.pm
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/lib/RT/Tickets_Overlay_SQL.pm (original)
+++ rt/branches/3.7-EXPERIMENTAL/lib/RT/Tickets_Overlay_SQL.pm Tue Feb 14 18:28:00 2006
@@ -280,66 +280,66 @@
=begin testing
use RT::Tickets;
-
-
+use strict;
my $tix = RT::Tickets->new($RT::SystemUser);
+{
+ my $query = "Status = 'open'";
+ my ($status, $msg) = $tix->FromSQL($query);
+ ok ($status, "correct query") or diag("error: $msg");
+}
-my $query = "Status = 'open'";
-my ($id, $msg) = $tix->FromSQL($query);
-
-ok ($id, $msg);
-
-
-my (@ids, @expectedids);
-
-my $t = RT::Ticket->new($RT::SystemUser);
+my (@created,%created);
my $string = 'subject/content SQL test';
-ok( $t->Create(Queue => 'General', Subject => $string), "Ticket Created");
-
-push @ids, $t->Id;
-
-my $Message = MIME::Entity->build(
- Subject => 'this is my subject',
- From => 'jesse at example.com',
- Data => [ $string ],
- );
-
-ok( $t->Create(Queue => 'General', Subject => 'another ticket', MIMEObj => $Message, MemberOf => $ids[0]), "Ticket Created");
-
-push @ids, $t->Id;
-
-$query = ("Subject LIKE '$string' OR Content LIKE '$string'");
-
-my ($id, $msg) = $tix->FromSQL($query);
-
-
-ok ($id, $msg);
-
-is ($tix->Count, scalar @ids, "number of returned tickets same as entered");
-while (my $tick = $tix->Next) {
- push @expectedids, $tick->Id;
+{
+ my $t = RT::Ticket->new($RT::SystemUser);
+ ok( $t->Create(Queue => 'General', Subject => $string), "Ticket Created");
+ $created{ $t->Id }++; push @created, $t->Id;
}
-ok (eq_array(\@ids, \@expectedids), "returned expected tickets");
-#
-$query = ("id = $ids[0] OR MemberOf = $ids[0]");
-
-my ($id, $msg) = $tix->FromSQL($query);
-
-ok ($id, $msg);
-is ($tix->Count, scalar @ids, "number of returned tickets same as entered");
-
-my ($id, $msg) = $tix->FromSQL($query);
- at expectedids = ();
+{
+ my $Message = MIME::Entity->build(
+ Subject => 'this is my subject',
+ From => 'jesse at example.com',
+ Data => [ $string ],
+ );
+
+ my $t = RT::Ticket->new($RT::SystemUser);
+ ok( $t->Create( Queue => 'General',
+ Subject => 'another ticket',
+ MIMEObj => $Message,
+ MemberOf => $created[0]
+ ),
+ "Ticket Created"
+ );
+ $created{ $t->Id }++; push @created, $t->Id;
+}
+{
+ my $query = ("Subject LIKE '$string' OR Content LIKE '$string'");
+ my ($status, $msg) = $tix->FromSQL($query);
+ ok ($status, "correct query") or diag("error: $msg");
+
+ my $count = 0;
+ while (my $tick = $tix->Next) {
+ $count++ if $created{ $tick->id };
+ }
+ is ($count, scalar @created, "number of returned tickets same as entered");
+}
-while (my $tick = $tix->Next) {
- push @expectedids, $tick->Id;
+{
+ my $query = "id = $created[0] OR MemberOf = $created[0]";
+ my ($status, $msg) = $tix->FromSQL($query);
+ ok ($status, "correct query") or diag("error: $msg");
+
+ my $count = 0;
+ while (my $tick = $tix->Next) {
+ $count++ if $created{ $tick->id };
+ }
+ is ($count, scalar @created, "number of returned tickets same as entered");
}
-ok (eq_array(\@ids, \@expectedids), "returned expected tickets". join(",", at ids) . "==".join(",", at expectedids));
=end testing
More information about the Rt-commit
mailing list