From 1c538bfabc2cd31f27067505f0c3d1a46cba6ef0 Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Thu, 9 Jul 2015 22:18:55 -0700 Subject: RT 4.2.11, ticket#13852 --- rt/t/ticket/time-worked.t | 80 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 rt/t/ticket/time-worked.t (limited to 'rt/t/ticket/time-worked.t') diff --git a/rt/t/ticket/time-worked.t b/rt/t/ticket/time-worked.t new file mode 100644 index 000000000..3e8724221 --- /dev/null +++ b/rt/t/ticket/time-worked.t @@ -0,0 +1,80 @@ +use strict; +use warnings; + +use RT::Test tests => 27; + +my $queue = RT::Test->load_or_create_queue( Name => 'General' ); +ok $queue && $queue->id, "loaded or created a queue"; + +note 'set on Create'; +{ + my $ticket = RT::Test->create_ticket( + Queue => $queue->id, TimeWorked => 10, + ); + is $ticket->TimeWorked, 10, 'correct value'; + + my $txn = RT::Transaction->new( RT->SystemUser ); + $txn->LoadByCols( + ObjectType => 'RT::Ticket', ObjectId => $ticket->id, + Type => 'Create', + ); + ok $txn->id, 'found transaction'; + is $txn->TimeTaken, 10, 'correct value'; +} + +note 'set on Comment'; +{ + my $ticket = RT::Test->create_ticket( Queue => $queue->id ); + ok !$ticket->TimeWorked, 'correct value'; + $ticket->Comment( Content => 'test', TimeTaken => 10 ); + is $ticket->TimeWorked, 10, 'correct value'; + + my $txn = RT::Transaction->new( RT->SystemUser ); + $txn->LoadByCols( + ObjectType => 'RT::Ticket', ObjectId => $ticket->id, + Type => 'Comment', + ); + ok $txn->id, 'found transaction'; + is $txn->TimeTaken, 10, 'correct value'; +} + +note 'update'; +{ + my $ticket = RT::Test->create_ticket( Queue => $queue->id ); + ok !$ticket->TimeWorked, 'correct value'; + $ticket->SetTimeWorked( 10 ); + is $ticket->TimeWorked, 10, 'correct value'; + + my $txn = RT::Transaction->new( RT->SystemUser ); + $txn->LoadByCols( + ObjectType => 'RT::Ticket', ObjectId => $ticket->id, + Type => 'Set', Field => 'TimeWorked', + ); + ok $txn->id, 'found transaction'; + is $txn->TimeTaken, 10, 'correct value'; +} + +note 'on Merge'; +{ + my $ticket = RT::Test->create_ticket( + Queue => $queue->id, TimeWorked => 7, + ); + { + my $tmp = RT::Test->create_ticket( + Queue => $queue->id, TimeWorked => 13, + ); + my ($status, $msg) = $tmp->MergeInto( $ticket->id ); + ok $status, "merged tickets"; + } + $ticket->Load( $ticket->id ); + is $ticket->TimeWorked, 20, 'correct value'; +} + +sub dump_txns { + my $ticket = shift; + my $txns = $ticket->Transactions; + while ( my $txn = $txns->Next ) { + diag sprintf "#%d\t%s\t%s\t%d", map $txn->$_() // '', qw(id Type Field TimeTaken); + } +} + -- cgit v1.2.1