You need to sign in to do that
Don't have an account?
EagerToLearn
Issue with test class: List out of bound
Hi,
I am having issues with a test class that used to work but after making many changes to the VF and Controller and getting those to work, I started getting the following error "class contructor not defined: [ApexPages.StandardController].<Constructor>() at 14 and then I added the following to the controller:
public SandboxRefreshUtilPwdChgController() {
}
Then I now get the list out of bound error.
THIS IS A PORTION OF THE CONTROLLER:
public with sharing class SandboxRefreshUtilPwdChgController {
//list for holding the wrapped users and Integers to be displayed on the page
public List<userWrapper> wrappedObjects = new List<userWrapper>();
public List<User> userList;
public Map<Id, User> compareMap = new Map<Id, User>();
// Constructors 1
public SandboxRefreshUtilPwdChgController() {
}
// Constructor 2
public SandboxRefreshUtilPwdChgController(ApexPages.StandardController ex) {
System.debug('constructor');
List<User> userList = getUsers();
Integer i = 0; //integer for tracking the row counter value we want to pass back in the wrapper
for ( user u : userList ) { //start looping through users
i++; //increment the integer
userWrapper wrappedObject = new userWrapper(u, i); //wrap the user with the Integer, which calls the userWrapper class below
wrappedObjects.add(wrappedObject); //add the wrapper object to our list
}
}
....
....
AND THIS IS THE TEST CLASS:
@isTest
private class SandboxRefreshUtilPwdChgController_Test {
@testSetup static void setupTestData() {
createUserRecords();
}
private static testMethod void PasswordChangeSucccesTest() {
List<User> userList = [SELECT id, Email FROM User WHERE CreatedDate = TODAY];
System.debug('TEST: userList.size(): ' + userList.size());
Test.startTest();
PageReference pageRef = Page.SandboxRefreshUtilPwdChg;
Test.setCurrentPage(pageRef);
SandboxRefreshUtilPwdChgController con = new SandboxRefreshUtilPwdChgController(); //1st error before change
con.getWrappedObjects()[0].pwd = 'PwT5Srefresh!'; //current error after adding a blank constructor
con.UpdatePasswords();
System.assertEquals('Yes', con.getWrappedObjects()[0].successfulChange, 'Password Change failed!');
Test.stopTest();
}
Appreciate your support
Tom
I am having issues with a test class that used to work but after making many changes to the VF and Controller and getting those to work, I started getting the following error "class contructor not defined: [ApexPages.StandardController].<Constructor>() at 14 and then I added the following to the controller:
public SandboxRefreshUtilPwdChgController() {
}
Then I now get the list out of bound error.
THIS IS A PORTION OF THE CONTROLLER:
public with sharing class SandboxRefreshUtilPwdChgController {
//list for holding the wrapped users and Integers to be displayed on the page
public List<userWrapper> wrappedObjects = new List<userWrapper>();
public List<User> userList;
public Map<Id, User> compareMap = new Map<Id, User>();
// Constructors 1
public SandboxRefreshUtilPwdChgController() {
}
// Constructor 2
public SandboxRefreshUtilPwdChgController(ApexPages.StandardController ex) {
System.debug('constructor');
List<User> userList = getUsers();
Integer i = 0; //integer for tracking the row counter value we want to pass back in the wrapper
for ( user u : userList ) { //start looping through users
i++; //increment the integer
userWrapper wrappedObject = new userWrapper(u, i); //wrap the user with the Integer, which calls the userWrapper class below
wrappedObjects.add(wrappedObject); //add the wrapper object to our list
}
}
....
....
AND THIS IS THE TEST CLASS:
@isTest
private class SandboxRefreshUtilPwdChgController_Test {
@testSetup static void setupTestData() {
createUserRecords();
}
private static testMethod void PasswordChangeSucccesTest() {
List<User> userList = [SELECT id, Email FROM User WHERE CreatedDate = TODAY];
System.debug('TEST: userList.size(): ' + userList.size());
Test.startTest();
PageReference pageRef = Page.SandboxRefreshUtilPwdChg;
Test.setCurrentPage(pageRef);
SandboxRefreshUtilPwdChgController con = new SandboxRefreshUtilPwdChgController(); //1st error before change
con.getWrappedObjects()[0].pwd = 'PwT5Srefresh!'; //current error after adding a blank constructor
con.UpdatePasswords();
System.assertEquals('Yes', con.getWrappedObjects()[0].successfulChange, 'Password Change failed!');
Test.stopTest();
}
Appreciate your support
Tom
list out of bound error means your query does not return any record.
You are not retrieving pwd field in your query.
Change your query with this--
List<User> userList = [SELECT id, Email,pwd FROM User WHERE CreatedDate = TODAY];