[Rt-commit] r2890 - in rt/branches/CHALDEA-EXPERIMENTAL/lib: RT t/regression

autrijus at bestpractical.com autrijus at bestpractical.com
Wed May 18 08:36:58 EDT 2005


Author: autrijus
Date: Wed May 18 08:36:58 2005
New Revision: 2890

Modified:
   rt/branches/CHALDEA-EXPERIMENTAL/lib/RT/CustomFieldValue_Overlay.pm
   rt/branches/CHALDEA-EXPERIMENTAL/lib/RT/CustomField_Overlay.pm
   rt/branches/CHALDEA-EXPERIMENTAL/lib/t/regression/15cf_combo_cascade.t
Log:
* stub for $cfv->Category and $cfv->SetCategory, as well as $cfv->Create
  that accepts Category as key.

Modified: rt/branches/CHALDEA-EXPERIMENTAL/lib/RT/CustomFieldValue_Overlay.pm
==============================================================================
--- rt/branches/CHALDEA-EXPERIMENTAL/lib/RT/CustomFieldValue_Overlay.pm	(original)
+++ rt/branches/CHALDEA-EXPERIMENTAL/lib/RT/CustomFieldValue_Overlay.pm	Wed May 18 08:36:58 2005
@@ -13,6 +13,36 @@
 
 =cut
 
+sub Create {
+    my $self = shift;
+    my %args = @_;
+    (defined $args{$_} or delete $args{$_}) for keys %args;
+    %args = ((CustomField => '0',
+              Name => '',
+              Description => '',
+              SortOrder => '0',
+              Category => ''), %args);
+
+    my ($id, $msg) = $self->SUPER::Create(
+        map {$_ => $args{$_}} qw(CustomField Name Description SortOrder)
+    );
+    if ($id and length $args{Category}) {
+        # $self would be loaded at this stage
+        $self->SetCategory($args{Category});
+    }
+    return ($id, $msg);
+}
+
+sub Category {
+    my $self = shift;
+    return '';
+}
+
+sub SetCategory {
+    my $self = shift;
+    my $category = shift;
+    return (0, '');
+}
 
 sub ValidateName { 1 };
 

Modified: rt/branches/CHALDEA-EXPERIMENTAL/lib/RT/CustomField_Overlay.pm
==============================================================================
--- rt/branches/CHALDEA-EXPERIMENTAL/lib/RT/CustomField_Overlay.pm	(original)
+++ rt/branches/CHALDEA-EXPERIMENTAL/lib/RT/CustomField_Overlay.pm	Wed May 18 08:36:58 2005
@@ -361,26 +361,19 @@
 =cut
 
 sub AddValue {
-	my $self = shift;
-	my %args = ( Name => undef,
-		     Description => undef,
-		     SortOrder => undef,
-		     @_ );
+    my $self = shift;
+    my %args = @_;
 
     unless ($self->CurrentUserHasRight('AdminCustomField')) {
         return (0, $self->loc('Permission Denied'));
     }
 
-    unless ($args{'Name'}) {
+    unless (length $args{'Name'}) {
         return(0, $self->loc("Can't add a custom field value without a name"));
     }
-	my $newval = RT::CustomFieldValue->new($self->CurrentUser);
-	return($newval->Create(
-		     CustomField => $self->Id,
-             Name =>$args{'Name'},
-             Description => ($args{'Description'} || ''),
-             SortOrder => ($args{'SortOrder'} || '0')
-        ));    
+
+    my $newval = RT::CustomFieldValue->new($self->CurrentUser);
+    return($newval->Create(%args, CustomField => $self->Id));
 }
 
 

Modified: rt/branches/CHALDEA-EXPERIMENTAL/lib/t/regression/15cf_combo_cascade.t
==============================================================================
--- rt/branches/CHALDEA-EXPERIMENTAL/lib/t/regression/15cf_combo_cascade.t	(original)
+++ rt/branches/CHALDEA-EXPERIMENTAL/lib/t/regression/15cf_combo_cascade.t	Wed May 18 08:36:58 2005
@@ -31,20 +31,20 @@
 my ($id,undef,$msg) = $t->Create(Queue => $q->id, Subject => 'CF Test');
 ok($id,$msg);
 
-sub cnt { $cf->Values->Count };
-sub add { $cf->AddValue(Field => $cf->id, Value => $_[0], Category => $_[1]) };
+sub add_ok {
+    my ($id, $msg) = $cf->AddValue(Name => $_[0], Description => $_[0], Category => $_[1]);
+    ok($id, $msg);
+};
 
-ok(add('value1', '1. Category A'));
-is(cnt(), 1, "Value filled");
-ok(add('value2'));
-is(cnt(), 2, "Value filled");
-ok(add('value3', '1.1. A-sub one'));
-is(cnt(), 3, "Value filled");
-ok(add('value4', '1.2. A-sub two'));
-is(cnt(), 4, "Value filled");
-ok(add('value5', ''));
-is(cnt(), 5, "Value filled");
+add_ok('value1', '1. Category A');
+add_ok('value2');
+add_ok('value3', '1.1. A-sub one');
+add_ok('value4', '1.2. A-sub two');
+add_ok('value5', '');
 
-is($cf->Values->First->Category('1. Category A'), '1. Category A');
+my $cfv = $cf->Values->First;
+is($cfv->Category, '1. Category A');
+ok($cfv->SetCategory('1. Category AAA'));
+is($cfv->Category, '1. Category AAA');
 
 1;


More information about the Rt-commit mailing list