X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Ft%2Fshredder%2F03plugin_tickets.t;h=dd2b120c43dc3b94b9d6c432101908e51d6367b5;hb=1878ee1e6238755464472ea20e944fdab8fb5f0b;hp=3d742ff83330a375dca596248311e9ab931ddaa9;hpb=b4b0c7e72d7eaee2fbfc7022022c9698323203dd;p=freeside.git diff --git a/rt/t/shredder/03plugin_tickets.t b/rt/t/shredder/03plugin_tickets.t index 3d742ff83..dd2b120c4 100644 --- a/rt/t/shredder/03plugin_tickets.t +++ b/rt/t/shredder/03plugin_tickets.t @@ -1,42 +1,35 @@ -#!/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 RT::Test::Shredder tests => 49; +my $test = "RT::Test::Shredder"; +use_ok('RT::Shredder'); use_ok('RT::Shredder::Plugin::Tickets'); { - my $plugin = new RT::Shredder::Plugin::Tickets; + my $plugin = RT::Shredder::Plugin::Tickets->new; isa_ok($plugin, 'RT::Shredder::Plugin::Tickets'); is(lc $plugin->Type, 'search', 'correct type'); } -init_db(); -create_savepoint('clean'); +$test->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 $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 $child = RT::Ticket->new( RT->SystemUser ); my ($cid) = $child->Create( Subject => 'child', Queue => 1, MemberOf => $pid ); ok( $cid, "created new ticket" ); + $_->ApplyTransactionBatch for $parent, $child; - my $plugin = new RT::Shredder::Plugin::Tickets; + my $plugin = RT::Shredder::Plugin::Tickets->new; isa_ok($plugin, 'RT::Shredder::Plugin::Tickets'); my ($status, $msg, @objs); @@ -60,25 +53,28 @@ use_ok('RT::Tickets'); ok($has{$pid}, "parent is in the result set"); ok($has{$cid}, "child is in the result set"); - my $shredder = shredder_new(); + my $shredder = $test->shredder_new(); $shredder->PutObjects( Objects => \@objs ); $shredder->WipeoutAll; + $test->db_is_valid; } -cmp_deeply( dump_current_and_savepoint('clean'), "current DB equal to savepoint"); +cmp_deeply( $test->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 $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 $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; + $_->ApplyTransactionBatch for $parent, $child; + + my $plugin = RT::Shredder::Plugin::Tickets->new; isa_ok($plugin, 'RT::Shredder::Plugin::Tickets'); my (@objs); @@ -102,25 +98,30 @@ cmp_deeply( dump_current_and_savepoint('clean'), "current DB equal to savepoint" ok($has{$pid}, "parent is in the result set"); ok($has{$cid}, "child is in the result set"); - my $shredder = shredder_new(); + my $shredder = $test->shredder_new(); $shredder->PutObjects( Objects => \@objs ); $shredder->WipeoutAll; + $test->db_is_valid; } -cmp_deeply( dump_current_and_savepoint('clean'), "current DB equal to savepoint"); +cmp_deeply( $test->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' ); + my $parent = RT::Ticket->new( RT->SystemUser ); + my ($pid) = $parent->Create( Subject => 'parent', Queue => 1 ); ok( $pid, "created new ticket" ); + $parent->SetStatus('resolved'); - my $child1 = RT::Ticket->new( $RT::SystemUser ); + 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' ); + my $child2 = RT::Ticket->new( RT->SystemUser ); + my ($cid2) = $child2->Create( Subject => 'child', Queue => 1, MemberOf => $pid); ok( $cid2, "created new ticket" ); + $child2->SetStatus('resolved'); + + $_->ApplyTransactionBatch for $parent, $child1, $child2; - my $plugin = new RT::Shredder::Plugin::Tickets; + my $plugin = RT::Shredder::Plugin::Tickets->new; isa_ok($plugin, 'RT::Shredder::Plugin::Tickets'); my ($status, $msg) = $plugin->TestArgs( query => 'Status = "resolved"', apply_query_to_linked => 1 ); @@ -136,15 +137,17 @@ cmp_deeply( dump_current_and_savepoint('clean'), "current DB equal to savepoint" ok(!$has{$cid1}, "first child is in the result set"); ok($has{$cid2}, "second child is in the result set"); - my $shredder = shredder_new(); + my $shredder = $test->shredder_new(); $shredder->PutObjects( Objects => \@objs ); $shredder->WipeoutAll; + $test->db_is_valid; - my $ticket = RT::Ticket->new( $RT::SystemUser ); + my $ticket = RT::Ticket->new( RT->SystemUser ); $ticket->Load( $cid1 ); is($ticket->id, $cid1, 'loaded ticket'); $shredder->PutObjects( Objects => $ticket ); $shredder->WipeoutAll; + $test->db_is_valid; } -cmp_deeply( dump_current_and_savepoint('clean'), "current DB equal to savepoint"); +cmp_deeply( $test->dump_current_and_savepoint('clean'), "current DB equal to savepoint");