summaryrefslogtreecommitdiff
path: root/rt/lib/t/regression/16-transaction_cf_tests.t
blob: 9e1e86ca457285ef36f65b4ac80cfb097d9ab654 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/usr/bin/perl

use warnings;
use strict;
use Data::Dumper;
use Test::More qw/no_plan/;

use_ok('RT');
use_ok('RT::Transactions');
RT::LoadConfig();
RT::Init();

my $q = RT::Queue->new($RT::SystemUser);
my ($id,$msg) = $q->Create( Name => 'TxnCFTest'.$$);
ok($id,$msg);

my $cf = RT::CustomField->new($RT::SystemUser);
($id,$msg) = $cf->Create(Name => 'Txnfreeform-'.$$, Type => 'Freeform', MaxValues => '0', LookupType => RT::Transaction->CustomFieldLookupType );

ok($id,$msg);

($id,$msg) = $cf->AddToObject($q);

ok($id,$msg);


my $ticket = RT::Ticket->new($RT::SystemUser);

my $transid;
($id,$transid, $msg) = $ticket->Create(Queue => $q->id,
                Subject => 'TxnCF test',
            );
ok($id,$msg);

my $trans = RT::Transaction->new($RT::SystemUser);
$trans->Load($transid);

is($trans->ObjectId,$id);
is ($trans->ObjectType, 'RT::Ticket');
is ($trans->Type, 'Create');
my $txncfs = $trans->CustomFields;
is ($txncfs->Count, 1, "We have one custom field");
my $txn_cf = $txncfs->First;
is ($txn_cf->id, $cf->id, "It's the right custom field");
my $values = $trans->CustomFieldValues($txn_cf->id);
is ($values->Count, 0, "It has no values");

# Old API
my %cf_updates = ( 'CustomField-'.$cf->id => 'Testing');
$trans->UpdateCustomFields( ARGSRef => \%cf_updates);

 $values = $trans->CustomFieldValues($txn_cf->id);
is ($values->Count, 1, "It has one value");

# New API

$trans->UpdateCustomFields( 'CustomField-'.$cf->id => 'Test two');
 $values = $trans->CustomFieldValues($txn_cf->id);
is ($values->Count, 2, "it has two values");

# TODO ok(0, "Should updating custom field values remove old values?");