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
Kasia Wojewodzka 7Kasia Wojewodzka 7 

Test Class - Assigning Permission Set to the User

Dear Community,
I am working on the test class for the Process Builder  with Flow where I assign the User with specific role to the Permission set called Permission Set Name   CAG EMEA Animana Sales Livestock Doctors Access

( Or  Developer  Name: CAG_EMEA_Animana_Sales_Livestock_Doctors_Access) 

This test class passed but I was asked to modify it and  use Permisison Set name or Developer Name  instead of PermissionSetId 

How would I need to update the class ? Would you guide me in the right direction? 


@isTest (SeeAllData = true)
private class Test_Flow_PermissionSetAnimana
{
    static testMethod void checkPermissionSetAssigment()
{
 List<PermissionSetAssignment> permissionSetList = new List<PermissionSetAssignment>();
for (User u : [SELECT ID,UserRole.Name,Profile.Name,IsActive FROM User WHERE  UserRole.Name LIKE 'CAG EMEA Animana CS Rep' AND Profile.Name = 'Field Sales Rep- CAG EMEA' AND IsActive = true]){ 
    PermissionSetAssignment psa = new PermissionSetAssignment (PermissionSetId = '0PS2g0000001QC1', AssigneeId = u.Id);
    permissionSetList.add(psa);
}
try{
    upsert permissionSetList;
}catch(exception e){
    system.debug('exception caught' + e);
    }
    }
    }

Thank  you
Kasia 
Best Answer chosen by Kasia Wojewodzka 7
David Zhu 🔥David Zhu 🔥


@isTest (SeeAllData = true)
private class Test_Flow_PermissionSetAnimana
{
    static testMethod void checkPermissionSetAssigment()
{
 List<PermissionSetAssignment> permissionSetList = new List<PermissionSetAssignment>();
for (User u : [SELECT ID,UserRole.Name,Profile.Name,IsActive FROM User WHERE  UserRole.Name LIKE 'CAG EMEA Animana CS Rep' AND Profile.Name = 'Field Sales Rep- CAG EMEA' AND IsActive = true]){ 
   ID permissionSetId = [SELECT Id FROM PermissionSet WHERE Name = 'CAG_EMEA_Animana_Sales_Livestock_Doctors_Access'].Id;
    PermissionSetAssignment psa = new PermissionSetAssignment (PermissionSetId = permissionSetId, AssigneeId = u.Id);
    permissionSetList.add(psa);
}
try{
    upsert permissionSetList;
}catch(exception e){
    system.debug('exception caught' + e);
    }
    }
    }

All Answers

David Zhu 🔥David Zhu 🔥


@isTest (SeeAllData = true)
private class Test_Flow_PermissionSetAnimana
{
    static testMethod void checkPermissionSetAssigment()
{
 List<PermissionSetAssignment> permissionSetList = new List<PermissionSetAssignment>();
for (User u : [SELECT ID,UserRole.Name,Profile.Name,IsActive FROM User WHERE  UserRole.Name LIKE 'CAG EMEA Animana CS Rep' AND Profile.Name = 'Field Sales Rep- CAG EMEA' AND IsActive = true]){ 
   ID permissionSetId = [SELECT Id FROM PermissionSet WHERE Name = 'CAG_EMEA_Animana_Sales_Livestock_Doctors_Access'].Id;
    PermissionSetAssignment psa = new PermissionSetAssignment (PermissionSetId = permissionSetId, AssigneeId = u.Id);
    permissionSetList.add(psa);
}
try{
    upsert permissionSetList;
}catch(exception e){
    system.debug('exception caught' + e);
    }
    }
    }
This was selected as the best answer
Kasia Wojewodzka 7Kasia Wojewodzka 7
Thank you David for your feedback!