- Task

- Trigger Code
trigger AccountTrigger on Account (before insert) {
if (Trigger.isBefore && Trigger.isInsert) {
AccountTriggerHandler.updateAccountRatingBasedOnIndustry(Trigger.new);
}
}
- Apex Code
public class AccountTriggerHandler {
public static void updateAccountRatingBasedOnIndustry(List<Account> accList) {
for (Account acc : accList) {
if (acc.Industry == 'Media' || acc.Industry == 'Energy') {
acc.Rating = 'Hot';
}
}
}
}
- Apex Test Code :
@IsTest
public class AccountTriggerHandlerTest {
@IsTest
private static void updateAccountRatingBasedOnIndustryTest() {
List<Account> accList = new List<Account>();
for (Integer i = 0; i < 3; i++) {
Account acc = new Account();
acc.Name = 'Test ' + i;
if (i == 0) {
acc.Industry = 'Media';
} else if (i == 1) {
acc.Industry = 'Energy';
} else {
acc.Industry = 'Engineering';
}
accList.add(acc);
}
Test.StartTest();
insert accList;
for (Integer i = 0; i < 3; i++ ) {
Account acc = [SELECT Id, Rating FROM Account WHERE Id = :accList[i].Id];
if (i == 0) {
System.assertEquals('Hot', acc.Rating, 'Rating must be Equal to HOT');
} else if (i == 1) {
System.assertEquals('Hot', acc.Rating, 'Rating must be Equal to HOT');
} else {
System.assertNotEquals('Hot', acc.Rating, 'Rating must be Equal to HOT');
}
}
Test.StopTest();
}
}