RT 4.2.11, ticket#13852
[freeside.git] / rt / t / customfields / transaction.t
1
2 use warnings;
3 use strict;
4 use Data::Dumper;
5
6 use RT::Test nodata => 1, tests => 13;
7 use_ok('RT');
8 use_ok('RT::Transactions');
9
10
11 my $q = RT::Queue->new(RT->SystemUser);
12 my ($id,$msg) = $q->Create( Name => 'TxnCFTest'.$$);
13 ok($id,$msg);
14
15 my $cf = RT::CustomField->new(RT->SystemUser);
16 ($id,$msg) = $cf->Create(Name => 'Txnfreeform-'.$$, Type => 'Freeform', MaxValues => '0', LookupType => RT::Transaction->CustomFieldLookupType );
17
18 ok($id,$msg);
19
20 ($id,$msg) = $cf->AddToObject($q);
21
22 ok($id,$msg);
23
24
25 my $ticket = RT::Ticket->new(RT->SystemUser);
26
27 my $transid;
28 ($id,$transid, $msg) = $ticket->Create(Queue => $q->id,
29                 Subject => 'TxnCF test',
30             );
31 ok($id,$msg);
32
33 my $trans = RT::Transaction->new(RT->SystemUser);
34 $trans->Load($transid);
35
36 is($trans->ObjectId,$id);
37 is ($trans->ObjectType, 'RT::Ticket');
38 is ($trans->Type, 'Create');
39 my $txncfs = $trans->CustomFields;
40 is ($txncfs->Count, 1, "We have one custom field");
41 my $txn_cf = $txncfs->First;
42 is ($txn_cf->id, $cf->id, "It's the right custom field");
43 my $values = $trans->CustomFieldValues($txn_cf->id);
44 is ($values->Count, 0, "It has no values");
45
46 $trans->UpdateCustomFields( 'CustomField-'.$cf->id => 'Test');
47 $values = $trans->CustomFieldValues($txn_cf->id);
48 is ($values->Count, 1, "it has a value");
49
50 # TODO ok(0, "Should updating custom field values remove old values?");