Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- trigger RecordOwnerChange on user (after update){
- if (trigger.isafter & trigger.isupdate){
- List<Id> recordIds = new List<Id>();
- List<account> aclst = [select id, ownerid, owner.isActive, owner.Managerid from Account where OwnerId IN:trigger.new];
- for (Account ac: aclst){
- if (ac.owner.isActive == false && ac.owner.managerid != null){
- recordIds.add(ac.id);
- }
- }
- if(!recordIds.isEmpty()){
- RecordOwnerChange_4Handler.updateaccounts(recordIds);
- }
- CLASS:
- public class RecordOwnerChangeHandler {
- @future
- public static void updateaccounts(List<Id> recordIds){
- List<Account> updateacclist = new List<Account>();
- for (Account ac:[select ownerid, owner.Managerid from Account where Id IN:recordIds]){
- ac.ownerid= ac.owner.managerid;
- updateacclist.add(ac);
- }
- if(updateacclist.size()>0){
- update updateacclist ;
- }}}
- @IsTest
- public class testclassownerassignmanager{
- static testmethod void metest(){
- User u = new User(
- Alias = 'testu',
- Email = 'test@example.com',
- EmailEncodingKey = 'UTF-8',
- LastName = 'Test',
- LanguageLocaleKey = 'en_US',
- LocaleSidKey = 'en_US',
- TimeZoneSidKey='America/Los_Angeles',
- ProfileId = 'Salesforce',
- UserName='test@example.com',Managerid='Test Admin');
- account a = new account(Name='Test');
- a.ownerid = u.id;
- insert a;
- if (u.isactive == false && u.managerid!=null)
- {
- a.ownerid=u.managerid;
- }
- update a;
- test.starttest();
- if (Test.isRunningTest()) {
- System.runAs(new User(Id = Userinfo.getUserId())) {
- update a;
- }
- } else {
- update a;
- }
- test.stoptest();
- }}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement