You need to sign in to do that
Don't have an account?
Test coverage
Hi All,
I hava a written testclass . i am getting 61% , any one can help me to increase test coverage
Apex class;
-------------------------
public class IdeaForgotPasswordController extends IdeaController {
public String email {get; set;}
public IdeaForgotPasswordController() {
}
public PageReference forgotPassword() {
if (!isValid()) {
return null;
}
String username = null;
if (email != null && email != '') {
List<User> users = [select username from user where username = :email];
if (users.size() == 1) {
// exact match on username
username = users.get(0).username;
}
else {
users = [select username from user where email = :email];
if (users.size() == 1) {
// exact match on email address
username = users.get(0).username;
}
}
}
if (username == null) {
addErrorMessage('User not found');
return null;
}
boolean success = Site.forgotPassword(username);
if (success) {
PageReference pr = new PageReference(URL_FORGOT_PASSWORD_CONFIRM);
pr.setRedirect(true);
return pr;
}
return null;
}
public boolean isValid() {
boolean valid = true;
if (email == '') {
addErrorMessage('Email address is required.');
valid = false;
}
return valid;
}
private void addErrorMessage(String message) {
ApexPages.Message msg = new ApexPages.Message(ApexPages.Severity.ERROR, message);
ApexPages.addMessage(msg);
}
}
public class IdeaForgotPasswordController extends IdeaController {
public String email {get; set;}
public IdeaForgotPasswordController() {
}
public PageReference forgotPassword() {
if (!isValid()) {
return null;
}
String username = null;
if (email != null && email != '') {
List<User> users = [select username from user where username = :email];
if (users.size() == 1) {
// exact match on username
username = users.get(0).username;
}
else {
users = [select username from user where email = :email];
if (users.size() == 1) {
// exact match on email address
username = users.get(0).username;
}
}
}
if (username == null) {
addErrorMessage('User not found');
return null;
}
boolean success = Site.forgotPassword(username);
if (success) {
PageReference pr = new PageReference(URL_FORGOT_PASSWORD_CONFIRM);
pr.setRedirect(true);
return pr;
}
return null;
}
public boolean isValid() {
boolean valid = true;
if (email == '') {
addErrorMessage('Email address is required.');
valid = false;
}
return valid;
}
private void addErrorMessage(String message) {
ApexPages.Message msg = new ApexPages.Message(ApexPages.Severity.ERROR, message);
ApexPages.addMessage(msg);
}
}
Test Class
---------------------------
Try the below code, you haven't given any email and so it won't go any futher in the code.
@isTest
private clAss IdeaForgotPasswordControllerTest
{
static TestMethod Void TestIdeaForgetpassword()
{
Profile p = [SELECT Id FROM Profile WHERE Name='Standard User'];
User u = new User(Alias = 'eerer',
EmailEncodingKey='UTF-8', LastName='bbbbb', LanguageLocaleKey='en_US',
LocaleSidKey='en_US', ProfileId = p.Id, Email='adityavyas.sf@gmail.com',
TimeZoneSidKey='America/Los_Angeles', UserName='adityavyas.sf@gmail.com');
List<User> users = [select username from user where username = :U.email];
System.runAs(u) {
// The following code runs as user 'u'
System.debug('Current User: ' + UserInfo.getUserName());
System.debug('Current Profile: ' + UserInfo.getProfileId()); }
IdeaForgotPasswordController ideaforget= New IdeaForgotPasswordController();
ideaforget.email = 'test@test.com';
Pagereference page=ideaforget.forgotPassword();
}
}
The red lines are not covering plz help me to cover that code
Copy and paste this code
@isTest
private clAss IdeaForgotPasswordControllerTest
{
static TestMethod Void TestIdeaForgetpassword()
{
Profile p = [SELECT Id FROM Profile WHERE Name='Standard User'];
User u = new User(Alias = 'eerer',
EmailEncodingKey='UTF-8', LastName='bbbbb', LanguageLocaleKey='en_US',
LocaleSidKey='en_US', ProfileId = p.Id, Email='adityavyas.sf@gmail.com',
TimeZoneSidKey='America/Los_Angeles', UserName='adityavyas.sf@gmail.com');
insert u;
List<User> users = [select username from user where username = :U.email];
System.runAs(u) {
// The following code runs as user 'u'
System.debug('Current User: ' + UserInfo.getUserName());
System.debug('Current Profile: ' + UserInfo.getProfileId()); }
IdeaForgotPasswordController ideaforget= New IdeaForgotPasswordController();
ideaforget.email = 'test@test.com';
Pagereference page=ideaforget.forgotPassword();
}
}