function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
sumit dsumit d 

test class is failing

Hi All,  
my test class is given below:-
@isTest
private class CaseTriggerHelperTest {
        static testmethod void firstResponseTest(){
            
          String uniqueUserName = 'standarduser' + DateTime.now().getTime() + '@testorg.com';
        
        // This code runs as the system user
        Profile p = [SELECT Id FROM Profile WHERE Name='Standard User'];
        User u = new User(Alias = 'standt', Email='standarduser@testorg.com',
        EmailEncodingKey='UTF-8', LastName='Testing', LanguageLocaleKey='en_US',
        LocaleSidKey='en_US', ProfileId = p.Id,
        TimeZoneSidKey='America/Los_Angeles',
        UserName=uniqueUserName);
    
        insert u;
        
        Account accRecord = new Account(Name='testAccount', Phone='9012312325'); //Provide all required field and its value here.
        
        Case caseRecord = new Case(Subject='TestRecord', Priority='High'); //Provide all required field and its value here.

        System.runAs(u) {
            insert accRecord;
            
            Case newCaseRecord;
            //For create event of trigger 
            caseRecord.AccountId = accRecord.Id;
            insert caseRecord;
            
            newCaseRecord = [SELECT Id, Priority FROM Case Where Id =: caseRecord.Id];
            System.assertEquals(newCaseRecord.Priority,'High');
             CaseTeamTemplate myCaseTeam = new CaseTeamTemplate();
            myCaseTeam.Name = 'TestName';
            myCaseTeam.Description = 'Test Description';
            insert myCaseTeam;

            
            //For update event of trigger
            caseRecord.Priority = 'Low';
            caseRecord.OwnerId = UserInfo.getUserId();
            update caseRecord;
            
            newCaseRecord = [SELECT Id, Priority FROM Case Where Id =: caseRecord.Id];
            System.assertEquals(newCaseRecord.Priority,'Low');
        }
        }
    
}
Showing me this error
System.SObjectException: Field is not writeable: CaseTeamTemplate.Name
Any suggestion ?
How to solve this issue?
sridharbsridharb

remove this line

myCaseTeam.Name = 'TestName';
I think its autofield generated. And anyway you are not asserting this, so why are you setting the value for Name.
 

In general this expection comes when adding value to formula fields and auto format fields.

sumit dsumit d
After removing thisline myCaseTeam.Name = 'TestName'; and myCaseTeam.Description = 'Test Description';​
its showing this error:-System.TypeException: DML operation INSERT not allowed on CaseTeamTemplate
sumit dsumit d
my helper class is given below:-
public without sharing class CaseTriggerHelper {
    
    public static List<Case> newCases = new List<Case>();
    public static List<Case> oldCases = new List<Case>();
    
    public static Map<Id, Case> newMapCases = new Map<Id, Case>();
    public static Map<Id, Case> oldMapCases = new Map<Id, Case>(); 
  
 public static void NotifyComplianceTeam(){
        
        if( runNotifyComplianceTeam ) {
            
            List<CaseTeamTemplate> cttList = [SELECT id, Name 
                                              FROM CaseTeamTemplate 
                                              where ( Name = 'PTM Case - Service'
                                              OR Name = 'PTM - Compliance' )
                                             ];
            Id ptmServiceTeamId;
            Id complianceServiceTeamId;
            for( CaseTeamTemplate templateObj : cttList ) {
                if( templateObj.Name == 'PTM Case - Service' ) {
                    ptmServiceTeamId = templateObj.Id;
                }
                else if( templateObj.Name == 'PTM - Compliance' ) {
                    complianceServiceTeamId = templateObj.Id;
                }
            }
             
            Map<Id, CaseTeamTemplateMember> mapTemplateMembers 
                                = new Map<Id, CaseTeamTemplateMember>( [SELECT id, 
                                                                        MemberId, TeamTemplateId
                                                                        FROM CaseTeamTemplateMember
                                                                        WHERE TeamTemplateId in: cttList 
                                                                        ] 
                                                                     );
            
            Map<Id, Set<Id>> mapTemplateIdToMembersIds = new Map<Id, Set<Id>>();
            
            for( CaseTeamTemplateMember memberObj : mapTemplateMembers.values() ) {
                Set<Id> memberIds = new Set<Id>();
                if( mapTemplateIdToMembersIds.containsKey( memberObj.TeamTemplateId )) {
                    memberIds = mapTemplateIdToMembersIds.get( memberObj.TeamTemplateId );
                }
                memberIds.add( memberObj.MemberId );
                mapTemplateIdToMembersIds.put( memberObj.TeamTemplateId, memberIds );
            }
            
            //Fetch CratedById from Case
            List<Case> caseAllowedToSendEmail = new List<Case>();
            for(Case caseObj : newCases ){
                if( ptmServiceTeamId != null ) {
                    Set<Id> ptmServiceTeamMembers = mapTemplateIdToMembersIds.get( ptmServiceTeamId );
                    if( ptmServiceTeamMembers.contains( caseObj.createdById )) {
                        caseAllowedToSendEmail.add( caseObj );
                    }
                }
            }
            
        
            if( caseAllowedToSendEmail.size() > 0 ) {
                
                if(complianceServiceTeamId != null ){
                    
                    List<Contact> defaultTargetObj = [ Select Id From Contact 
                                                      Where LastName =: Label.Default_Email_Target_Contact ];
                    
                    if( defaultTargetObj.size() > 0 ) {
                        
                        Set<Id> complianceServiceTeamMembers = mapTemplateIdToMembersIds.get( complianceServiceTeamId );
                        EmailTemplate et = [Select id, subject, Body, DeveloperName from EmailTemplate where 
                                             DeveloperName = 'Notify_Compliance_Team_on_PTM_Service_Case_Create'
                                           ];
                        
                        List<String> toAddresses = new List<String>();
                        for( User userObj : [ Select Id, Email From User 
                                              Where Id in: complianceServiceTeamMembers ]) {
                                                  
                            toAddresses.add( userObj.Email );
                        }
                        
                        //  Create a master list to hold the emails
                        List<Messaging.SingleEmailMessage> mails =  new List<Messaging.SingleEmailMessage>();
                        for( Case caseObj : caseAllowedToSendEmail ) {
                            Messaging.SingleEmailMessage mail =  new Messaging.SingleEmailMessage();
                            
                            //  list of people who should get the email
                            List<Id> targetUsers = new List<Id>();
                            //targetUsers.addAll( complianceServiceTeamMembers );
                            mail.setTargetObjectId( defaultTargetObj.get( 0 ).Id );
                             
                            toAddresses = new List<String> { 'sfdcadmin@sfdcconsultants.com' };
                            mail.setToAddresses(  toAddresses );
                            
                            mail.setWhatId( caseObj.Id );
                            
                            // Set email is sent from
                            mail.setTemplateId( et.Id );
                            
                            mail.setSaveAsActivity( false );
                            
                            // Add your email to the master list
                            mails.add(mail);
                            
                            // Send all emails in the master list
                            if(mails.size()>0){
                                Messaging.sendEmail(mails);
                                runNotifyComplianceTeam = false;
                            }

                        }
                    }
                }
            }   
        }
    }  
} i want to cover bold and italic part of this helper class?
Any idea?