My Requirement is I have to cover so.AddError()
in the test class.
Apex Class:
if(accountToUpdate.Inactive__c== true && accountToUpdate.Inactive__c <> accountBeforeUpdate.Inactive__c)
{
List <Contact> cnt= new List <Contact>([Select Id,Name,Inactive__c FROM Contact WHERE AccountId =:accountToUpdate.Id AND Inactive__c=false]);
if(cnt.size()>0)
{
so.addError(Label.Active_Error);
}
}
Test Class {
Account acct = TestData.createAccount('TestInactive','Customer' ,true);
Account ac=[Select id from account where id=:acct.Id];
system.Assert(ac!=null,'AccountHandlerTest.testInactive FAIL:Account was not inserted properly!');
Contact cnt=TestData.createContact('Test','Contact','test@test.com',ac.Id,true);
Contact cn=[Select Id from Contact where AccountId=:ac.Id];
system.Assert(ac!=null,'AccountHandlerTest.testInactive FAIL:Account was not inserted properly!');
Test.startTest();
try{
cn.inactive__c=false;
update cn;
ac.inactive__c = true;
update ac;
system.assert(true,'You can not inactivate this account ');
}
catch(Exception e)
{
String message = e.getMessage();
system.assert(message.contains('Active_Contact_Error'), 'message=' + message);
}
Test.StopTest();
}
Can someone tell me what I miss in test class?
so.addError(Label.Active_Error)
is not covering in code coverage.
If I add Custom message instead of Label then it completes the code coverage.How can I cover label message here.