You need to sign in to do that
Don't have an account?
Help on test class
public class sendEmail{
public Account account = new Account();
public Account acct = new Account();
public sendEmail(ApexPages.StandardController stdController) {
account = (Account)stdController.getRecord();
acct = [select id,name,billingstreet,billingcity,billingstate,billingpostalcode,phone, (select Contact.Name, Contact.Email FROM Account.Contacts) from Account where id = :account.id];
}
public String subject { get; set; }
public String body { get; set; }
public Account getAccount() {
return account;
}
public PageReference send() {
// Define the email
Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();
String addresses = 'bharathvsfdc@gmail.com';
String body2;
String[] toAddresses = addresses.split(':', 0);
body2 = 'Name: ' + acct.Name + '<br />';
body2 += 'Address:<br />';
body2 += ' Street : ' + acct.BillingStreet + 'br />';
body2 += ' City : ' + acct.BillingCity + '<br />';
body2 += ' State : ' + acct.BillingState + '<br />';
body2 += ' PostalCode: ' + acct.BillingPostalCode + '<br />';
body2 += 'Telphone Number: ' + acct.Phone + '<br /><br />';
body2 += 'Contact Name:<br /> ';
for (Integer i = 1; i < acct.Contacts.size(); i++)
{
body2 += ' ' + acct.Contacts[i].Name + '<br />';
}
// Sets the paramaters of the email
email.setSubject( subject );
email.setToAddresses( toAddresses );
email.setPlainTextBody( body2 );
email.setHtmlBody(body2);
// Sends the email
Messaging.SendEmailResult [] r =
Messaging.sendEmail(new Messaging.SingleEmailMessage[] {email});
return new PageReference('/' + account.ID);
}
}
How to write test class for this
Hi,
First you need to create the account and their contact record because you need that.after that you create standard controller object with parameter ( In your case standard controller is account Account ).
ApexPages.StandardController sc = new ApexPages.StandardController(acc);
And Then Create object of your class:
sendEmail clsObj = new sendEmail(sc);
@isTest
public Class TestsendEmail {
public static testMethod void unitTest() {
Account acc = new Account (
Name = 'test'
);
insert acc;
Contact con = new Contact (
accountId = acc.Id,
LastName = 'test'
);
insert con;
Contact con1 = new Contact (
accountId = acc.Id,
LastName = 'test1'
);
insert con1;
ApexPages.StandardController sc = new ApexPages.StandardController(acc);
sendEmail clsObj = new sendEmail(sc);
clsObj.getAccount();
clsObj.send();
}
}
All Answers
Hi,
First you need to create the account and their contact record because you need that.after that you create standard controller object with parameter ( In your case standard controller is account Account ).
ApexPages.StandardController sc = new ApexPages.StandardController(acc);
And Then Create object of your class:
sendEmail clsObj = new sendEmail(sc);
@isTest
public Class TestsendEmail {
public static testMethod void unitTest() {
Account acc = new Account (
Name = 'test'
);
insert acc;
Contact con = new Contact (
accountId = acc.Id,
LastName = 'test'
);
insert con;
Contact con1 = new Contact (
accountId = acc.Id,
LastName = 'test1'
);
insert con1;
ApexPages.StandardController sc = new ApexPages.StandardController(acc);
sendEmail clsObj = new sendEmail(sc);
clsObj.getAccount();
clsObj.send();
}
}
Thanks for your help.Now it's 92% code coverage
If I add code like below in PageReference send()
if (acct.Name != Null)
{
Name = acct.Name;
}
if (acct.BillingStreet != Null)
{
Street = acct.BillingStreet;
}
How to get the coverage for the highlighted part.
Thanks for the help