You need to sign in to do that
Don't have an account?

Test class help needed
Hi,
Please help me to write the test class for the below class,
/**** Create competitiveinfo records from the corresponding opportunity.
**/
public class AF_OpportunityHandlerController{
public void createCIRecords(List<Opportunity> oppList)
{
Competitive_Info__c ci;
List<Competitive_Info__c> ciList = new List<Competitive_Info__c>();
for(Opportunity op: oppList)
{
ci = new Competitive_Info__c(Account__c = op.AccountId,Line_Of_Business__c = op.Type,OwnerId = op.ownerId,Competing_Lender__c = op.Competing_Lender__c,Competitions_Rate_Index__c = op.Competing_Rate_Type__c,Competitive_Spread__c = op.Competing_Spread__c,Competitions_Net_Rate__c = op.Competition_Net_Rate__c,Date_Competitive_Info_Obtained__c = op.CloseDate,Loan_Type__c = op.Opportunity_Type__c);
ciList.add(ci);
}
if(ciList != null && ciList.size() >0)
{
try
{
insert ciList;
}
catch(system.DMLException e)
{
system.debug('DML Exception'+e.getDMLMessage(0));
}
finally
{
AF_DealerCRM_Utility.IS_CI_CREATED = true;
}
}
}
}
Thanks in advance
Please help me to write the test class for the below class,
/**** Create competitiveinfo records from the corresponding opportunity.
**/
public class AF_OpportunityHandlerController{
public void createCIRecords(List<Opportunity> oppList)
{
Competitive_Info__c ci;
List<Competitive_Info__c> ciList = new List<Competitive_Info__c>();
for(Opportunity op: oppList)
{
ci = new Competitive_Info__c(Account__c = op.AccountId,Line_Of_Business__c = op.Type,OwnerId = op.ownerId,Competing_Lender__c = op.Competing_Lender__c,Competitions_Rate_Index__c = op.Competing_Rate_Type__c,Competitive_Spread__c = op.Competing_Spread__c,Competitions_Net_Rate__c = op.Competition_Net_Rate__c,Date_Competitive_Info_Obtained__c = op.CloseDate,Loan_Type__c = op.Opportunity_Type__c);
ciList.add(ci);
}
if(ciList != null && ciList.size() >0)
{
try
{
insert ciList;
}
catch(system.DMLException e)
{
system.debug('DML Exception'+e.getDMLMessage(0));
}
finally
{
AF_DealerCRM_Utility.IS_CI_CREATED = true;
}
}
}
}
Thanks in advance
You need to call your method something like below :-
afcominfoUpd.createCIRecords(<pass a list Opportunity>);
All Answers
@isTest
public class Test_AF_OpportunityHandlerController
{
static testMethod void testAddcompinfoToopportunity()
{
/*Setup user Data*/
List<User> ae = [SELECT Id FROM User WHERE isActive = true ];
/* set up account data */
Account a = new Account();
a.Name = 'Test Account - 1';
a.BillingStreet = 'AnyWhere St - 1';
a.BillingCity = 'Test City';
a.BillingPostalCode = '99922';
a.BillingState = 'MI';
a.Ally_Primary_Dealer_Number__c = '98999';
/* insert accounts */
insert a;
/* add new opportunities */
integer opptyCnt = 1;
List<Opportunity> opportunities = new List<Opportunity>();
for (integer k=0; k<opptyCnt; k++) {
Opportunity o = new Opportunity();
o.AccountId = a.Id;
o.Opp_Primary_Product__c = 'Retail';
o.name = a.Name+'-'+o.Opp_Primary_Product__c;
o.CloseDate = system.today().addDays(4);
o.stageName = 'ClosedLost';
o.Type = 'New Business';
o.Competing_Lender__c ='Bank of America';
o.Competing_Rate_Type__c ='Fixed';
o.Competing_Spread__c =12;
o.Competition_Net_Rate__c =12;
o.Opportunity_Type__c ='Wholesale';
o.ownerid = ae[0].id;
opportunities.add(o);
}
/* insert opportunities*/
insert opportunities;
//List<Opportunity> insertedOpportunities = [Select Id,StageName,ownerId,owner.Name from Opportunity where Id IN :opportunities];
//System.assertEquals(insertedOpportunities.size()==2);
/* validate */
List<Opportunity> insertedOpptys = [SELECT Id, OwnerId FROM Opportunity ORDER BY RecordType.Name ASC];
System.assertEquals(insertedOpptys.size(), opptyCnt);
/* add new competitiveinfo*/
List<Competitive_Info__c> competitiveinfo = new List<Competitive_Info__c>();
for (integer k=0; k<opptyCnt; k++) {
Competitive_Info__c c = new Competitive_Info__c();
c.Account__c =a.Id;
c.Line_Of_Business__c ='New Business';
c.OwnerId =ae[0].id;
c.Competing_Lender__c ='Bank of America';
c.Competitions_Rate_Index__c ='Fixed';
c.Competitive_Spread__c =12;
c.Competitions_Net_Rate__c =12;
c.Date_Competitive_Info_Obtained__c =system.today().addDays(4);
c.Loan_Type__c='Wholesale';
competitiveinfo .add(c);
}
/* insert competitiveinfo*/
insert competitiveinfo;
/*Instanciate the class */
AF_OpportunityHandlerController afcominfoUpd = new AF_OpportunityHandlerController();
}
}
method is passing but the class is not covering , sorry i forgot to past my test class, let me know if there is any error in my test class .
Thanks
You need to call your method something like below :-
afcominfoUpd.createCIRecords(<pass a list Opportunity>);
Thanks