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
chinnyychinnyy 

Help with Test class for trigger please

trigger User_NonAdminProfiles_EditFields on User (before update) {
    List<User> users = Trigger.new;
    String prof = Userinfo.getProfileId();
    String profname = [Select name from Profile where Id=:prof].name;
    profname = profname.tolowercase();

    if(profname == 'D&S Sales Admin')
    {
        for(Integer i=0;i<users.size();i++){
            if(Trigger.old[i].Profile_Name__c.contains('D&S') ||  Trigger.new[i].Role_Name__c.contains('D&S'))
            {
                if(Trigger.old[i].EmployeeNumber != Trigger.new[i].EmployeeNumber || Trigger.old[i].email != Trigger.new[i].email
                    || Trigger.old[i].CommunityNickname != Trigger.new[i].CommunityNickname ||Trigger.old[i].IsActive != Trigger.new[i].IsActive 
                    || Trigger.old[i].UserPermissionsOfflineUser != Trigger.new[i].UserPermissionsOfflineUser
                    || Trigger.old[i].Citizenship_Cntry__c != Trigger.new[i].Citizenship_Cntry__c
                    || Trigger.old[i].Citizenship_Status_Descr__c != Trigger.new[i].Citizenship_Status_Descr__c
                    || Trigger.old[i].US_Permanent_Resident__c != Trigger.new[i].US_Permanent_Resident__c
                    || Trigger.old[i].US_Permanent_Resident_Card_Expiry__c != Trigger.new[i].US_Permanent_Resident_Card_Expiry__c)
                {
                    Trigger.new[i].addError('You are not authorized to change this information');
                }
            } 
            else
            {
                if(Trigger.old[i] != Trigger.new[i])
                {
                    Trigger.new[i].addError('You are not authorized to change this information');
                }
            }
        }
    }
    else
    {
        if(!(profname.contains('peoplesoft')) && !(profname.contains('admin')) && !(profname.contains('sales admin'))){
            for(Integer i=0;i<users.size();i++){
                if((Trigger.old[i].FirstName != Trigger.new[i].FirstName) ||
                (Trigger.old[i].CurrentStatus != Trigger.new[i].CurrentStatus) || 
                (Trigger.old[i].AboutMe != Trigger.new[i].AboutMe) ||
                (Trigger.old[i].Street != Trigger.new[i].Street) ||
                (Trigger.old[i].City != Trigger.new[i].City) ||       
                (Trigger.old[i].State != Trigger.new[i].State) ||
                (Trigger.old[i].PostalCode != Trigger.new[i].PostalCode) ||     
                (Trigger.old[i].Country != Trigger.new[i].Country) ||            
                (Trigger.old[i].Fax != Trigger.new[i].Fax) ||
                (Trigger.old[i].Title != Trigger.new[i].Title) ||
                (Trigger.old[i].LocaleSidKey != Trigger.new[i].LocaleSidKey) ||
                (Trigger.old[i].LanguageLocaleKey != Trigger.new[i].LanguageLocaleKey)||                        
                (Trigger.old[i].TimeZoneSidKey != Trigger.new[i].TimeZoneSidKey) || 
                (Trigger.old[i].MobilePhone != Trigger.new[i].MobilePhone) || 
                (Trigger.old[i].Phone != Trigger.new[i].Phone) || 
                (Trigger.old[i].Signature1__c != Trigger.new[i].Signature1__c) ||
                (Trigger.old[i].Tier_1_Leader__c != Trigger.new[i].Tier_1_Leader__c) ||
                (Trigger.old[i].Tier_2_Leader__c != Trigger.new[i].Tier_2_Leader__c) ||
                (Trigger.old[i].Tier_3_Leader__c != Trigger.new[i].Tier_3_Leader__c) ||
                (Trigger.old[i].Tier_4_Leader__c != Trigger.new[i].Tier_4_Leader__c) ||
                (Trigger.old[i].Tier_5_Leader__c != Trigger.new[i].Tier_5_Leader__c) ||
                (Trigger.old[i] == Trigger.new[i])
                )
                    System.Debug('Editable fields');
                else
                    Trigger.new[i].addError('You are not authorized to update any information except First Name, Address, Title, Language, Time zone, Signature, Work and Mobile phone numbers');
            }
        }
    }
}

 

@isTest
private  class Test_updateTempBasedOnSBU
{
    static testmethod void updateTempBasedOnSBU_Triggers(){

        Profile pf= [select id from Profile where name = 'System Administrator'];
    
        User usr = new User(LastName = 'UrMst',Username = 'UrMst@test.com',Email = 'UrMst@test.com',Alias = 'UrMst9' ,CommunityNickname= 'UrMst3' ,TimeZoneSidKey = 'America/Los_Angeles',LocaleSidKey='en_US',EmailEncodingKey= 'ISO-8859-1',ProfileId = pf.Id, LanguageLocaleKey = 'en_US',SBU_User__c = 'D&S');
        insert usr;
    
        System.runAs(usr)
        {
            try
            {
                Account acc= new Account(name='NewAcnt', Market_Name__c = 'Helicopters');
                insert acc;
                
                acc.Strategic_Business_Unit__c = 'ATR';
                acc.Market_Name__c = 'Military';
                update acc;
                
                acc.Strategic_Business_Unit__c = 'BGA';
                update acc;
                
                acc.Strategic_Business_Unit__c = 'D&S';
                update acc;
                
                
                
                Account acc1 = new Account(name = 'New Test Account', Market_Name__c = 'Intercompany');
                insert acc1;
                
                acc1.Market_Name__c = 'Intercompany';
                acc1.Name = 'HONEYWELL EMPLOYEE AMERICAS';
                update acc1;

                acc1.Market_Name__c = 'Helicopters';
                acc1.Strategic_Business_Unit__c = 'D&S';
                update acc1;
            }
            catch(System.DMLException e){
            }
        }
    }
}

 Hi,

 

  I have added Tier1 Leader,Tier2 Leader,Tier3 Leader,Tier4 Leader,Tier5 Leader fields in trigger according to it pls do changes in testclass to improve codecoverage.pls help me in this,...

 

Thanks,

Indu.

Deepak Kumar ShyoranDeepak Kumar Shyoran

Hi chinnyy,

 

You need not  to cover the 100% test coverage for trigger rather we have to cover only 1% test coverage for trigger and atlest 75 % to create a package and if you want to have more help on testclasses then go to http://wiki.developerforce.com/page/An_Introduction_to_Apex_Code_Test_Methods this will definately help you.

 

 

Don't forget to give Kudos if this post helped you.

Mark my answer as a solution to your question if it solve your problem.

 

 

Best Regards

Choudhary Deepak Shyoran

Salesforce Developer