diff options
Diffstat (limited to 'rt/t/shredder/01ticket.t')
-rw-r--r-- | rt/t/shredder/01ticket.t | 55 |
1 files changed, 28 insertions, 27 deletions
diff --git a/rt/t/shredder/01ticket.t b/rt/t/shredder/01ticket.t index 0a9da41..57179bc 100644 --- a/rt/t/shredder/01ticket.t +++ b/rt/t/shredder/01ticket.t @@ -3,19 +3,10 @@ use strict; use warnings; use Test::Deep; -use File::Spec; -use Test::More tests => 15 + 1; # plus one for warnings check -use RT::Test (); +use RT::Test::Shredder tests => 20; +my $test = "RT::Test::Shredder"; - -BEGIN { - my $shredder_utils = RT::Test::get_relocatable_file('utils.pl', - File::Spec->curdir()); - require $shredder_utils; -} - -init_db(); -create_savepoint('clean'); +$test->create_savepoint('clean'); use RT::Ticket; use RT::Tickets; @@ -26,23 +17,25 @@ use RT::Tickets; ok( $id, "created new ticket" ); $ticket->Delete; is( $ticket->Status, 'deleted', "successfuly changed status" ); + $ticket->ApplyTransactionBatch; my $tickets = RT::Tickets->new( RT->SystemUser ); $tickets->{'allow_deleted_search'} = 1; $tickets->LimitStatus( VALUE => 'deleted' ); is( $tickets->Count, 1, "found one deleted ticket" ); - my $shredder = shredder_new(); + my $shredder = $test->shredder_new(); $shredder->PutObjects( Objects => $tickets ); $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"); { my $parent = RT::Ticket->new( RT->SystemUser ); my ($pid) = $parent->Create( Subject => 'test', Queue => 1 ); ok( $pid, "created new ticket" ); - create_savepoint('parent_ticket'); + $test->create_savepoint('parent_ticket'); my $child = RT::Ticket->new( RT->SystemUser ); my ($cid) = $child->Create( Subject => 'test', Queue => 1 ); @@ -50,15 +43,21 @@ cmp_deeply( dump_current_and_savepoint('clean'), "current DB equal to savepoint" my ($status, $msg) = $parent->AddLink( Type => 'MemberOf', Target => $cid ); ok( $status, "Added link between tickets") or diag("error: $msg"); - my $shredder = shredder_new(); + + $parent->ApplyTransactionBatch; + $child->ApplyTransactionBatch; + + my $shredder = $test->shredder_new(); $shredder->PutObjects( Objects => $child ); $shredder->WipeoutAll; - cmp_deeply( dump_current_and_savepoint('parent_ticket'), "current DB equal to savepoint"); + $test->db_is_valid; + cmp_deeply( $test->dump_current_and_savepoint('parent_ticket'), "current DB equal to savepoint"); $shredder->PutObjects( Objects => $parent ); $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"); { my $parent = RT::Ticket->new( RT->SystemUser ); @@ -66,24 +65,26 @@ cmp_deeply( dump_current_and_savepoint('clean'), "current DB equal to savepoint" ok( $pid, "created new ticket" ); my ($status, $msg) = $parent->Delete; ok( $status, 'deleted parent ticket'); - create_savepoint('parent_ticket'); + $test->create_savepoint('parent_ticket'); my $child = RT::Ticket->new( RT->SystemUser ); my ($cid) = $child->Create( Subject => 'test', Queue => 1 ); - ok( $cid, "created new ticket" ); + ok( $cid, "created new ticket #$cid" ); ($status, $msg) = $parent->AddLink( Type => 'DependsOn', Target => $cid ); ok( $status, "Added link between tickets") or diag("error: $msg"); - my $shredder = shredder_new(); + + $parent->ApplyTransactionBatch; + $child->ApplyTransactionBatch; + + my $shredder = $test->shredder_new(); $shredder->PutObjects( Objects => $child ); $shredder->WipeoutAll; - - TODO: { - local $TODO = "Shredder doesn't delete all links and transactions"; - cmp_deeply( dump_current_and_savepoint('parent_ticket'), "current DB equal to savepoint"); - } + $test->db_is_valid; + cmp_deeply( $test->dump_current_and_savepoint('parent_ticket'), "current DB equal to savepoint"); $shredder->PutObjects( Objects => $parent ); $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"); |