You need to sign in to do that
Don't have an account?
Dev87
apex test class - couvrage
Hello,
I have this apex class:
public without sharing class Opp_CalculTotalForcast {
public static void TotalForcast (List <Opportunity> oppList)
{
system.debug('debut: ' +oppList);
integer i;
Decimal TotalForcastparc =0;
Decimal TotalForcastcurrency = 0;
Decimal TotalForcastDomPorc = 0;
Decimal TotalForcastDomcurrency = 0;
Decimal TotalForcastIntparc = 0;
Decimal TotalForcastIntcurrency = 0;
Integer Nb_BUs_participating = 1;
list<Tender_BU_Response__c> allBUList = new list<Tender_BU_Response__c>();
list<Opportunity> Opp = new list<Opportunity>();
for(Opportunity o:oppList ){
Id Id= o.id;
system.debug('idopp : ' +Id);
allBUList = [Select id,BU_Name__c,Total_Parcels_Forecast__c,Stage__c, Total_Revenues_Forecast__c, Domestic_Parcels_Forecast__c,Domestic_Revenues_Forecast__c,International_Parcels_Forecast__c,International_Revenues_Forecast__c from Tender_BU_Response__c where Tender__c =: Id];
system.debug('allBUList : ' +allBUList);
if (allBUList.size()>0)
{
for (i=0; i < allBUList.size(); i++)
{
if (allBUList[i].Total_Parcels_Forecast__c != NULL)
{ TotalForcastparc = TotalForcastparc +allBUList[i].Total_Parcels_Forecast__c;}
if (allBUList[i].Total_Revenues_Forecast__c != NULL)
{TotalForcastcurrency = TotalForcastcurrency + allBUList[i].Total_Revenues_Forecast__c;}
if (allBUList[i].Domestic_Parcels_Forecast__c != NULL)
{TotalForcastDomPorc = TotalForcastDomPorc + allBUList[i].Domestic_Parcels_Forecast__c;}
if (allBUList[i].Domestic_Revenues_Forecast__c != NULL)
{TotalForcastDomcurrency = TotalForcastDomcurrency + allBUList[i].Domestic_Revenues_Forecast__c;}
if (allBUList[i].International_Parcels_Forecast__c != NULL)
{ TotalForcastIntparc = TotalForcastIntparc + allBUList[i].International_Parcels_Forecast__c;}
if (allBUList[i].International_Revenues_Forecast__c != NULL)
{TotalForcastIntcurrency = TotalForcastIntcurrency + allBUList[i].International_Revenues_Forecast__c;}
{Nb_BUs_participating = Nb_BUs_participating+i;}
}
system.debug('TotalForcast: ' +TotalForcastparc);
}
Opp = [Select id,Parcels_Forecasted__c,Amount, Total_Forecast_Domestic_Parcels__c, Total_Forecast_Domestic__c,Total_Forecast_International_Parcels__c,Total_Foreast_International__c from Opportunity where id =: o.Id];
system.debug('opp: ' +Opp);
if (Opp.size()>0)
{
for (Opportunity Opport: Opp)
{
system.debug('ok:' );
Opport.Amount = TotalForcastcurrency;
Opport.Parcels_Forecasted__c = TotalForcastparc;
Opport.Total_Forecast_Domestic_Parcels__c = TotalForcastDomPorc;
Opport.Total_Forecast_Domestic__c = TotalForcastDomcurrency;
Opport.Total_Forecast_International_Parcels__c =TotalForcastIntparc;
Opport.Total_Foreast_International__c = TotalForcastIntcurrency;
Opport.Nb_BUs_participating__c = Nb_BUs_participating;
upsert (Opport);
}
}
}
}
}
I created test class
@isTest
public class Opp_CalculTotalForcast_Test {
@isTest
static void Opp_CalculTotalForcast_Test()
{
//Profil admin pour lancer le trigger
Profile p = [select id from profile where Name='System Administrator' limit 1];
User u = new User(alias = 'test3', email='testemail@gmail.com', emailencodingkey='ISO-8859-1', lastname='Testing', languagelocalekey='fr',
localesidkey='fr_FR_EURO', profileid = p.Id, timezonesidkey='Europe/Paris', username='test1834'+String.valueOf(date.today())+'@csc.com');
insert u;
system.runAs(u){
//debut test
system.test.startTest();
DateTime myDateTime = DateTime.newInstance(2014, 12, 16, 12, 6, 13);
Date myDate = myDateTime.date();
Id RecordTypeIdBUtypeAccount = Schema.SObjectType.Account.getRecordTypeInfosByName().get('Account').getRecordTypeId();
//Create new account
Account acc = new Account (Name = 'testdeaicha23', recordTypeId = RecordTypeIdBUtypeAccount);
insert acc;
Account acc1 = new Account (Name = 'testdeaicha2', recordTypeId = RecordTypeIdBUtypeAccount);
insert acc1;
//create new opportunity
Opportunity opp = new Opportunity (AccountId = acc.id, Name = 'opptestaicha', StageName = '0. Pre-Alert', CloseDate = myDate);
opp.Date_Received__c=Date.today();
opp.Deadline_to_respond__c=Date.today();
insert opp;
// create new BU Response attached to Opportunity
Tender_BU_Response__c BURespons = new Tender_BU_Response__c (Tier__c = acc.id,Tender__c=opp.id, Name= 'BUtestaicha1', Domestic_New_Business_Parcels__c= 100, Domestic_Revenues_Forecast__c= 200, International_Parcels_Forecast__c = 400, International_Revenues_Forecast__c= 350 );
insert BURespons;
update opp;
system.test.stopTest();
}
}
}
But covrage is 64%, can someone help me
I have this apex class:
public without sharing class Opp_CalculTotalForcast {
public static void TotalForcast (List <Opportunity> oppList)
{
system.debug('debut: ' +oppList);
integer i;
Decimal TotalForcastparc =0;
Decimal TotalForcastcurrency = 0;
Decimal TotalForcastDomPorc = 0;
Decimal TotalForcastDomcurrency = 0;
Decimal TotalForcastIntparc = 0;
Decimal TotalForcastIntcurrency = 0;
Integer Nb_BUs_participating = 1;
list<Tender_BU_Response__c> allBUList = new list<Tender_BU_Response__c>();
list<Opportunity> Opp = new list<Opportunity>();
for(Opportunity o:oppList ){
Id Id= o.id;
system.debug('idopp : ' +Id);
allBUList = [Select id,BU_Name__c,Total_Parcels_Forecast__c,Stage__c, Total_Revenues_Forecast__c, Domestic_Parcels_Forecast__c,Domestic_Revenues_Forecast__c,International_Parcels_Forecast__c,International_Revenues_Forecast__c from Tender_BU_Response__c where Tender__c =: Id];
system.debug('allBUList : ' +allBUList);
if (allBUList.size()>0)
{
for (i=0; i < allBUList.size(); i++)
{
if (allBUList[i].Total_Parcels_Forecast__c != NULL)
{ TotalForcastparc = TotalForcastparc +allBUList[i].Total_Parcels_Forecast__c;}
if (allBUList[i].Total_Revenues_Forecast__c != NULL)
{TotalForcastcurrency = TotalForcastcurrency + allBUList[i].Total_Revenues_Forecast__c;}
if (allBUList[i].Domestic_Parcels_Forecast__c != NULL)
{TotalForcastDomPorc = TotalForcastDomPorc + allBUList[i].Domestic_Parcels_Forecast__c;}
if (allBUList[i].Domestic_Revenues_Forecast__c != NULL)
{TotalForcastDomcurrency = TotalForcastDomcurrency + allBUList[i].Domestic_Revenues_Forecast__c;}
if (allBUList[i].International_Parcels_Forecast__c != NULL)
{ TotalForcastIntparc = TotalForcastIntparc + allBUList[i].International_Parcels_Forecast__c;}
if (allBUList[i].International_Revenues_Forecast__c != NULL)
{TotalForcastIntcurrency = TotalForcastIntcurrency + allBUList[i].International_Revenues_Forecast__c;}
{Nb_BUs_participating = Nb_BUs_participating+i;}
}
system.debug('TotalForcast: ' +TotalForcastparc);
}
Opp = [Select id,Parcels_Forecasted__c,Amount, Total_Forecast_Domestic_Parcels__c, Total_Forecast_Domestic__c,Total_Forecast_International_Parcels__c,Total_Foreast_International__c from Opportunity where id =: o.Id];
system.debug('opp: ' +Opp);
if (Opp.size()>0)
{
for (Opportunity Opport: Opp)
{
system.debug('ok:' );
Opport.Amount = TotalForcastcurrency;
Opport.Parcels_Forecasted__c = TotalForcastparc;
Opport.Total_Forecast_Domestic_Parcels__c = TotalForcastDomPorc;
Opport.Total_Forecast_Domestic__c = TotalForcastDomcurrency;
Opport.Total_Forecast_International_Parcels__c =TotalForcastIntparc;
Opport.Total_Foreast_International__c = TotalForcastIntcurrency;
Opport.Nb_BUs_participating__c = Nb_BUs_participating;
upsert (Opport);
}
}
}
}
}
I created test class
@isTest
public class Opp_CalculTotalForcast_Test {
@isTest
static void Opp_CalculTotalForcast_Test()
{
//Profil admin pour lancer le trigger
Profile p = [select id from profile where Name='System Administrator' limit 1];
User u = new User(alias = 'test3', email='testemail@gmail.com', emailencodingkey='ISO-8859-1', lastname='Testing', languagelocalekey='fr',
localesidkey='fr_FR_EURO', profileid = p.Id, timezonesidkey='Europe/Paris', username='test1834'+String.valueOf(date.today())+'@csc.com');
insert u;
system.runAs(u){
//debut test
system.test.startTest();
DateTime myDateTime = DateTime.newInstance(2014, 12, 16, 12, 6, 13);
Date myDate = myDateTime.date();
Id RecordTypeIdBUtypeAccount = Schema.SObjectType.Account.getRecordTypeInfosByName().get('Account').getRecordTypeId();
//Create new account
Account acc = new Account (Name = 'testdeaicha23', recordTypeId = RecordTypeIdBUtypeAccount);
insert acc;
Account acc1 = new Account (Name = 'testdeaicha2', recordTypeId = RecordTypeIdBUtypeAccount);
insert acc1;
//create new opportunity
Opportunity opp = new Opportunity (AccountId = acc.id, Name = 'opptestaicha', StageName = '0. Pre-Alert', CloseDate = myDate);
opp.Date_Received__c=Date.today();
opp.Deadline_to_respond__c=Date.today();
insert opp;
// create new BU Response attached to Opportunity
Tender_BU_Response__c BURespons = new Tender_BU_Response__c (Tier__c = acc.id,Tender__c=opp.id, Name= 'BUtestaicha1', Domestic_New_Business_Parcels__c= 100, Domestic_Revenues_Forecast__c= 200, International_Parcels_Forecast__c = 400, International_Revenues_Forecast__c= 350 );
insert BURespons;
update opp;
system.test.stopTest();
}
}
}
But covrage is 64%, can someone help me
Create new method which statisfes condtions like if (allBUList.size()>0) , if (Opp.size()>0) .
Please share code coverage lines which highlighted lines which are not covered helps us to do best
Mark as resloved if it helps :) :)
Thanks,
Bhanu Prakash
visit ForceLearn.com (https://www.forcelearn.com)
Thanks for replaying, I have a probleme whith my Tender_BU_Response__c list.