You need to sign in to do that
Don't have an account?
shakila G
Test class not covered?
Hi All,
I wrote a Test class for trigger but my test class not given the code covereage:
My Trigger:
trigger RolluplineitemTrigger on QuoteLineItem (after insert, after update) {
if(CheckRecurisive.runOnce()){
List<Id> VQuoteID = new List<Id>();
for(QuoteLineItem p: Trigger.new) {
VQuoteID.add(p.QuoteiD);
}
AggregateResult[] groupedResults = [SELECT Sum(Stock_Not_Available__c) lineItemCOunt, QuoteiD FROM QuoteLineItem
WHERE QuoteiD in :VQuoteID GROUP BY QuoteiD];
Map<id,Quote> QuoteMap = new Map<Id,Quote>([SELECT id, No_of_Products_Stock_Not_Available__c
FROM Quote WHERE Id in :VQuoteID]);
for(AggregateResult ar: groupedResults) {
QuoteMap.get((Id)ar.get('QuoteiD')).No_of_Products_Stock_Not_Available__c = (decimal) ar.get('lineItemCOunt');
}
update QuoteMap.values();
}
}
test Class;
@isTest(seealldata=true)
Public class v2_QuoteLineItemTaxUpdate_Test{
static testMethod void Testv2_QLITaxUpdate(){
GetInitialData Getdata = new GetInitialData();
list<Account> acc = Getdata.getAccount();
list<Product2> lstprod = Getdata.getProd();
list<Opportunity> Opp = Getdata.getOpp();
list<Pricebook2> lstPB = Getdata.getpricebook();
list<Pricebookentry> lststdPbe = Getdata.getstdpbe();
list<Pricebookentry> lstPbentry = new list<Pricebookentry>();
insert lstprod;
Integer indexvalue = 0;
if(lstprod.size()>0)
{
for(pricebookentry irow :lststdPbe)
{
irow.product2id = lstprod[indexvalue].id;
indexvalue++;
}
}
insert lststdPbe;
insert lstPB;
if(lstprod.size()>0)
{
for(pricebook2 irow :lstPB)
{
for(Product2 ipro : lstprod ){
Pricebookentry pbe = new Pricebookentry();
pbe.product2id = ipro.id;
pbe.pricebook2id = irow.id;
pbe.unitprice = 3000;
pbe.isActive = true;
lstPbentry.add(pbe);
}
}
}
insert lstPbentry;
insert acc[0];
Opp[0].accountId = acc[0].id;
insert Opp[0];
Opp[0].Pricebook2Id = lstPB[0].id;
update Opp[0];
OpportunityLineItem OL = new OpportunityLineItem(opportunityid=Opp[0].id, Quantity=1, unitprice=8000,
pricebookentryid=lstPbentry[0].id);
insert OL;
Tax_Master__c txm= new Tax_Master__c(CGST__c=14.00,HSN_Code__c=lstprod[0].HSN_Code__c,IGST__c=28.00,SGST__c=14.00, Start_Date__c = Date.newInstance(2017, 07, 06), End_Date__c = System.today()+2);
insert txm;
Quote Q = new Quote();
Q.Name = 'QuoteOrbit';
Q.OpportunityId = Opp[0].id;
Q.Quote_Count__c = 00000000;
Q.Quote_Number__c ='000000';
Q.Approved__c = false;
Q.Quotation_Date__c = date.newinstance(2013,3,5);
Q.Pricebook2Id = lstPB[0].id;
Q.Tax_Classification__c='IGST';
Q.Discount_Amount__c = 100;
insert Q;
Q.Tax_Classification__c='IGST';
Q.Discount_Amount__c = 100;
update Q ;
Quotelineitem QL = new Quotelineitem(quoteId=Q.id,SGST__c=6, CGST__c=6,IGST__c =0,Quantity =1, Unitprice=8000,pricebookentryid=lstPbentry[0].id);
insert QL;
Opp[0].SyncedQuoteId = Q.id;
update Opp[0];
Q.Approved__c = true;
Update Q;
Q.Approved__c = true;
update Opp[0];
QuoteLineitem qli = [Select Id From QuoteLineItem where quoteId=:Q.id limit 1];
Q.Tax_Classification__c='IGST';
qli.SGST__c =6;
QLI.CGST__c=6;
QLI.IGST__c =0;
Quote Q1 = new Quote();
Q1 .Name = 'QuoteOrbit';
Q1 .OpportunityId = Opp[0].id;
Q1 .Quote_Count__c = 00000000;
Q1 .Quote_Number__c ='000000';
Q1 .Approved__c = false;
Q1 .Quotation_Date__c = date.newinstance(2013,3,5);
Q1 .Pricebook2Id = lstPB[0].id;
Q1 .Tax_Classification__c='IGST';
Q1 .Discount_Amount__c = 100;
insert Q1;
Utils u = new Utils();
Long val = 100000000;
u.convert(val);
Test.startTest();
AggregateResult[] groupedResults = [SELECT Sum(Stock_Not_Available__c) lineItemCOunt, QuoteiD FROM QuoteLineItem
GROUP BY QuoteiD limit 1];
decimal Stock;
for(AggregateResult res:groupedResults ){
Stock=(Decimal)groupedResults [0].get('lineItemCOunt');
}
CheckRecurisive.runOnce();
update qli;
Test.stopTest();
}
}
I wrote a Test class for trigger but my test class not given the code covereage:
My Trigger:
trigger RolluplineitemTrigger on QuoteLineItem (after insert, after update) {
if(CheckRecurisive.runOnce()){
List<Id> VQuoteID = new List<Id>();
for(QuoteLineItem p: Trigger.new) {
VQuoteID.add(p.QuoteiD);
}
AggregateResult[] groupedResults = [SELECT Sum(Stock_Not_Available__c) lineItemCOunt, QuoteiD FROM QuoteLineItem
WHERE QuoteiD in :VQuoteID GROUP BY QuoteiD];
Map<id,Quote> QuoteMap = new Map<Id,Quote>([SELECT id, No_of_Products_Stock_Not_Available__c
FROM Quote WHERE Id in :VQuoteID]);
for(AggregateResult ar: groupedResults) {
QuoteMap.get((Id)ar.get('QuoteiD')).No_of_Products_Stock_Not_Available__c = (decimal) ar.get('lineItemCOunt');
}
update QuoteMap.values();
}
}
test Class;
@isTest(seealldata=true)
Public class v2_QuoteLineItemTaxUpdate_Test{
static testMethod void Testv2_QLITaxUpdate(){
GetInitialData Getdata = new GetInitialData();
list<Account> acc = Getdata.getAccount();
list<Product2> lstprod = Getdata.getProd();
list<Opportunity> Opp = Getdata.getOpp();
list<Pricebook2> lstPB = Getdata.getpricebook();
list<Pricebookentry> lststdPbe = Getdata.getstdpbe();
list<Pricebookentry> lstPbentry = new list<Pricebookentry>();
insert lstprod;
Integer indexvalue = 0;
if(lstprod.size()>0)
{
for(pricebookentry irow :lststdPbe)
{
irow.product2id = lstprod[indexvalue].id;
indexvalue++;
}
}
insert lststdPbe;
insert lstPB;
if(lstprod.size()>0)
{
for(pricebook2 irow :lstPB)
{
for(Product2 ipro : lstprod ){
Pricebookentry pbe = new Pricebookentry();
pbe.product2id = ipro.id;
pbe.pricebook2id = irow.id;
pbe.unitprice = 3000;
pbe.isActive = true;
lstPbentry.add(pbe);
}
}
}
insert lstPbentry;
insert acc[0];
Opp[0].accountId = acc[0].id;
insert Opp[0];
Opp[0].Pricebook2Id = lstPB[0].id;
update Opp[0];
OpportunityLineItem OL = new OpportunityLineItem(opportunityid=Opp[0].id, Quantity=1, unitprice=8000,
pricebookentryid=lstPbentry[0].id);
insert OL;
Tax_Master__c txm= new Tax_Master__c(CGST__c=14.00,HSN_Code__c=lstprod[0].HSN_Code__c,IGST__c=28.00,SGST__c=14.00, Start_Date__c = Date.newInstance(2017, 07, 06), End_Date__c = System.today()+2);
insert txm;
Quote Q = new Quote();
Q.Name = 'QuoteOrbit';
Q.OpportunityId = Opp[0].id;
Q.Quote_Count__c = 00000000;
Q.Quote_Number__c ='000000';
Q.Approved__c = false;
Q.Quotation_Date__c = date.newinstance(2013,3,5);
Q.Pricebook2Id = lstPB[0].id;
Q.Tax_Classification__c='IGST';
Q.Discount_Amount__c = 100;
insert Q;
Q.Tax_Classification__c='IGST';
Q.Discount_Amount__c = 100;
update Q ;
Quotelineitem QL = new Quotelineitem(quoteId=Q.id,SGST__c=6, CGST__c=6,IGST__c =0,Quantity =1, Unitprice=8000,pricebookentryid=lstPbentry[0].id);
insert QL;
Opp[0].SyncedQuoteId = Q.id;
update Opp[0];
Q.Approved__c = true;
Update Q;
Q.Approved__c = true;
update Opp[0];
QuoteLineitem qli = [Select Id From QuoteLineItem where quoteId=:Q.id limit 1];
Q.Tax_Classification__c='IGST';
qli.SGST__c =6;
QLI.CGST__c=6;
QLI.IGST__c =0;
Quote Q1 = new Quote();
Q1 .Name = 'QuoteOrbit';
Q1 .OpportunityId = Opp[0].id;
Q1 .Quote_Count__c = 00000000;
Q1 .Quote_Number__c ='000000';
Q1 .Approved__c = false;
Q1 .Quotation_Date__c = date.newinstance(2013,3,5);
Q1 .Pricebook2Id = lstPB[0].id;
Q1 .Tax_Classification__c='IGST';
Q1 .Discount_Amount__c = 100;
insert Q1;
Utils u = new Utils();
Long val = 100000000;
u.convert(val);
Test.startTest();
AggregateResult[] groupedResults = [SELECT Sum(Stock_Not_Available__c) lineItemCOunt, QuoteiD FROM QuoteLineItem
GROUP BY QuoteiD limit 1];
decimal Stock;
for(AggregateResult res:groupedResults ){
Stock=(Decimal)groupedResults [0].get('lineItemCOunt');
}
CheckRecurisive.runOnce();
update qli;
Test.stopTest();
}
}
Kindly any give me the solution for this