You need to sign in to do that
Don't have an account?
Can some one help me to cover these lines of code in test class
My trigger contains the following code :
Map<String,Contact> cntMap=new Map<String,Contact>();
list<contact> cnt=[select id,Email from contact where Email!=null AND Email IN: setEmailId];
and these are two conditions which are not covering :
1: if(cnt.size()>0)
{
for(integer i=0;i<cnt.size();i++)
{
cntMap.put(cnt[i].Email,cnt[i]);
}
}
2: if(cntMap.containsKey(contact.Email))
{
Contact oldCnt = cntMap.get(contact.Email);
string Id;
Id=oldCnt.Id;
if(contact.Id!=Id)
contact.Email.addError('Duplicate Contact Email ID found and the link for record is : ' + curUrl + '/' +Id);
}
can any one tell me how to cover these lines in test class
Thanks,
Kiran
Map<String,Contact> cntMap=new Map<String,Contact>();
list<contact> cnt=[select id,Email from contact where Email!=null AND Email IN: setEmailId];
and these are two conditions which are not covering :
1: if(cnt.size()>0)
{
for(integer i=0;i<cnt.size();i++)
{
cntMap.put(cnt[i].Email,cnt[i]);
}
}
2: if(cntMap.containsKey(contact.Email))
{
Contact oldCnt = cntMap.get(contact.Email);
string Id;
Id=oldCnt.Id;
if(contact.Id!=Id)
contact.Email.addError('Duplicate Contact Email ID found and the link for record is : ' + curUrl + '/' +Id);
}
can any one tell me how to cover these lines in test class
Thanks,
Kiran
In your test class you need to insert test contacts which fulfills your SOQL condition i.e. Email != null AND Email IN: setEmailId.
You can refer below code to add contact in apex.
Account newAccount = new Account (name = AcName);
insert newAccount;
Contact NewContact = new Contact (
FirstName = 'xyzFirst',
LastName = 'XyZLast',
AccountId = newAccount.Id,
Email = 'xyzmail@mail.com'
);
insert newContact;