You need to sign in to do that
Don't have an account?
Pavani Akella 9
help increasing code coverage
I'm having a difficult time to get my code coverage increased (I'm still a newb on the dev end).
My class is working but I don't have test class. My code coverage is 65%
Apex class:
public static void sendPartOrderAndReturnEmail(List<Case> caseList, Map<id,Case> oldMap){
if (DoNotReplyId == null) {
DoNotReplyId = [SELECT id FROM OrgWideEmailAddress where Address = 'cleantech.warranty@roush.com' limit 1].id;
}
if (emailSent == true)
return;
string orderPartLineItems;
string orderPartLineItemsTxt;
string htmlBody;
string textBody;
string emailFromAddress;
string emailSubject;
set<string> emailToSet = new set<string>();
set<string> orderEmailAddSet = new set<string>();
set<String> rctOrderEmailAddSet = new set<string>();
set<String> rppOrderEmailAddSet = new set<string>();
list<Parts_Order_Email__c> orderEmailAddresses = new list<Parts_Order_Email__c>([SELECT Order_Person_Email__c, RCT_Dominos__c, RPP__c FROM Parts_Order_Email__c]);
for (Parts_Order_Email__c p: orderEmailAddresses){
if (p.RCT_Dominos__c == True){
rctOrderEmailAddSet.add(p.Order_Person_Email__c);
}
if (p.RPP__c == True){
rppOrderEmailAddSet.add(p.Order_Person_Email__c);
}
}
list<Replacement_Part__c> updReplaceParts = new list<Replacement_Part__c>();
map<Id,list<Replacement_Part__c>> replacePartMap = new map<id,list<Replacement_Part__c>>();
set<id> caseIds = new set<id>();
for (Case c: caseList){
if (c.status == 'Resolution Provided'){
caseIds.add(c.id);
}
}
list<Replacement_Part__c> partsList = new list<Replacement_Part__c>([SELECT id, Case__c, Replacement_Item__r.Name, Replacement_Item__r.Description__c, Return_Part__c, Order_Email_Sent__c, Return_Email_Sent__c, Replacement_Part_Checkbox__c
FROM Replacement_Part__c WHERE Case__c in :caseIds ORDER BY Case__c]);
for (Replacement_Part__c p: partsList){
if (p.Replacement_Part_Checkbox__c == true && p.Order_Email_Sent__c == false){
if (replacePartMap.containsKey(p.Case__c)){
replacePartMap.get(p.Case__c).add(p);
}
else{
replacePartMap.put(p.Case__c, new list<Replacement_Part__c>{p});
}
}
}
for (Case c: caseList){
if(replacePartMap.containsKey(c.id)){
orderPartLineItems='';
orderPartLineItemsTxt='';
for (Replacement_Part__c r: replacePartMap.get(c.id)){
orderPartLineItemsTxt = orderPartLineItemsTxt + r.Replacement_Item__r.Name + ' --- ' + r.Replacement_Item__r.Description__c + '\n\n';
orderPartLineItems = orderPartLineItems +
'<tr>'+
'<td style="vertical-align: top;">' + r.Replacement_Item__r.Name + '<br></td>' +
'<td style="vertical-align: top;">' + r.Replacement_Item__r.Description__c + '<br></td>'+
'</tr>';
r.Order_Email_Sent__c = true;
updReplaceParts.add(r);
}
htmlBody = orderPartsEmail(c.id, c.CaseNumber, c.Subject, c.Claim_Type_new__c, orderPartLineItems);
textBody = orderPartsTextEmail(c.CaseNumber, c.Subject, c.Claim_Type_new__c, orderPartLineItemsTxt);
emailFromAddress = 'Roush CleanTech Customer Support';
emailSubject = 'Order Parts';
if (c.VIN_Vehicle_Program__c == 'RPP'){
orderEmailAddSet.addAll(rppOrderEmailAddSet);
}
else{
orderEmailAddSet.addAll(rctOrderEmailAddSet);
}
orderEmailAddSet.remove(null);
if (orderEmailAddSet.size()>0)
sendHTMLEmail(orderEmailAddSet, emailSubject, htmlBody, textBody, emailFromAddress);
}
}
update updReplaceParts;
emailSent=True;
}
private static String orderPartsEmail(string caseId, string caseNumber, string caseSubject, string claimType, string orderPartList){
String domain = ([select count() from Organization where isSandbox = true] == 1)? 'https://test.salesforce.com' : 'https://login.salesforce.com';
String caseUrl = domain + '/'+ caseId;
return 'Please order replacement parts for the following case.<br></br>'+
'Case Number: ' + caseNumber + '<br>'+
'Case Subject: ' + caseSubject + '<br>'+
'Claim Type: ' + claimType + '<br></br>'+
'<table style="text-align: left; width: 75%;" border="1" cellpadding="2" cellspacing="2">' +
'<tbody>'+
'<tr align="center">'+
'<td colspan="2" rowspan="1" style="vertical-align: top; background-color: rgb(204, 204, 204);"><span style="font-weight: bold;">Parts to Order</span><br>'+
'</td>'+
'</tr>'+
'<tr>'+
'<td style="vertical-align: top; background-color: rgb(204, 204, 204); font-weight: bold;">Part Name<br></td>'+
'<td style="vertical-align: top; background-color: rgb(204, 204, 204); font-weight: bold;">Part Description<br></td>'+
'</tr>'+
orderPartList+
'</tbody>'+
'</table><br>'+
'The link to the case is below.<br></br>'+
caseUrl;
}
private static String orderPartsTextEmail(string caseNumber, string caseSubject, string claimType, string orderPartList){
return 'Please order replacement parts for the following case.\n\n' +
'Case Number: ' + caseNumber + '\n\n' +
'Case Subject: ' + caseSubject + '\n\n' +
'Claim Type: ' + claimType + '\n\n' +
orderPartList+ '\n\n';
}
My class is working but I don't have test class. My code coverage is 65%
Apex class:
public static void sendPartOrderAndReturnEmail(List<Case> caseList, Map<id,Case> oldMap){
if (DoNotReplyId == null) {
DoNotReplyId = [SELECT id FROM OrgWideEmailAddress where Address = 'cleantech.warranty@roush.com' limit 1].id;
}
if (emailSent == true)
return;
string orderPartLineItems;
string orderPartLineItemsTxt;
string htmlBody;
string textBody;
string emailFromAddress;
string emailSubject;
set<string> emailToSet = new set<string>();
set<string> orderEmailAddSet = new set<string>();
set<String> rctOrderEmailAddSet = new set<string>();
set<String> rppOrderEmailAddSet = new set<string>();
list<Parts_Order_Email__c> orderEmailAddresses = new list<Parts_Order_Email__c>([SELECT Order_Person_Email__c, RCT_Dominos__c, RPP__c FROM Parts_Order_Email__c]);
for (Parts_Order_Email__c p: orderEmailAddresses){
if (p.RCT_Dominos__c == True){
rctOrderEmailAddSet.add(p.Order_Person_Email__c);
}
if (p.RPP__c == True){
rppOrderEmailAddSet.add(p.Order_Person_Email__c);
}
}
list<Replacement_Part__c> updReplaceParts = new list<Replacement_Part__c>();
map<Id,list<Replacement_Part__c>> replacePartMap = new map<id,list<Replacement_Part__c>>();
set<id> caseIds = new set<id>();
for (Case c: caseList){
if (c.status == 'Resolution Provided'){
caseIds.add(c.id);
}
}
list<Replacement_Part__c> partsList = new list<Replacement_Part__c>([SELECT id, Case__c, Replacement_Item__r.Name, Replacement_Item__r.Description__c, Return_Part__c, Order_Email_Sent__c, Return_Email_Sent__c, Replacement_Part_Checkbox__c
FROM Replacement_Part__c WHERE Case__c in :caseIds ORDER BY Case__c]);
for (Replacement_Part__c p: partsList){
if (p.Replacement_Part_Checkbox__c == true && p.Order_Email_Sent__c == false){
if (replacePartMap.containsKey(p.Case__c)){
replacePartMap.get(p.Case__c).add(p);
}
else{
replacePartMap.put(p.Case__c, new list<Replacement_Part__c>{p});
}
}
}
for (Case c: caseList){
if(replacePartMap.containsKey(c.id)){
orderPartLineItems='';
orderPartLineItemsTxt='';
for (Replacement_Part__c r: replacePartMap.get(c.id)){
orderPartLineItemsTxt = orderPartLineItemsTxt + r.Replacement_Item__r.Name + ' --- ' + r.Replacement_Item__r.Description__c + '\n\n';
orderPartLineItems = orderPartLineItems +
'<tr>'+
'<td style="vertical-align: top;">' + r.Replacement_Item__r.Name + '<br></td>' +
'<td style="vertical-align: top;">' + r.Replacement_Item__r.Description__c + '<br></td>'+
'</tr>';
r.Order_Email_Sent__c = true;
updReplaceParts.add(r);
}
htmlBody = orderPartsEmail(c.id, c.CaseNumber, c.Subject, c.Claim_Type_new__c, orderPartLineItems);
textBody = orderPartsTextEmail(c.CaseNumber, c.Subject, c.Claim_Type_new__c, orderPartLineItemsTxt);
emailFromAddress = 'Roush CleanTech Customer Support';
emailSubject = 'Order Parts';
if (c.VIN_Vehicle_Program__c == 'RPP'){
orderEmailAddSet.addAll(rppOrderEmailAddSet);
}
else{
orderEmailAddSet.addAll(rctOrderEmailAddSet);
}
orderEmailAddSet.remove(null);
if (orderEmailAddSet.size()>0)
sendHTMLEmail(orderEmailAddSet, emailSubject, htmlBody, textBody, emailFromAddress);
}
}
update updReplaceParts;
emailSent=True;
}
private static String orderPartsEmail(string caseId, string caseNumber, string caseSubject, string claimType, string orderPartList){
String domain = ([select count() from Organization where isSandbox = true] == 1)? 'https://test.salesforce.com' : 'https://login.salesforce.com';
String caseUrl = domain + '/'+ caseId;
return 'Please order replacement parts for the following case.<br></br>'+
'Case Number: ' + caseNumber + '<br>'+
'Case Subject: ' + caseSubject + '<br>'+
'Claim Type: ' + claimType + '<br></br>'+
'<table style="text-align: left; width: 75%;" border="1" cellpadding="2" cellspacing="2">' +
'<tbody>'+
'<tr align="center">'+
'<td colspan="2" rowspan="1" style="vertical-align: top; background-color: rgb(204, 204, 204);"><span style="font-weight: bold;">Parts to Order</span><br>'+
'</td>'+
'</tr>'+
'<tr>'+
'<td style="vertical-align: top; background-color: rgb(204, 204, 204); font-weight: bold;">Part Name<br></td>'+
'<td style="vertical-align: top; background-color: rgb(204, 204, 204); font-weight: bold;">Part Description<br></td>'+
'</tr>'+
orderPartList+
'</tbody>'+
'</table><br>'+
'The link to the case is below.<br></br>'+
caseUrl;
}
private static String orderPartsTextEmail(string caseNumber, string caseSubject, string claimType, string orderPartList){
return 'Please order replacement parts for the following case.\n\n' +
'Case Number: ' + caseNumber + '\n\n' +
'Case Subject: ' + caseSubject + '\n\n' +
'Claim Type: ' + claimType + '\n\n' +
orderPartList+ '\n\n';
}