You need to sign in to do that
Don't have an account?
please help me in writing the test case for this class
public class NewBankController {
public List<Bank_Rates__c> brSearchOutput { get; set; }
public List<Bank_Rates__c> brEmailSearchOutput { get; set; }
public Bank_Rates__c bank {get; set;}
String leadId;
public String[] inputBanks;
public Lead thisLead{get; set;}
public DisplaySearch displayOptions {get; set;}
Datetime dt = system.today();
string dtFrmt = dt.format('dd MMM yyyy');
//Email variables
public String subject{ get; set; }
public String emailBody { get; set; }
private String myErrMessage;
private String fileName='';
public NewBankController(){
bank = new Bank_Rates__c();
displayOptions = new DisplaySearch();
leadId = ApexPages.currentPage().getParameters().get('leadId');
setSearchResults();
}
public Bank_Rates__c getBank() {
if(bank == null) bank = new Bank_Rates__c();
return bank;
}
/*
Method used to fetch search results
of the given query
*/
public PageReference search(){
searchOutput();
return Page.NextStep;
}
public void setSearchResults(){
leadId = ApexPages.currentPage().getParameters().get('leadId');
thisLead=[Select id, Email, Name, Property_use__c, Employment__c, Product_Name__c, City_of_work__c,
City_of_property__c, Residency_Status__c, Loan_Requested_SAL__c, Company_type__c, Loan_Tenure_Requested__c,
Depriciation_co_y1__c, Gross_Profit_co_y1__c, itr_co_y1__c, Prop_total_Cost__c, Prop_Const_Stage__c,
Prop_Purchase_from__c, Prop_Purchase_Through__c, Prop_Location__c, Prop_occupancy__c, Prop_Age__c,
type_of_industry__c, Salary_gross__c, Banking_individual__c, Bank_company__c,
Rented_to1__c, Lessee_name1__c, Lease_amount1__c, Lease_Term__c, Lease_due_term1__c, Prop_Type__c
from lead where
id=:leadId];
setSearchInput(thisLead);
}
public void setSearchInput(Lead thisLead){
bank.Product_Name__c = thisLead.Product_Name__c;
bank.Property_use__c = thisLead.Property_use__c;
bank.City_of_work__c = thisLead.City_of_work__c;
bank.City_of_property__c = thisLead.City_of_property__c;
}
public void searchOutput(){
String[] inputtypeOfLoan;
String[] inputBanks;
if(bank.Type_of_Loan__c!=null)
inputtypeOfLoan=bank.Type_of_Loan__c.Split(';');
if(bank.Banks_list__c!=null)
inputBanks = bank.Banks_list__c.Split(';');
fileName = thisLead.Name + '-' + dtFrmt + '';
subject ='ACC__c;
emailBody = 'Dear ' + thisLead.Name + ',\n\n' +
'Please find enclosed our proposal for your kind perusal.' + '\n' +
'Do let us know if you require any further information or assistance in this context,' + '\n' +
'we would be more than happy to be at your service' + '\n\n\n' +
'Yours truly, \n'+ UserInfo.getName();
brSearchOutput = [ Select id, Name, Max_Loan_Amount__c, Min_Loan_Amount__c, Max_Tenure__c,
Min_Tenure__c, Type_of_Loan__c, Employment__c, Slab_Rates__c, ADF__c, Bank_Name__c, Product_Name__c,
ANCIL_CHG__c, Base_Rate__c, Franking_Fee__c, Funding_Upto__c, Mort__c,Teaser_Fixed__c,
Insurance__c, P__c, PreClosure__c, Proc_Fee_incl_tax__c, Project_Approved__c, Prop_Type__c,
Rate_Std__c, Rate_OD_Loan__c, Bank_Selection__c, Display_Banks__c
from Bank_Rates__c
where
((Max_Loan_Amount__c<=:bank.Loan_Requested_SAL__c
or Min_Loan_Amount__c>=:bank.Loan_Requested_SAL__c )
and Type_of_Loan__c in :inputtypeOfLoan
and Bank_Name__c in :inputBanks )
and ((Employment__c in (:bank.Employment__c))
or (Employment__c='General'))
];
}
public PageReference emailStep(){
setEmailDataTable();
return Page.AnilTest;
}
public void setEmailDataTable(){
brEmailSearchOutput = new List<Bank_Rates__c>();
for(Bank_Rates__c br:brSearchOutput)
if(br.Bank_Selection__c==true){
brEmailSearchOutput.add(br);
}
}
//function used to send the proposal email
public PageReference send() {
// Define the email
Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();
// Reference the attachment page and pass in the Meeting Fee ID
PageReference pdf = Page.SearchCriteriaProposal;
pdf.getParameters().put('leadId',thisLead.Id);
pdf.setRedirect(true);
// Take the PDF content
Blob b ;
try {
b= pdf.getContent();
}catch(VisualforceException e){
b=Blob.valueOf('Error occured while Generating PDF');
}
// Create the email attachment
Messaging.EmailFileAttachment efa = new Messaging.EmailFileAttachment();
efa.setFileName(fileName);
efa.setBody(b);
efa.setInline(false);
efa.setContentType('application/pdf');
// Sets the paramaters of the email
String addresses;
if (thisLead.Email != null){
addresses = thisLead.Email ;
}
String []toAddresses = addresses.split(':', 0);
email.setSubject(subject);
email.setToAddresses(toAddresses);
email.setPlainTextBody(emailBody);
email.setUseSignature(false);
email.setFileAttachments(new Messaging.EmailFileAttachment[] {efa});
// Sends the email
Messaging.SendEmailResult [] r = Messaging.sendEmail(new Messaging.SingleEmailMessage[] {email});
/* create the attachment against the quote */
Attachment a = new Attachment(parentId = thisLead.id, name=thisLead.Name + '.pdf', body = b);
/* insert the attachment */
insert a;
return new PageReference('/'+thisLead.Id);
}
//Test Method
public static testMethod void testNewBankController(){
Profile p = [select id from profile where name='System Administrator'];
User u = new User(alias = 'rii1', email='standarduser@testorg.com',
emailencodingkey='UTF-8', lastname='RII', languagelocalekey='en_US',
localesidkey='en_US', profileid = p.Id,timezonesidkey='America/Los_Angeles', username='rixyncsindiainc@testorg.com');
insert u;
Bank_Rates__c br=new Bank_Rates__c();
ApexPages.StandardController sc = new ApexPages.standardController(br);
NewBankController myPageCon = new NewBankController( );
}
}
Please take a look at this article -
http://wiki.developerforce.com/page/An_Introduction_to_Apex_Code_Test_Methods
You will first need to create an instance of the class in the test case, and then invoke various methods of the class.