diff options
author | Craig Kaiser <craig@bestpractical.com> | 2020-01-29 20:16:14 +0300 |
---|---|---|
committer | Craig Kaiser <craig@bestpractical.com> | 2020-01-29 20:16:14 +0300 |
commit | 829e7b89ed470782e5ca819e2819e69c0823180d (patch) | |
tree | acd7bae55645749dd5de23ae9050c434dab06267 | |
parent | e5ba359d13c5ae77f6d102577f9bd5856b4bdbb6 (diff) |
Add test for calling MembersObj on unloaded group object4.4/membersobj-check-for-group
-rw-r--r-- | t/api/group.t | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/t/api/group.t b/t/api/group.t index f82dfc57e9..2b3f31c1ca 100644 --- a/t/api/group.t +++ b/t/api/group.t @@ -3,7 +3,7 @@ use strict; use warnings; use RT; use RT::Test nodata => 1, tests => undef; - +use Test::Warn; { @@ -116,4 +116,32 @@ is($u->PrincipalObj->PrincipalType , 'Group' , "Principal 4 is a group"); ok( !$id, "can't create duplicated group even case is different: $msg" ); } +diag 'create a custom role and try to load role group before one has been created.'; +{ + my $engineer = RT::CustomRole->new(RT->SystemUser); + my ($ok, $msg) = $engineer->Create( + Name => 'Engineer', + MaxValues => 1, + ); + ok($ok, "created role: $msg"); + + my $general = RT::Test->load_or_create_queue( Name => 'General' ); + + ($ok, $msg) = $engineer->AddToObject($general->id); + ok($ok, "added engineer to General: $msg"); + + ok(my $t = RT::Ticket->new(RT->SystemUser)); + ok((my $id, $msg) = $t->Create( Queue => $general->Id, + Subject => 'Testing' + )); + + my $group = RT::Group->new(RT->SystemUser); + $group->LoadRoleGroup(Object => $t, Name => 'Engineer'); + is($group->Id, undef); + + warning_like { + is($group->MembersObj, undef); + } qr/Can't call MembersObj on unloaded group, returning undef./, "Generates a warning about unloaded group"; +} + done_testing; |