summaryrefslogtreecommitdiff
path: root/rt/t/shredder/03plugin_tickets.t
diff options
context:
space:
mode:
Diffstat (limited to 'rt/t/shredder/03plugin_tickets.t')
-rw-r--r--rt/t/shredder/03plugin_tickets.t150
1 files changed, 0 insertions, 150 deletions
diff --git a/rt/t/shredder/03plugin_tickets.t b/rt/t/shredder/03plugin_tickets.t
deleted file mode 100644
index 3d742ff83..000000000
--- a/rt/t/shredder/03plugin_tickets.t
+++ /dev/null
@@ -1,150 +0,0 @@
-#!/usr/bin/perl -w
-
-use strict;
-use warnings;
-
-use Test::Deep;
-use File::Spec;
-use Test::More tests => 44;
-use RT::Test ();
-BEGIN {
- my $shredder_utils = RT::Test::get_relocatable_file('utils.pl',
- File::Spec->curdir());
- require $shredder_utils;
-}
-
-
-use_ok('RT::Shredder::Plugin::Tickets');
-{
- my $plugin = new RT::Shredder::Plugin::Tickets;
- isa_ok($plugin, 'RT::Shredder::Plugin::Tickets');
-
- is(lc $plugin->Type, 'search', 'correct type');
-}
-
-init_db();
-create_savepoint('clean');
-use_ok('RT::Ticket');
-use_ok('RT::Tickets');
-
-{ # create parent and child and check functionality of 'with_linked' arg
- my $parent = RT::Ticket->new( $RT::SystemUser );
- my ($pid) = $parent->Create( Subject => 'parent', Queue => 1 );
- ok( $pid, "created new ticket" );
-
- my $child = RT::Ticket->new( $RT::SystemUser );
- my ($cid) = $child->Create( Subject => 'child', Queue => 1, MemberOf => $pid );
- ok( $cid, "created new ticket" );
-
- my $plugin = new RT::Shredder::Plugin::Tickets;
- isa_ok($plugin, 'RT::Shredder::Plugin::Tickets');
-
- my ($status, $msg, @objs);
- ($status, $msg) = $plugin->TestArgs( query => 'Subject = "parent"' );
- ok($status, "plugin arguments are ok") or diag "error: $msg";
-
- ($status, @objs) = $plugin->Run;
- ok($status, "executed plugin successfully") or diag "error: @objs";
- @objs = RT::Shredder->CastObjectsToRecords( Objects => \@objs );
- is(scalar @objs, 1, "only one object in result set");
- is($objs[0]->id, $pid, "parent is in result set");
-
- ($status, $msg) = $plugin->TestArgs( query => 'Subject = "parent"', with_linked => 1 );
- ok($status, "plugin arguments are ok") or diag "error: $msg";
-
- ($status, @objs) = $plugin->Run;
- ok($status, "executed plugin successfully") or diag "error: @objs";
- @objs = RT::Shredder->CastObjectsToRecords( Objects => \@objs );
- my %has = map { $_->id => 1 } @objs;
- is(scalar @objs, 2, "two objects in the result set");
- ok($has{$pid}, "parent is in the result set");
- ok($has{$cid}, "child is in the result set");
-
- my $shredder = shredder_new();
- $shredder->PutObjects( Objects => \@objs );
- $shredder->WipeoutAll;
-}
-cmp_deeply( dump_current_and_savepoint('clean'), "current DB equal to savepoint");
-
-{ # create parent and child and link them reqursively to check that we don't hang
- my $parent = RT::Ticket->new( $RT::SystemUser );
- my ($pid) = $parent->Create( Subject => 'parent', Queue => 1 );
- ok( $pid, "created new ticket" );
-
- my $child = RT::Ticket->new( $RT::SystemUser );
- my ($cid) = $child->Create( Subject => 'child', Queue => 1, MemberOf => $pid );
- ok( $cid, "created new ticket" );
-
- my ($status, $msg) = $child->AddLink( Target => $pid, Type => 'DependsOn' );
- ok($status, "added reqursive link") or diag "error: $msg";
-
- my $plugin = new RT::Shredder::Plugin::Tickets;
- isa_ok($plugin, 'RT::Shredder::Plugin::Tickets');
-
- my (@objs);
- ($status, $msg) = $plugin->TestArgs( query => 'Subject = "parent"' );
- ok($status, "plugin arguments are ok") or diag "error: $msg";
-
- ($status, @objs) = $plugin->Run;
- ok($status, "executed plugin successfully") or diag "error: @objs";
- @objs = RT::Shredder->CastObjectsToRecords( Objects => \@objs );
- is(scalar @objs, 1, "only one object in result set");
- is($objs[0]->id, $pid, "parent is in result set");
-
- ($status, $msg) = $plugin->TestArgs( query => 'Subject = "parent"', with_linked => 1 );
- ok($status, "plugin arguments are ok") or diag "error: $msg";
-
- ($status, @objs) = $plugin->Run;
- ok($status, "executed plugin successfully") or diag "error: @objs";
- @objs = RT::Shredder->CastObjectsToRecords( Objects => \@objs );
- is(scalar @objs, 2, "two objects in the result set");
- my %has = map { $_->id => 1 } @objs;
- ok($has{$pid}, "parent is in the result set");
- ok($has{$cid}, "child is in the result set");
-
- my $shredder = shredder_new();
- $shredder->PutObjects( Objects => \@objs );
- $shredder->WipeoutAll;
-}
-cmp_deeply( dump_current_and_savepoint('clean'), "current DB equal to savepoint");
-
-{ # create parent and child and check functionality of 'apply_query_to_linked' arg
- my $parent = RT::Ticket->new( $RT::SystemUser );
- my ($pid) = $parent->Create( Subject => 'parent', Queue => 1, Status => 'resolved' );
- ok( $pid, "created new ticket" );
-
- my $child1 = RT::Ticket->new( $RT::SystemUser );
- my ($cid1) = $child1->Create( Subject => 'child', Queue => 1, MemberOf => $pid );
- ok( $cid1, "created new ticket" );
- my $child2 = RT::Ticket->new( $RT::SystemUser );
- my ($cid2) = $child2->Create( Subject => 'child', Queue => 1, MemberOf => $pid, Status => 'resolved' );
- ok( $cid2, "created new ticket" );
-
- my $plugin = new RT::Shredder::Plugin::Tickets;
- isa_ok($plugin, 'RT::Shredder::Plugin::Tickets');
-
- my ($status, $msg) = $plugin->TestArgs( query => 'Status = "resolved"', apply_query_to_linked => 1 );
- ok($status, "plugin arguments are ok") or diag "error: $msg";
-
- my @objs;
- ($status, @objs) = $plugin->Run;
- ok($status, "executed plugin successfully") or diag "error: @objs";
- @objs = RT::Shredder->CastObjectsToRecords( Objects => \@objs );
- is(scalar @objs, 2, "two objects in the result set");
- my %has = map { $_->id => 1 } @objs;
- ok($has{$pid}, "parent is in the result set");
- ok(!$has{$cid1}, "first child is in the result set");
- ok($has{$cid2}, "second child is in the result set");
-
- my $shredder = shredder_new();
- $shredder->PutObjects( Objects => \@objs );
- $shredder->WipeoutAll;
-
- my $ticket = RT::Ticket->new( $RT::SystemUser );
- $ticket->Load( $cid1 );
- is($ticket->id, $cid1, 'loaded ticket');
-
- $shredder->PutObjects( Objects => $ticket );
- $shredder->WipeoutAll;
-}
-cmp_deeply( dump_current_and_savepoint('clean'), "current DB equal to savepoint");