@isTest
private class CaseTeamRoleAndMemberCreationTest {
// Helper method to create a CaseTeamRole record with the specified team role ID
private static CaseTeamRole createCaseTeamRole( Id teamRoleId) {
CaseTeamRole caseTeamRole = new CaseTeamRole ( Id = teamRoleId ) ;
insert caseTeamRole;
return caseTeamRole;
}
// Helper method to create a CaseTeamMember record with the specified case ID , team role ID , and user ID
private static CaseTeamMember createCaseTeamMember( Id caseId, Id teamRoleId, Id userId) {
CaseTeamMember caseTeamMember = new CaseTeamMember ( CaseId = caseId , TeamRoleId = teamRoleId , MemberId = userId ) ;
insert caseTeamMember;
return caseTeamMember;
}
// Test method to create a CaseTeamRole and a CaseTeamMember
@isTest
static void testCreateCaseTeamRoleAndMember( ) {
// Create a Case record
Case theCase = new Case ( Subject = 'Test Case' , Status = 'New' ) ;
insert theCase;
// Create a User record
User theUser = new User ( Username = 'test.user@example.com' , FirstName = 'Test' , LastName = 'User' , Email = 'test.user@example.com' , ProfileId = [ SELECT Id FROM Profile WHERE Name = 'System Administrator' LIMIT 1 ] .Id , EmailEncodingKey = 'UTF-8' , LanguageLocaleKey = 'en_US' , LocaleSidKey = 'en_US' , TimeZoneSidKey = 'America/Los_Angeles' ) ;
insert theUser;
// Create a CaseTeamRole record
CaseTeamRole theTeamRole = createCaseTeamRole ( theUser .Id ) ;
// Create a CaseTeamMember record
CaseTeamMember theTeamMember = createCaseTeamMember ( theCase .Id , theTeamRole .Id , theUser .Id ) ;
// Test assertions to verify the records were created successfully
System .assert ( theTeamRole != null && theTeamRole.Id != null ) ;
System .assert ( theTeamMember != null && theTeamMember.Id != null ) ;
// Additional test cases to cover different scenarios ( e .g ., creating multiple CaseTeamRole records, creating CaseTeamMember records with different team roles, etc .)
// ...
}
}
QGlzVGVzdApwcml2YXRlIGNsYXNzIENhc2VUZWFtUm9sZUFuZE1lbWJlckNyZWF0aW9uVGVzdCB7CgogICAgLy8gSGVscGVyIG1ldGhvZCB0byBjcmVhdGUgYSBDYXNlVGVhbVJvbGUgcmVjb3JkIHdpdGggdGhlIHNwZWNpZmllZCB0ZWFtIHJvbGUgSUQKICAgIHByaXZhdGUgc3RhdGljIENhc2VUZWFtUm9sZSBjcmVhdGVDYXNlVGVhbVJvbGUoSWQgdGVhbVJvbGVJZCkgewogICAgICAgIENhc2VUZWFtUm9sZSBjYXNlVGVhbVJvbGUgPSBuZXcgQ2FzZVRlYW1Sb2xlKElkID0gdGVhbVJvbGVJZCk7CiAgICAgICAgaW5zZXJ0IGNhc2VUZWFtUm9sZTsKICAgICAgICByZXR1cm4gY2FzZVRlYW1Sb2xlOwogICAgfQoKICAgIC8vIEhlbHBlciBtZXRob2QgdG8gY3JlYXRlIGEgQ2FzZVRlYW1NZW1iZXIgcmVjb3JkIHdpdGggdGhlIHNwZWNpZmllZCBjYXNlIElELCB0ZWFtIHJvbGUgSUQsIGFuZCB1c2VyIElECiAgICBwcml2YXRlIHN0YXRpYyBDYXNlVGVhbU1lbWJlciBjcmVhdGVDYXNlVGVhbU1lbWJlcihJZCBjYXNlSWQsIElkIHRlYW1Sb2xlSWQsIElkIHVzZXJJZCkgewogICAgICAgIENhc2VUZWFtTWVtYmVyIGNhc2VUZWFtTWVtYmVyID0gbmV3IENhc2VUZWFtTWVtYmVyKENhc2VJZCA9IGNhc2VJZCwgVGVhbVJvbGVJZCA9IHRlYW1Sb2xlSWQsIE1lbWJlcklkID0gdXNlcklkKTsKICAgICAgICBpbnNlcnQgY2FzZVRlYW1NZW1iZXI7CiAgICAgICAgcmV0dXJuIGNhc2VUZWFtTWVtYmVyOwogICAgfQoKICAgIC8vIFRlc3QgbWV0aG9kIHRvIGNyZWF0ZSBhIENhc2VUZWFtUm9sZSBhbmQgYSBDYXNlVGVhbU1lbWJlcgogICAgQGlzVGVzdAogICAgc3RhdGljIHZvaWQgdGVzdENyZWF0ZUNhc2VUZWFtUm9sZUFuZE1lbWJlcigpIHsKICAgICAgICAvLyBDcmVhdGUgYSBDYXNlIHJlY29yZAogICAgICAgIENhc2UgdGhlQ2FzZSA9IG5ldyBDYXNlKFN1YmplY3QgPSAnVGVzdCBDYXNlJywgU3RhdHVzID0gJ05ldycpOwogICAgICAgIGluc2VydCB0aGVDYXNlOwoKICAgICAgICAvLyBDcmVhdGUgYSBVc2VyIHJlY29yZAogICAgICAgIFVzZXIgdGhlVXNlciA9IG5ldyBVc2VyKFVzZXJuYW1lID0gJ3Rlc3QudXNlckBleGFtcGxlLmNvbScsIEZpcnN0TmFtZSA9ICdUZXN0JywgTGFzdE5hbWUgPSAnVXNlcicsIEVtYWlsID0gJ3Rlc3QudXNlckBleGFtcGxlLmNvbScsIFByb2ZpbGVJZCA9IFtTRUxFQ1QgSWQgRlJPTSBQcm9maWxlIFdIRVJFIE5hbWUgPSAnU3lzdGVtIEFkbWluaXN0cmF0b3InIExJTUlUIDFdLklkLCBFbWFpbEVuY29kaW5nS2V5ID0gJ1VURi04JywgTGFuZ3VhZ2VMb2NhbGVLZXkgPSAnZW5fVVMnLCBMb2NhbGVTaWRLZXkgPSAnZW5fVVMnLCBUaW1lWm9uZVNpZEtleSA9ICdBbWVyaWNhL0xvc19BbmdlbGVzJyk7CiAgICAgICAgaW5zZXJ0IHRoZVVzZXI7CgogICAgICAgIC8vIENyZWF0ZSBhIENhc2VUZWFtUm9sZSByZWNvcmQKICAgICAgICBDYXNlVGVhbVJvbGUgdGhlVGVhbVJvbGUgPSBjcmVhdGVDYXNlVGVhbVJvbGUodGhlVXNlci5JZCk7CgogICAgICAgIC8vIENyZWF0ZSBhIENhc2VUZWFtTWVtYmVyIHJlY29yZAogICAgICAgIENhc2VUZWFtTWVtYmVyIHRoZVRlYW1NZW1iZXIgPSBjcmVhdGVDYXNlVGVhbU1lbWJlcih0aGVDYXNlLklkLCB0aGVUZWFtUm9sZS5JZCwgdGhlVXNlci5JZCk7CgogICAgICAgIC8vIFRlc3QgYXNzZXJ0aW9ucyB0byB2ZXJpZnkgdGhlIHJlY29yZHMgd2VyZSBjcmVhdGVkIHN1Y2Nlc3NmdWxseQogICAgICAgIFN5c3RlbS5hc3NlcnQodGhlVGVhbVJvbGUgIT0gbnVsbCAmJiB0aGVUZWFtUm9sZS5JZCAhPSBudWxsKTsKICAgICAgICBTeXN0ZW0uYXNzZXJ0KHRoZVRlYW1NZW1iZXIgIT0gbnVsbCAmJiB0aGVUZWFtTWVtYmVyLklkICE9IG51bGwpOwoKICAgICAgICAvLyBBZGRpdGlvbmFsIHRlc3QgY2FzZXMgdG8gY292ZXIgZGlmZmVyZW50IHNjZW5hcmlvcyAoZS5nLiwgY3JlYXRpbmcgbXVsdGlwbGUgQ2FzZVRlYW1Sb2xlIHJlY29yZHMsIGNyZWF0aW5nIENhc2VUZWFtTWVtYmVyIHJlY29yZHMgd2l0aCBkaWZmZXJlbnQgdGVhbSByb2xlcywgZXRjLikKICAgICAgICAvLyAuLi4KICAgIH0KfQ==