[Rt-commit] r5254 - in RT-Extension-CommandByEmail: t
ruz at bestpractical.com
ruz at bestpractical.com
Thu May 18 19:41:43 EDT 2006
Author: ruz
Date: Thu May 18 19:41:43 2006
New Revision: 5254
Modified:
RT-Extension-CommandByEmail/lib/RT/Interface/Email/Filter/TakeAction.pm
RT-Extension-CommandByEmail/t/03.update.t
Log:
* TimeWorked should be additive on comment/correspond
Modified: RT-Extension-CommandByEmail/lib/RT/Interface/Email/Filter/TakeAction.pm
==============================================================================
--- RT-Extension-CommandByEmail/lib/RT/Interface/Email/Filter/TakeAction.pm (original)
+++ RT-Extension-CommandByEmail/lib/RT/Interface/Email/Filter/TakeAction.pm Thu May 18 19:41:43 2006
@@ -144,7 +144,7 @@
$ticket_as_user->Load( $args{'Ticket'}->id );
# we set status later as correspond can reopen ticket
- foreach my $attribute (grep $_ ne 'Status', @REGULAR_ATTRIBUTES, @TIME_ATTRIBUTES) {
+ foreach my $attribute (grep !/^(Status|TimeWorked)/, @REGULAR_ATTRIBUTES, @TIME_ATTRIBUTES) {
next unless defined $cmds{ lc $attribute };
next if $ticket_as_user->$attribute() eq $cmds{ lc $attribute };
@@ -202,8 +202,15 @@
}
{
+ my $time_taken = 0;
+ $time_taken = $cmds{'timeworked'} || 0
+ if grep $_ eq 'TimeWorked', @TIME_ATTRIBUTES;
+
my $method = ucfirst $args{'Action'};
- my ($status, $msg) = $ticket_as_user->$method( MIMEObj => $args{'Message'} );
+ my ($status, $msg) = $ticket_as_user->$method(
+ TimeTaken => $time_taken,
+ MIMEObj => $args{'Message'},
+ );
unless ( $status ) {
$RT::Logger->warning(
"Couldn't write $args{'Action'}."
Modified: RT-Extension-CommandByEmail/t/03.update.t
==============================================================================
--- RT-Extension-CommandByEmail/t/03.update.t (original)
+++ RT-Extension-CommandByEmail/t/03.update.t Thu May 18 19:41:43 2006
@@ -87,7 +87,7 @@
diag("set time on update") if $ENV{'TEST_VERBOSE'};
foreach my $field ( qw(TimeWorked TimeEstimated TimeLeft) ) {
- my $value = int rand 10;
+ my $value = 1 + int rand 10;
my $text = <<END;
Subject: [$RT::rtname #$test_ticket_id] test
From: root\@localhost
@@ -105,6 +105,31 @@
}
+diag("check time worked additivness") if $ENV{'TEST_VERBOSE'};
+{
+ my $obj = RT::Ticket->new( $RT::SystemUser );
+ $obj->Load( $test_ticket_id );
+ is($obj->id, $test_ticket_id, "loaded ticket");
+ my $current = $obj->TimeWorked;
+ ok($current, "time worked is greater than zero");
+
+ my $text = <<END;
+Subject: [$RT::rtname #$test_ticket_id] test
+From: root\@localhost
+
+TimeWorked: 10
+
+test
+END
+ my $id = create_ticket_via_gate( $text );
+ is($id, $test_ticket_id, "updated ticket");
+ $obj = RT::Ticket->new( $RT::SystemUser );
+ $obj->Load( $id );
+ is($obj->id, $id, "loaded ticket");
+ is($obj->TimeWorked, $current + 10, 'set time' );
+}
+
+
diag("set watchers on update") if $ENV{'TEST_VERBOSE'};
foreach my $field ( qw(Requestor Cc AdminCc) ) {
my $value = 'test at localhost';
More information about the Rt-commit
mailing list