You need to sign in to do that
Don't have an account?
akhil V
Test Class
please help out to coverage of trigger
List<Contract_Product__c> contractProducts = new List<Contract_Product__c>();
for(OpportunityLineItem oli : Trigger.new)
{
opportunityIds.add(oli.OpportunityId);
productIds.add(oli.Product2Id);
}
List<Product2> products = [select id,
ProductCode from Product2 where id in: productIds];
for(Product2 p : products)
{
productMap.put(p.id, p.ProductCode);
}
List<Contract> contractList = [select id,
Opportunity_Name__c
from Contract
where Opportunity_Name__c in: opportunityIds];
for(String s : opportunityIds)
{
List<String> cList = new List<String>();
for(Contract c : contractList)
{
if(c.Opportunity_Name__c == s)
{
//contractMap.put(c.Opportunity_Name__c, c.id);
cList.add(c.id);
}
}
contractListMap.put(s, cList);
}
System.debug('************ '+contractListMap);
// Block for Insert Opp Line Items
if(Trigger.isInsert)
{
for(OpportunityLineItem oli : Trigger.new)
{
if(contractListMap.get(oli.OpportunityId) != null)
{
System.debug('% '+contractListMap.get(oli.OpportunityId));
for(String s : contractListMap.get(oli.OpportunityId))
{
Contract_Product__c c = new Contract_Product__c();
System.debug('333333333333'+s);
c.Contract__c = s;
c.ServiceDate__c = oli.ServiceDate;
c.Discount__c = oli.Discount;
c.Description__c = oli.Description;
c.ListPrice__c = oli.ListPrice;
c.Opp_Line_Item_Id__c = oli.id;
c.Product__c = oli.Product2Id;
c.ProductCode__c = productMap.get(oli.Product2Id);
c.Quantity__c = oli.Quantity;
c.UnitPrice__c = oli.UnitPrice;
contractProducts.add(c);
}
}
}
System.debug('++++++++++++'+contractProducts);
if(contractProducts.size()>0)
{
insert contractProducts;
}
System.debug('-------------- '+contractProducts);
}
// Block for update line items
if(Trigger.isUpdate)
{
List<String> oppLineItemIds = new List<String>();
List<String> unmatchedOppLineItemIds = new List<String>();
for(OpportunityLineItem oli : Trigger.new)
{
oppLineItemIds.add(oli.id);
}
List<Contract_Product__c> contractProdList = [select id,
Contract__c,
ServiceDate__c,
Discount__c,
Description__c,
ListPrice__c,
Opp_Line_Item_Id__c,
Product__c,
ProductCode__c,
Quantity__c,
UnitPrice__c from Contract_Product__c
where Opp_Line_Item_Id__c in : oppLineItemIds ];
delete contractProdList;
for(OpportunityLineItem oli : Trigger.new)
{
if(contractListMap.get(oli.OpportunityId) != null)
{
System.debug('% '+contractListMap.get(oli.OpportunityId));
for(String s : contractListMap.get(oli.OpportunityId))
{
Contract_Product__c c = new Contract_Product__c();
System.debug('333333333333 update'+s);
c.Contract__c = s;
c.ServiceDate__c = oli.ServiceDate;
c.Discount__c = oli.Discount;
c.Description__c = oli.Description;
c.ListPrice__c = oli.ListPrice;
c.Opp_Line_Item_Id__c = oli.id;
c.Product__c = oli.Product2Id;
c.ProductCode__c = productMap.get(oli.Product2Id);
c.Quantity__c = oli.Quantity;
c.UnitPrice__c = oli.UnitPrice;
contractProducts.add(c);
}
}
List<Contract_Product__c> contractProducts = new List<Contract_Product__c>();
for(OpportunityLineItem oli : Trigger.new)
{
opportunityIds.add(oli.OpportunityId);
productIds.add(oli.Product2Id);
}
List<Product2> products = [select id,
ProductCode from Product2 where id in: productIds];
for(Product2 p : products)
{
productMap.put(p.id, p.ProductCode);
}
List<Contract> contractList = [select id,
Opportunity_Name__c
from Contract
where Opportunity_Name__c in: opportunityIds];
for(String s : opportunityIds)
{
List<String> cList = new List<String>();
for(Contract c : contractList)
{
if(c.Opportunity_Name__c == s)
{
//contractMap.put(c.Opportunity_Name__c, c.id);
cList.add(c.id);
}
}
contractListMap.put(s, cList);
}
System.debug('************ '+contractListMap);
// Block for Insert Opp Line Items
if(Trigger.isInsert)
{
for(OpportunityLineItem oli : Trigger.new)
{
if(contractListMap.get(oli.OpportunityId) != null)
{
System.debug('% '+contractListMap.get(oli.OpportunityId));
for(String s : contractListMap.get(oli.OpportunityId))
{
Contract_Product__c c = new Contract_Product__c();
System.debug('333333333333'+s);
c.Contract__c = s;
c.ServiceDate__c = oli.ServiceDate;
c.Discount__c = oli.Discount;
c.Description__c = oli.Description;
c.ListPrice__c = oli.ListPrice;
c.Opp_Line_Item_Id__c = oli.id;
c.Product__c = oli.Product2Id;
c.ProductCode__c = productMap.get(oli.Product2Id);
c.Quantity__c = oli.Quantity;
c.UnitPrice__c = oli.UnitPrice;
contractProducts.add(c);
}
}
}
System.debug('++++++++++++'+contractProducts);
if(contractProducts.size()>0)
{
insert contractProducts;
}
System.debug('-------------- '+contractProducts);
}
// Block for update line items
if(Trigger.isUpdate)
{
List<String> oppLineItemIds = new List<String>();
List<String> unmatchedOppLineItemIds = new List<String>();
for(OpportunityLineItem oli : Trigger.new)
{
oppLineItemIds.add(oli.id);
}
List<Contract_Product__c> contractProdList = [select id,
Contract__c,
ServiceDate__c,
Discount__c,
Description__c,
ListPrice__c,
Opp_Line_Item_Id__c,
Product__c,
ProductCode__c,
Quantity__c,
UnitPrice__c from Contract_Product__c
where Opp_Line_Item_Id__c in : oppLineItemIds ];
delete contractProdList;
for(OpportunityLineItem oli : Trigger.new)
{
if(contractListMap.get(oli.OpportunityId) != null)
{
System.debug('% '+contractListMap.get(oli.OpportunityId));
for(String s : contractListMap.get(oli.OpportunityId))
{
Contract_Product__c c = new Contract_Product__c();
System.debug('333333333333 update'+s);
c.Contract__c = s;
c.ServiceDate__c = oli.ServiceDate;
c.Discount__c = oli.Discount;
c.Description__c = oli.Description;
c.ListPrice__c = oli.ListPrice;
c.Opp_Line_Item_Id__c = oli.id;
c.Product__c = oli.Product2Id;
c.ProductCode__c = productMap.get(oli.Product2Id);
c.Quantity__c = oli.Quantity;
c.UnitPrice__c = oli.UnitPrice;
contractProducts.add(c);
}
}
Have you tried with any test class .What is the error you are getting .Please shere I will definitly help you .
Thanks for reply this trigger is on opportunitylineitem i got coverage with 67 passed succesfully but it didnt covered if(trigger.isupdate) part
Note:inserted account,contact,opportunity,opportunitylineitem and contract,contract_product__C need to cover this part. help me for this
if(Trigger.isUpdate)
{
List<String> oppLineItemIds = new List<String>();
List<String> unmatchedOppLineItemIds = new List<String>();
for(OpportunityLineItem oli : Trigger.new)
{
oppLineItemIds.add(oli.id);
}
List<Contract_Product__c> contractProdList = [select id,
Contract__c,
ServiceDate__c,
Discount__c,
Description__c,
ListPrice__c,
Opp_Line_Item_Id__c,
Product__c,
ProductCode__c,
Quantity__c,
UnitPrice__c from Contract_Product__c
where Opp_Line_Item_Id__c in : oppLineItemIds ];
delete contractProdList;
for(OpportunityLineItem oli : Trigger.new)
{
if(contractListMap.get(oli.OpportunityId) != null)
{
System.debug('% '+contractListMap.get(oli.OpportunityId));
for(String s : contractListMap.get(oli.OpportunityId))
{
Contract_Product__c c = new Contract_Product__c();
System.debug('333333333333 update'+s);
c.Contract__c = s;
c.ServiceDate__c = oli.ServiceDate;
c.Discount__c = oli.Discount;
c.Description__c = oli.Description;
c.ListPrice__c = oli.ListPrice;
c.Opp_Line_Item_Id__c = oli.id;
c.Product__c = oli.Product2Id;
c.ProductCode__c = productMap.get(oli.Product2Id);
c.Quantity__c = oli.Quantity;
c.UnitPrice__c = oli.UnitPrice;
contractProducts.add(c);
}
}