-
ChatterFeed
-
0Best Answers
-
2Likes Received
-
0Likes Given
-
2Questions
-
4Replies
Apex Test Class Variable Setting
I am getting a null, for the variable, setUsrCat after a call to the Apex Class. SetUsrCat should not be Sminull90. I was hoping to get SmOR90. My Apex class does it correctly, but when I run the test class I get the null problem.
I have tried a number of things in the test class, but the null remains. I am assuming there is something in the test class that needs to be set that is not. If you can please help me in this matter it will be appreciated.
My code is as follows:
Apex Class:
public class NewUtilStaffProcess {
@future
public static void createUtlUser(Id recid) {
Contact gcon = [SELECT Email, Lastname, Firstname, Middlename, AccountId
FROM Contact
WHERE Id = :recid];
Profile p = [SELECT Id FROM Profile WHERE Name='HAVNA City Public Utility Group'];
Id acctsTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Account'
AND Name = 'Account Source'].Id;
String groleId = [SELECT Id FROM UserRole WHERE Name = 'Utility Staff' LIMIT 1].Id;
String formatUsrName;
String setUsrLoc;
Account retAcct = [SELECT Id, HAVNA_State_Country_State__r.HAVNA_Letter_Code__c, Hav_Locality__c, Hav_Street__c
FROM Account
WHERE Id = :gcon.AccountId
AND recordTypeId = :acctsTypeId
LIMIT 1];
if (retAcct.Hav_Street__c == 'Local/Surveyor')
setUsrLoc = retAcct.HAVNA_State_and_Country_ID__r.HAVNA_Letter_Code__c+retAcct.Hav_Locality__c;
if (retAcct.Hav_Street__c == 'City/Surveyor')
setUsrLoc = retAcct.HAVNA_State_and_Country_ID__r.HAVNA_Letter_Code__c+'C1';
if (retAcct.Hav_Street__c == 'State/Surveyor')
setUsrLoc = retAcct.HAVNA_State_and_Country_ID__r.HAVNA_Letter_Code__c+'C2';
if (gcon.middlename == null) {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
Integer midSize = gcon.Middlename.length();
if (midSize == 1) {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.'+gcon.middlename.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.'+gcon.middlename.deleteWhitespace().trim().substring(0,1).toLowercase()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
}
}
System.debug('Formatted Username: '+formatUsrName);
User u = new User(Alias = gcon.Lastname.deleteWhitespace().trim().length() > 4 ? gcon.Lastname.deleteWhitespace().trim().substring(0,2)+setUsrLoc: gcon.lastname+setUsrLoc,
Email = gcon.Email,
EmailEncodingKey = 'UTF-8',
LastName = gcon.Lastname,
FirstName = gcon.Firstname,
MiddleName = gcon.Middlename,
LanguageLocaleKey = 'en_US',
LocaleSidKey = 'en_US',
ProfileId = p.Id,
UserRoleId = groleid,
TimeZoneSidKey = 'America/New_York',
UserName = formatUsrName);
Insert(u);
System.debug(u.id);
UtilStaffPermSet.assgnPermissionSet(recId, u.Id);
System.resetPassword(u.Id, True);
}
}
=====================================================
Apex Test Class:
@isTest
public class NewUtilStaffProcessTest {
public static testMethod void InitialTest() {
/* Get Record Id Type */
Id conTypeId;
Id acctTypeId;
String formatUsrName;
String setUsrLoc;
conTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Contact'
AND Name = 'Utility Staffer'].Id;
Id acctsTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Account'
AND Name = 'Account Source'].Id;
Profile p = [SELECT Id FROM Profile WHERE Name='HAVNA City Public Utility Group'];
String groleId = [SELECT Id FROM UserRole WHERE Name = 'Utility Staff' LIMIT 1].Id;
Integer midsize;
//Create new State record; initialize required field(s), then insert
HAV_State_and_Country__c state = new HAV_State_and_Country__c();
state.Name = 'Oregon';
state.HAVNA_Letter_Code__c = 'OR';
state.Hav_Type__c = 'State';
Insert state;
//Create new Account record; initialize required field(s), then insert
Account acct = new Account(Name='Oregon Local 7');
acct.Hav_Locality__c = '90';
acct.Hav_Street__c = 'Local/Surveyor';
acct.RecordTypeId = AcctTypeId;
acct.HAVNA_State_and_Country_ID__c = state.id;
insert acct;
//Create new Contact record; initialize required field(s), then insert
Contact con = new Contact();
con.FirstName = 'Ralph';
con.LastName = 'Smith';
con.Middlename = 'Otis';
con.RecordTypeId = conTypeId;
con.email = 'rsmith8@verizon.com';
con.AccountId = acct.id;
//Insert Contact
Insert con ;
System.debug(con.id);
User thisUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()];
system.runAs(thisUser){
Test.startTest();
NewUtilStaffProcess.createUtlUser(con.id);
Test.stopTest();
system.debug('Done');
}
}
}
I have tried a number of things in the test class, but the null remains. I am assuming there is something in the test class that needs to be set that is not. If you can please help me in this matter it will be appreciated.
My code is as follows:
Apex Class:
public class NewUtilStaffProcess {
@future
public static void createUtlUser(Id recid) {
Contact gcon = [SELECT Email, Lastname, Firstname, Middlename, AccountId
FROM Contact
WHERE Id = :recid];
Profile p = [SELECT Id FROM Profile WHERE Name='HAVNA City Public Utility Group'];
Id acctsTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Account'
AND Name = 'Account Source'].Id;
String groleId = [SELECT Id FROM UserRole WHERE Name = 'Utility Staff' LIMIT 1].Id;
String formatUsrName;
String setUsrLoc;
Account retAcct = [SELECT Id, HAVNA_State_Country_State__r.HAVNA_Letter_Code__c, Hav_Locality__c, Hav_Street__c
FROM Account
WHERE Id = :gcon.AccountId
AND recordTypeId = :acctsTypeId
LIMIT 1];
if (retAcct.Hav_Street__c == 'Local/Surveyor')
setUsrLoc = retAcct.HAVNA_State_and_Country_ID__r.HAVNA_Letter_Code__c+retAcct.Hav_Locality__c;
if (retAcct.Hav_Street__c == 'City/Surveyor')
setUsrLoc = retAcct.HAVNA_State_and_Country_ID__r.HAVNA_Letter_Code__c+'C1';
if (retAcct.Hav_Street__c == 'State/Surveyor')
setUsrLoc = retAcct.HAVNA_State_and_Country_ID__r.HAVNA_Letter_Code__c+'C2';
if (gcon.middlename == null) {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
Integer midSize = gcon.Middlename.length();
if (midSize == 1) {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.'+gcon.middlename.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.'+gcon.middlename.deleteWhitespace().trim().substring(0,1).toLowercase()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
}
}
System.debug('Formatted Username: '+formatUsrName);
User u = new User(Alias = gcon.Lastname.deleteWhitespace().trim().length() > 4 ? gcon.Lastname.deleteWhitespace().trim().substring(0,2)+setUsrLoc: gcon.lastname+setUsrLoc,
Email = gcon.Email,
EmailEncodingKey = 'UTF-8',
LastName = gcon.Lastname,
FirstName = gcon.Firstname,
MiddleName = gcon.Middlename,
LanguageLocaleKey = 'en_US',
LocaleSidKey = 'en_US',
ProfileId = p.Id,
UserRoleId = groleid,
TimeZoneSidKey = 'America/New_York',
UserName = formatUsrName);
Insert(u);
System.debug(u.id);
UtilStaffPermSet.assgnPermissionSet(recId, u.Id);
System.resetPassword(u.Id, True);
}
}
=====================================================
Apex Test Class:
@isTest
public class NewUtilStaffProcessTest {
public static testMethod void InitialTest() {
/* Get Record Id Type */
Id conTypeId;
Id acctTypeId;
String formatUsrName;
String setUsrLoc;
conTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Contact'
AND Name = 'Utility Staffer'].Id;
Id acctsTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Account'
AND Name = 'Account Source'].Id;
Profile p = [SELECT Id FROM Profile WHERE Name='HAVNA City Public Utility Group'];
String groleId = [SELECT Id FROM UserRole WHERE Name = 'Utility Staff' LIMIT 1].Id;
Integer midsize;
//Create new State record; initialize required field(s), then insert
HAV_State_and_Country__c state = new HAV_State_and_Country__c();
state.Name = 'Oregon';
state.HAVNA_Letter_Code__c = 'OR';
state.Hav_Type__c = 'State';
Insert state;
//Create new Account record; initialize required field(s), then insert
Account acct = new Account(Name='Oregon Local 7');
acct.Hav_Locality__c = '90';
acct.Hav_Street__c = 'Local/Surveyor';
acct.RecordTypeId = AcctTypeId;
acct.HAVNA_State_and_Country_ID__c = state.id;
insert acct;
//Create new Contact record; initialize required field(s), then insert
Contact con = new Contact();
con.FirstName = 'Ralph';
con.LastName = 'Smith';
con.Middlename = 'Otis';
con.RecordTypeId = conTypeId;
con.email = 'rsmith8@verizon.com';
con.AccountId = acct.id;
//Insert Contact
Insert con ;
System.debug(con.id);
User thisUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()];
system.runAs(thisUser){
Test.startTest();
NewUtilStaffProcess.createUtlUser(con.id);
Test.stopTest();
system.debug('Done');
}
}
}
- Sharon Crenshaw
- November 26, 2020
- Like
- 0
Apex Test Class Error
I keep getting the following error while running my Apex Test Class. If I could please get assistance in resolving the problem I would appreciate it. I continue getting the following error:
System.DmlException: Insert failed. First exception on row 0; first error: STRING_TOO_LONG, Alias: data value too large: Sminull90 (max length=8): [Alias]
Below is my code:
Apex Class:
public class NewUtilStaffProcess {
@future
public static void createUtlUser(Id recid) {
Contact gcon = [SELECT Email, Lastname, Firstname, Middlename, AcctId
FROM Contact
WHERE Id = :recid];
Profile p = [SELECT Id FROM Profile WHERE Name='HAVNA City Public Utility Group'];
Id acctsTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Account'
AND Name = 'Account Source'].Id;
String groleId = [SELECT Id FROM UserRole WHERE Name = 'Utility Staff' LIMIT 1].Id;
String formatUsrName;
String setUsrLoc;
Account retAcct = [SELECT Id, HAVNA_Country__r.HAVNA_Letter_Code__c, Hav_Locality__c, Hav_Street__c
FROM Account
WHERE Id = :gcon.AcctId
AND recordTypeId = :acctsTypeId
LIMIT 1];
if (retAcct.Hav_Street__c == 'Local/Surveyor')
setUsrLoc = retAcct.HAVNA_Country__r.HAVNA_Letter_Code__c+retAcct.Hav_Locality__c;
if (retAcct.Hav_Street__c == 'City/Surveyor')
setUsrLoc = retAcct.HAVNA_Country__r.HAVNA_Letter_Code__c+'C1';
if (retAcct.Hav_Street__c == 'State/Surveyor')
setUsrLoc = retAcct.HAVNA_Country__r.HAVNA_Letter_Code__c+'C2';
if (gcon.middlename == null) {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
Integer midSize = gcon.Middlename.length();
if (midSize == 1) {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.'+gcon.middlename.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.'+gcon.middlename.deleteWhitespace().trim().substring(0,1).toLowercase()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
}
}
System.debug('Formatted Username: '+formatUsrName);
User u = new User(Alias = gcon.Lastname.deleteWhitespace().trim().length() > 4 ? gcon.Lastname.deleteWhitespace().trim().substring(0,3)+setUsrLoc: gcon.lastname+setUsrLoc,
Email = gcon.Email,
EmailEncodingKey = 'UTF-8',
LastName = gcon.Lastname,
FirstName = gcon.Firstname,
MiddleName = gcon.Middlename,
LanguageLocaleKey = 'en_US',
LocaleSidKey = 'en_US',
ProfileId = p.Id,
UserRoleId = groleid,
TimeZoneSidKey = 'America/New_York',
UserName = formatUsrName);
Insert(u);
System.debug(u.id);
UtilStaffPermSet.assgnPermissionSet(recId, u.Id);
System.resetPassword(u.Id, True);
}
}
Apex Test Class:
@isTest
public class NewUtilStaffProcessTest {
public static testMethod void InitialTest() {
/* Get Record Id Type */
Id conTypeId;
Id acctTypeId;
String formatUsrName;
String setUsrLoc;
conTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Contact'
AND Name = 'Utility Staffer'].Id;
Id acctsTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Account'
AND Name = 'Account Source'].Id;
Profile p = [SELECT Id FROM Profile WHERE Name='HAVNA City Public Utility Group'];
String groleId = [SELECT Id FROM UserRole WHERE Name = 'Utility Staff' LIMIT 1].Id;
Integer midsize;
//Create new State record; initialize required field(s), then insert
HAV_State_and_Country__c state = new HAV_State_and_Country__c();
state.Name = 'Oregon';
state.HAV_Letter_Code__c = 'OR';
state.HAV_Type__c = 'State';
Insert state;
//Create new Account record; initialize required field(s), then insert
Account acct = new Account(Name='Oregon Local 7');
acct.Hav_Locality__c = '90';
acct.Hav_Street__c = 'Local/Surveyor';
acct.RecordTypeId = AcctTypeId;
acct.HAV__Country__c = state.id;
insert acct;
//Create new Contact record; initialize required field(s), then insert
Contact con = new Contact();
con.FirstName = 'Ralph';
con.LastName = 'Smith';
con.Middlename = 'Otis';
con.RecordTypeId = conTypeId;
con.email = 'rsmith8@verizon.com';
con.AcctId = acct.id;
//Insert Contact
Insert con ;
System.debug(con.id);
Account retAcct = [SELECT Id, HAV_Country__r.HAV_Letter_Code__c, Hav_Locality__c, Hav_Street__c
FROM Account
WHERE Id = :con.AcctId
AND recordTypeId = :nomsTypeId
LIMIT 1];
if (retAcct.Hav_Street__c == 'Local/Surveyor')
setUsrLoc = retAcct.HAV_Country__r.HAV_Letter_Code__c+retAcct.Hav_Locality__c;
if (con.middlename == null) {
System.debug('3: '+setUsrLoc);
formatUsrName = con.Lastname.deleteWhitespace().toLowercase().trim()+'.'+con.Firstname.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
System.debug('4: '+setUsrLoc);
midSize = con.Middlename.length();
if (midSize == 1) {
System.debug('5: '+setUsrLoc);
formatUsrName = con.Lastname.deleteWhitespace().toLowercase().trim()+'.'+con.Firstname.deleteWhitespace().toLowercase().trim()+'.'+con.middlename.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
System.debug('6: '+setUsrLoc);
formatUsrName = con.Lastname.deleteWhitespace().toLowercase().trim()+'.'+con.Firstname.deleteWhitespace().toLowercase().trim()+'.'+con.middlename.deleteWhitespace().trim().substring(0,1).toLowercase()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
}
}
User thisUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()];
system.runAs(thisUser){
User u = new User(Alias = con.LastName.deleteWhitespace().trim().length() > 4 ? con.LastName.deleteWhitespace().trim().substring(0,4)+setUsrLoc: con.LastName+setUsrLoc,
Email = con.email,
EmailEncodingKey = 'UTF-8',
LastName = con.LastName,
FirstName = con.Firstname,
MiddleName = con.Middlename,
LanguageLocaleKey = 'en_US',
LocaleSidKey = 'en_US',
ProfileId = p.Id,
UserRoleId = groleid,
TimeZoneSidKey = 'America/New_York',
UserName = formatUsrName);
Insert(u);
System.debug(u.id);
Test.startTest();
NewUtilStaffProcess.createUtlUser(con.id);
Test.stopTest();
system.debug('Done');
}
}
}
Thanks.
System.DmlException: Insert failed. First exception on row 0; first error: STRING_TOO_LONG, Alias: data value too large: Sminull90 (max length=8): [Alias]
Below is my code:
Apex Class:
public class NewUtilStaffProcess {
@future
public static void createUtlUser(Id recid) {
Contact gcon = [SELECT Email, Lastname, Firstname, Middlename, AcctId
FROM Contact
WHERE Id = :recid];
Profile p = [SELECT Id FROM Profile WHERE Name='HAVNA City Public Utility Group'];
Id acctsTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Account'
AND Name = 'Account Source'].Id;
String groleId = [SELECT Id FROM UserRole WHERE Name = 'Utility Staff' LIMIT 1].Id;
String formatUsrName;
String setUsrLoc;
Account retAcct = [SELECT Id, HAVNA_Country__r.HAVNA_Letter_Code__c, Hav_Locality__c, Hav_Street__c
FROM Account
WHERE Id = :gcon.AcctId
AND recordTypeId = :acctsTypeId
LIMIT 1];
if (retAcct.Hav_Street__c == 'Local/Surveyor')
setUsrLoc = retAcct.HAVNA_Country__r.HAVNA_Letter_Code__c+retAcct.Hav_Locality__c;
if (retAcct.Hav_Street__c == 'City/Surveyor')
setUsrLoc = retAcct.HAVNA_Country__r.HAVNA_Letter_Code__c+'C1';
if (retAcct.Hav_Street__c == 'State/Surveyor')
setUsrLoc = retAcct.HAVNA_Country__r.HAVNA_Letter_Code__c+'C2';
if (gcon.middlename == null) {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
Integer midSize = gcon.Middlename.length();
if (midSize == 1) {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.'+gcon.middlename.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.'+gcon.middlename.deleteWhitespace().trim().substring(0,1).toLowercase()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
}
}
System.debug('Formatted Username: '+formatUsrName);
User u = new User(Alias = gcon.Lastname.deleteWhitespace().trim().length() > 4 ? gcon.Lastname.deleteWhitespace().trim().substring(0,3)+setUsrLoc: gcon.lastname+setUsrLoc,
Email = gcon.Email,
EmailEncodingKey = 'UTF-8',
LastName = gcon.Lastname,
FirstName = gcon.Firstname,
MiddleName = gcon.Middlename,
LanguageLocaleKey = 'en_US',
LocaleSidKey = 'en_US',
ProfileId = p.Id,
UserRoleId = groleid,
TimeZoneSidKey = 'America/New_York',
UserName = formatUsrName);
Insert(u);
System.debug(u.id);
UtilStaffPermSet.assgnPermissionSet(recId, u.Id);
System.resetPassword(u.Id, True);
}
}
Apex Test Class:
@isTest
public class NewUtilStaffProcessTest {
public static testMethod void InitialTest() {
/* Get Record Id Type */
Id conTypeId;
Id acctTypeId;
String formatUsrName;
String setUsrLoc;
conTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Contact'
AND Name = 'Utility Staffer'].Id;
Id acctsTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Account'
AND Name = 'Account Source'].Id;
Profile p = [SELECT Id FROM Profile WHERE Name='HAVNA City Public Utility Group'];
String groleId = [SELECT Id FROM UserRole WHERE Name = 'Utility Staff' LIMIT 1].Id;
Integer midsize;
//Create new State record; initialize required field(s), then insert
HAV_State_and_Country__c state = new HAV_State_and_Country__c();
state.Name = 'Oregon';
state.HAV_Letter_Code__c = 'OR';
state.HAV_Type__c = 'State';
Insert state;
//Create new Account record; initialize required field(s), then insert
Account acct = new Account(Name='Oregon Local 7');
acct.Hav_Locality__c = '90';
acct.Hav_Street__c = 'Local/Surveyor';
acct.RecordTypeId = AcctTypeId;
acct.HAV__Country__c = state.id;
insert acct;
//Create new Contact record; initialize required field(s), then insert
Contact con = new Contact();
con.FirstName = 'Ralph';
con.LastName = 'Smith';
con.Middlename = 'Otis';
con.RecordTypeId = conTypeId;
con.email = 'rsmith8@verizon.com';
con.AcctId = acct.id;
//Insert Contact
Insert con ;
System.debug(con.id);
Account retAcct = [SELECT Id, HAV_Country__r.HAV_Letter_Code__c, Hav_Locality__c, Hav_Street__c
FROM Account
WHERE Id = :con.AcctId
AND recordTypeId = :nomsTypeId
LIMIT 1];
if (retAcct.Hav_Street__c == 'Local/Surveyor')
setUsrLoc = retAcct.HAV_Country__r.HAV_Letter_Code__c+retAcct.Hav_Locality__c;
if (con.middlename == null) {
System.debug('3: '+setUsrLoc);
formatUsrName = con.Lastname.deleteWhitespace().toLowercase().trim()+'.'+con.Firstname.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
System.debug('4: '+setUsrLoc);
midSize = con.Middlename.length();
if (midSize == 1) {
System.debug('5: '+setUsrLoc);
formatUsrName = con.Lastname.deleteWhitespace().toLowercase().trim()+'.'+con.Firstname.deleteWhitespace().toLowercase().trim()+'.'+con.middlename.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
System.debug('6: '+setUsrLoc);
formatUsrName = con.Lastname.deleteWhitespace().toLowercase().trim()+'.'+con.Firstname.deleteWhitespace().toLowercase().trim()+'.'+con.middlename.deleteWhitespace().trim().substring(0,1).toLowercase()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
}
}
User thisUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()];
system.runAs(thisUser){
User u = new User(Alias = con.LastName.deleteWhitespace().trim().length() > 4 ? con.LastName.deleteWhitespace().trim().substring(0,4)+setUsrLoc: con.LastName+setUsrLoc,
Email = con.email,
EmailEncodingKey = 'UTF-8',
LastName = con.LastName,
FirstName = con.Firstname,
MiddleName = con.Middlename,
LanguageLocaleKey = 'en_US',
LocaleSidKey = 'en_US',
ProfileId = p.Id,
UserRoleId = groleid,
TimeZoneSidKey = 'America/New_York',
UserName = formatUsrName);
Insert(u);
System.debug(u.id);
Test.startTest();
NewUtilStaffProcess.createUtlUser(con.id);
Test.stopTest();
system.debug('Done');
}
}
}
Thanks.
- Sharon Crenshaw
- November 25, 2020
- Like
- 1
Apex Test Class Error
I keep getting the following error while running my Apex Test Class. If I could please get assistance in resolving the problem I would appreciate it. I continue getting the following error:
System.DmlException: Insert failed. First exception on row 0; first error: STRING_TOO_LONG, Alias: data value too large: Sminull90 (max length=8): [Alias]
Below is my code:
Apex Class:
public class NewUtilStaffProcess {
@future
public static void createUtlUser(Id recid) {
Contact gcon = [SELECT Email, Lastname, Firstname, Middlename, AcctId
FROM Contact
WHERE Id = :recid];
Profile p = [SELECT Id FROM Profile WHERE Name='HAVNA City Public Utility Group'];
Id acctsTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Account'
AND Name = 'Account Source'].Id;
String groleId = [SELECT Id FROM UserRole WHERE Name = 'Utility Staff' LIMIT 1].Id;
String formatUsrName;
String setUsrLoc;
Account retAcct = [SELECT Id, HAVNA_Country__r.HAVNA_Letter_Code__c, Hav_Locality__c, Hav_Street__c
FROM Account
WHERE Id = :gcon.AcctId
AND recordTypeId = :acctsTypeId
LIMIT 1];
if (retAcct.Hav_Street__c == 'Local/Surveyor')
setUsrLoc = retAcct.HAVNA_Country__r.HAVNA_Letter_Code__c+retAcct.Hav_Locality__c;
if (retAcct.Hav_Street__c == 'City/Surveyor')
setUsrLoc = retAcct.HAVNA_Country__r.HAVNA_Letter_Code__c+'C1';
if (retAcct.Hav_Street__c == 'State/Surveyor')
setUsrLoc = retAcct.HAVNA_Country__r.HAVNA_Letter_Code__c+'C2';
if (gcon.middlename == null) {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
Integer midSize = gcon.Middlename.length();
if (midSize == 1) {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.'+gcon.middlename.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.'+gcon.middlename.deleteWhitespace().trim().substring(0,1).toLowercase()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
}
}
System.debug('Formatted Username: '+formatUsrName);
User u = new User(Alias = gcon.Lastname.deleteWhitespace().trim().length() > 4 ? gcon.Lastname.deleteWhitespace().trim().substring(0,3)+setUsrLoc: gcon.lastname+setUsrLoc,
Email = gcon.Email,
EmailEncodingKey = 'UTF-8',
LastName = gcon.Lastname,
FirstName = gcon.Firstname,
MiddleName = gcon.Middlename,
LanguageLocaleKey = 'en_US',
LocaleSidKey = 'en_US',
ProfileId = p.Id,
UserRoleId = groleid,
TimeZoneSidKey = 'America/New_York',
UserName = formatUsrName);
Insert(u);
System.debug(u.id);
UtilStaffPermSet.assgnPermissionSet(recId, u.Id);
System.resetPassword(u.Id, True);
}
}
Apex Test Class:
@isTest
public class NewUtilStaffProcessTest {
public static testMethod void InitialTest() {
/* Get Record Id Type */
Id conTypeId;
Id acctTypeId;
String formatUsrName;
String setUsrLoc;
conTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Contact'
AND Name = 'Utility Staffer'].Id;
Id acctsTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Account'
AND Name = 'Account Source'].Id;
Profile p = [SELECT Id FROM Profile WHERE Name='HAVNA City Public Utility Group'];
String groleId = [SELECT Id FROM UserRole WHERE Name = 'Utility Staff' LIMIT 1].Id;
Integer midsize;
//Create new State record; initialize required field(s), then insert
HAV_State_and_Country__c state = new HAV_State_and_Country__c();
state.Name = 'Oregon';
state.HAV_Letter_Code__c = 'OR';
state.HAV_Type__c = 'State';
Insert state;
//Create new Account record; initialize required field(s), then insert
Account acct = new Account(Name='Oregon Local 7');
acct.Hav_Locality__c = '90';
acct.Hav_Street__c = 'Local/Surveyor';
acct.RecordTypeId = AcctTypeId;
acct.HAV__Country__c = state.id;
insert acct;
//Create new Contact record; initialize required field(s), then insert
Contact con = new Contact();
con.FirstName = 'Ralph';
con.LastName = 'Smith';
con.Middlename = 'Otis';
con.RecordTypeId = conTypeId;
con.email = 'rsmith8@verizon.com';
con.AcctId = acct.id;
//Insert Contact
Insert con ;
System.debug(con.id);
Account retAcct = [SELECT Id, HAV_Country__r.HAV_Letter_Code__c, Hav_Locality__c, Hav_Street__c
FROM Account
WHERE Id = :con.AcctId
AND recordTypeId = :nomsTypeId
LIMIT 1];
if (retAcct.Hav_Street__c == 'Local/Surveyor')
setUsrLoc = retAcct.HAV_Country__r.HAV_Letter_Code__c+retAcct.Hav_Locality__c;
if (con.middlename == null) {
System.debug('3: '+setUsrLoc);
formatUsrName = con.Lastname.deleteWhitespace().toLowercase().trim()+'.'+con.Firstname.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
System.debug('4: '+setUsrLoc);
midSize = con.Middlename.length();
if (midSize == 1) {
System.debug('5: '+setUsrLoc);
formatUsrName = con.Lastname.deleteWhitespace().toLowercase().trim()+'.'+con.Firstname.deleteWhitespace().toLowercase().trim()+'.'+con.middlename.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
System.debug('6: '+setUsrLoc);
formatUsrName = con.Lastname.deleteWhitespace().toLowercase().trim()+'.'+con.Firstname.deleteWhitespace().toLowercase().trim()+'.'+con.middlename.deleteWhitespace().trim().substring(0,1).toLowercase()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
}
}
User thisUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()];
system.runAs(thisUser){
User u = new User(Alias = con.LastName.deleteWhitespace().trim().length() > 4 ? con.LastName.deleteWhitespace().trim().substring(0,4)+setUsrLoc: con.LastName+setUsrLoc,
Email = con.email,
EmailEncodingKey = 'UTF-8',
LastName = con.LastName,
FirstName = con.Firstname,
MiddleName = con.Middlename,
LanguageLocaleKey = 'en_US',
LocaleSidKey = 'en_US',
ProfileId = p.Id,
UserRoleId = groleid,
TimeZoneSidKey = 'America/New_York',
UserName = formatUsrName);
Insert(u);
System.debug(u.id);
Test.startTest();
NewUtilStaffProcess.createUtlUser(con.id);
Test.stopTest();
system.debug('Done');
}
}
}
Thanks.
System.DmlException: Insert failed. First exception on row 0; first error: STRING_TOO_LONG, Alias: data value too large: Sminull90 (max length=8): [Alias]
Below is my code:
Apex Class:
public class NewUtilStaffProcess {
@future
public static void createUtlUser(Id recid) {
Contact gcon = [SELECT Email, Lastname, Firstname, Middlename, AcctId
FROM Contact
WHERE Id = :recid];
Profile p = [SELECT Id FROM Profile WHERE Name='HAVNA City Public Utility Group'];
Id acctsTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Account'
AND Name = 'Account Source'].Id;
String groleId = [SELECT Id FROM UserRole WHERE Name = 'Utility Staff' LIMIT 1].Id;
String formatUsrName;
String setUsrLoc;
Account retAcct = [SELECT Id, HAVNA_Country__r.HAVNA_Letter_Code__c, Hav_Locality__c, Hav_Street__c
FROM Account
WHERE Id = :gcon.AcctId
AND recordTypeId = :acctsTypeId
LIMIT 1];
if (retAcct.Hav_Street__c == 'Local/Surveyor')
setUsrLoc = retAcct.HAVNA_Country__r.HAVNA_Letter_Code__c+retAcct.Hav_Locality__c;
if (retAcct.Hav_Street__c == 'City/Surveyor')
setUsrLoc = retAcct.HAVNA_Country__r.HAVNA_Letter_Code__c+'C1';
if (retAcct.Hav_Street__c == 'State/Surveyor')
setUsrLoc = retAcct.HAVNA_Country__r.HAVNA_Letter_Code__c+'C2';
if (gcon.middlename == null) {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
Integer midSize = gcon.Middlename.length();
if (midSize == 1) {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.'+gcon.middlename.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.'+gcon.middlename.deleteWhitespace().trim().substring(0,1).toLowercase()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
}
}
System.debug('Formatted Username: '+formatUsrName);
User u = new User(Alias = gcon.Lastname.deleteWhitespace().trim().length() > 4 ? gcon.Lastname.deleteWhitespace().trim().substring(0,3)+setUsrLoc: gcon.lastname+setUsrLoc,
Email = gcon.Email,
EmailEncodingKey = 'UTF-8',
LastName = gcon.Lastname,
FirstName = gcon.Firstname,
MiddleName = gcon.Middlename,
LanguageLocaleKey = 'en_US',
LocaleSidKey = 'en_US',
ProfileId = p.Id,
UserRoleId = groleid,
TimeZoneSidKey = 'America/New_York',
UserName = formatUsrName);
Insert(u);
System.debug(u.id);
UtilStaffPermSet.assgnPermissionSet(recId, u.Id);
System.resetPassword(u.Id, True);
}
}
Apex Test Class:
@isTest
public class NewUtilStaffProcessTest {
public static testMethod void InitialTest() {
/* Get Record Id Type */
Id conTypeId;
Id acctTypeId;
String formatUsrName;
String setUsrLoc;
conTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Contact'
AND Name = 'Utility Staffer'].Id;
Id acctsTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Account'
AND Name = 'Account Source'].Id;
Profile p = [SELECT Id FROM Profile WHERE Name='HAVNA City Public Utility Group'];
String groleId = [SELECT Id FROM UserRole WHERE Name = 'Utility Staff' LIMIT 1].Id;
Integer midsize;
//Create new State record; initialize required field(s), then insert
HAV_State_and_Country__c state = new HAV_State_and_Country__c();
state.Name = 'Oregon';
state.HAV_Letter_Code__c = 'OR';
state.HAV_Type__c = 'State';
Insert state;
//Create new Account record; initialize required field(s), then insert
Account acct = new Account(Name='Oregon Local 7');
acct.Hav_Locality__c = '90';
acct.Hav_Street__c = 'Local/Surveyor';
acct.RecordTypeId = AcctTypeId;
acct.HAV__Country__c = state.id;
insert acct;
//Create new Contact record; initialize required field(s), then insert
Contact con = new Contact();
con.FirstName = 'Ralph';
con.LastName = 'Smith';
con.Middlename = 'Otis';
con.RecordTypeId = conTypeId;
con.email = 'rsmith8@verizon.com';
con.AcctId = acct.id;
//Insert Contact
Insert con ;
System.debug(con.id);
Account retAcct = [SELECT Id, HAV_Country__r.HAV_Letter_Code__c, Hav_Locality__c, Hav_Street__c
FROM Account
WHERE Id = :con.AcctId
AND recordTypeId = :nomsTypeId
LIMIT 1];
if (retAcct.Hav_Street__c == 'Local/Surveyor')
setUsrLoc = retAcct.HAV_Country__r.HAV_Letter_Code__c+retAcct.Hav_Locality__c;
if (con.middlename == null) {
System.debug('3: '+setUsrLoc);
formatUsrName = con.Lastname.deleteWhitespace().toLowercase().trim()+'.'+con.Firstname.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
System.debug('4: '+setUsrLoc);
midSize = con.Middlename.length();
if (midSize == 1) {
System.debug('5: '+setUsrLoc);
formatUsrName = con.Lastname.deleteWhitespace().toLowercase().trim()+'.'+con.Firstname.deleteWhitespace().toLowercase().trim()+'.'+con.middlename.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
System.debug('6: '+setUsrLoc);
formatUsrName = con.Lastname.deleteWhitespace().toLowercase().trim()+'.'+con.Firstname.deleteWhitespace().toLowercase().trim()+'.'+con.middlename.deleteWhitespace().trim().substring(0,1).toLowercase()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
}
}
User thisUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()];
system.runAs(thisUser){
User u = new User(Alias = con.LastName.deleteWhitespace().trim().length() > 4 ? con.LastName.deleteWhitespace().trim().substring(0,4)+setUsrLoc: con.LastName+setUsrLoc,
Email = con.email,
EmailEncodingKey = 'UTF-8',
LastName = con.LastName,
FirstName = con.Firstname,
MiddleName = con.Middlename,
LanguageLocaleKey = 'en_US',
LocaleSidKey = 'en_US',
ProfileId = p.Id,
UserRoleId = groleid,
TimeZoneSidKey = 'America/New_York',
UserName = formatUsrName);
Insert(u);
System.debug(u.id);
Test.startTest();
NewUtilStaffProcess.createUtlUser(con.id);
Test.stopTest();
system.debug('Done');
}
}
}
Thanks.
- Sharon Crenshaw
- November 25, 2020
- Like
- 1
Apex Test Class Variable Setting
I am getting a null, for the variable, setUsrCat after a call to the Apex Class. SetUsrCat should not be Sminull90. I was hoping to get SmOR90. My Apex class does it correctly, but when I run the test class I get the null problem.
I have tried a number of things in the test class, but the null remains. I am assuming there is something in the test class that needs to be set that is not. If you can please help me in this matter it will be appreciated.
My code is as follows:
Apex Class:
public class NewUtilStaffProcess {
@future
public static void createUtlUser(Id recid) {
Contact gcon = [SELECT Email, Lastname, Firstname, Middlename, AccountId
FROM Contact
WHERE Id = :recid];
Profile p = [SELECT Id FROM Profile WHERE Name='HAVNA City Public Utility Group'];
Id acctsTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Account'
AND Name = 'Account Source'].Id;
String groleId = [SELECT Id FROM UserRole WHERE Name = 'Utility Staff' LIMIT 1].Id;
String formatUsrName;
String setUsrLoc;
Account retAcct = [SELECT Id, HAVNA_State_Country_State__r.HAVNA_Letter_Code__c, Hav_Locality__c, Hav_Street__c
FROM Account
WHERE Id = :gcon.AccountId
AND recordTypeId = :acctsTypeId
LIMIT 1];
if (retAcct.Hav_Street__c == 'Local/Surveyor')
setUsrLoc = retAcct.HAVNA_State_and_Country_ID__r.HAVNA_Letter_Code__c+retAcct.Hav_Locality__c;
if (retAcct.Hav_Street__c == 'City/Surveyor')
setUsrLoc = retAcct.HAVNA_State_and_Country_ID__r.HAVNA_Letter_Code__c+'C1';
if (retAcct.Hav_Street__c == 'State/Surveyor')
setUsrLoc = retAcct.HAVNA_State_and_Country_ID__r.HAVNA_Letter_Code__c+'C2';
if (gcon.middlename == null) {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
Integer midSize = gcon.Middlename.length();
if (midSize == 1) {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.'+gcon.middlename.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.'+gcon.middlename.deleteWhitespace().trim().substring(0,1).toLowercase()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
}
}
System.debug('Formatted Username: '+formatUsrName);
User u = new User(Alias = gcon.Lastname.deleteWhitespace().trim().length() > 4 ? gcon.Lastname.deleteWhitespace().trim().substring(0,2)+setUsrLoc: gcon.lastname+setUsrLoc,
Email = gcon.Email,
EmailEncodingKey = 'UTF-8',
LastName = gcon.Lastname,
FirstName = gcon.Firstname,
MiddleName = gcon.Middlename,
LanguageLocaleKey = 'en_US',
LocaleSidKey = 'en_US',
ProfileId = p.Id,
UserRoleId = groleid,
TimeZoneSidKey = 'America/New_York',
UserName = formatUsrName);
Insert(u);
System.debug(u.id);
UtilStaffPermSet.assgnPermissionSet(recId, u.Id);
System.resetPassword(u.Id, True);
}
}
=====================================================
Apex Test Class:
@isTest
public class NewUtilStaffProcessTest {
public static testMethod void InitialTest() {
/* Get Record Id Type */
Id conTypeId;
Id acctTypeId;
String formatUsrName;
String setUsrLoc;
conTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Contact'
AND Name = 'Utility Staffer'].Id;
Id acctsTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Account'
AND Name = 'Account Source'].Id;
Profile p = [SELECT Id FROM Profile WHERE Name='HAVNA City Public Utility Group'];
String groleId = [SELECT Id FROM UserRole WHERE Name = 'Utility Staff' LIMIT 1].Id;
Integer midsize;
//Create new State record; initialize required field(s), then insert
HAV_State_and_Country__c state = new HAV_State_and_Country__c();
state.Name = 'Oregon';
state.HAVNA_Letter_Code__c = 'OR';
state.Hav_Type__c = 'State';
Insert state;
//Create new Account record; initialize required field(s), then insert
Account acct = new Account(Name='Oregon Local 7');
acct.Hav_Locality__c = '90';
acct.Hav_Street__c = 'Local/Surveyor';
acct.RecordTypeId = AcctTypeId;
acct.HAVNA_State_and_Country_ID__c = state.id;
insert acct;
//Create new Contact record; initialize required field(s), then insert
Contact con = new Contact();
con.FirstName = 'Ralph';
con.LastName = 'Smith';
con.Middlename = 'Otis';
con.RecordTypeId = conTypeId;
con.email = 'rsmith8@verizon.com';
con.AccountId = acct.id;
//Insert Contact
Insert con ;
System.debug(con.id);
User thisUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()];
system.runAs(thisUser){
Test.startTest();
NewUtilStaffProcess.createUtlUser(con.id);
Test.stopTest();
system.debug('Done');
}
}
}
I have tried a number of things in the test class, but the null remains. I am assuming there is something in the test class that needs to be set that is not. If you can please help me in this matter it will be appreciated.
My code is as follows:
Apex Class:
public class NewUtilStaffProcess {
@future
public static void createUtlUser(Id recid) {
Contact gcon = [SELECT Email, Lastname, Firstname, Middlename, AccountId
FROM Contact
WHERE Id = :recid];
Profile p = [SELECT Id FROM Profile WHERE Name='HAVNA City Public Utility Group'];
Id acctsTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Account'
AND Name = 'Account Source'].Id;
String groleId = [SELECT Id FROM UserRole WHERE Name = 'Utility Staff' LIMIT 1].Id;
String formatUsrName;
String setUsrLoc;
Account retAcct = [SELECT Id, HAVNA_State_Country_State__r.HAVNA_Letter_Code__c, Hav_Locality__c, Hav_Street__c
FROM Account
WHERE Id = :gcon.AccountId
AND recordTypeId = :acctsTypeId
LIMIT 1];
if (retAcct.Hav_Street__c == 'Local/Surveyor')
setUsrLoc = retAcct.HAVNA_State_and_Country_ID__r.HAVNA_Letter_Code__c+retAcct.Hav_Locality__c;
if (retAcct.Hav_Street__c == 'City/Surveyor')
setUsrLoc = retAcct.HAVNA_State_and_Country_ID__r.HAVNA_Letter_Code__c+'C1';
if (retAcct.Hav_Street__c == 'State/Surveyor')
setUsrLoc = retAcct.HAVNA_State_and_Country_ID__r.HAVNA_Letter_Code__c+'C2';
if (gcon.middlename == null) {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
Integer midSize = gcon.Middlename.length();
if (midSize == 1) {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.'+gcon.middlename.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.'+gcon.middlename.deleteWhitespace().trim().substring(0,1).toLowercase()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
}
}
System.debug('Formatted Username: '+formatUsrName);
User u = new User(Alias = gcon.Lastname.deleteWhitespace().trim().length() > 4 ? gcon.Lastname.deleteWhitespace().trim().substring(0,2)+setUsrLoc: gcon.lastname+setUsrLoc,
Email = gcon.Email,
EmailEncodingKey = 'UTF-8',
LastName = gcon.Lastname,
FirstName = gcon.Firstname,
MiddleName = gcon.Middlename,
LanguageLocaleKey = 'en_US',
LocaleSidKey = 'en_US',
ProfileId = p.Id,
UserRoleId = groleid,
TimeZoneSidKey = 'America/New_York',
UserName = formatUsrName);
Insert(u);
System.debug(u.id);
UtilStaffPermSet.assgnPermissionSet(recId, u.Id);
System.resetPassword(u.Id, True);
}
}
=====================================================
Apex Test Class:
@isTest
public class NewUtilStaffProcessTest {
public static testMethod void InitialTest() {
/* Get Record Id Type */
Id conTypeId;
Id acctTypeId;
String formatUsrName;
String setUsrLoc;
conTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Contact'
AND Name = 'Utility Staffer'].Id;
Id acctsTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Account'
AND Name = 'Account Source'].Id;
Profile p = [SELECT Id FROM Profile WHERE Name='HAVNA City Public Utility Group'];
String groleId = [SELECT Id FROM UserRole WHERE Name = 'Utility Staff' LIMIT 1].Id;
Integer midsize;
//Create new State record; initialize required field(s), then insert
HAV_State_and_Country__c state = new HAV_State_and_Country__c();
state.Name = 'Oregon';
state.HAVNA_Letter_Code__c = 'OR';
state.Hav_Type__c = 'State';
Insert state;
//Create new Account record; initialize required field(s), then insert
Account acct = new Account(Name='Oregon Local 7');
acct.Hav_Locality__c = '90';
acct.Hav_Street__c = 'Local/Surveyor';
acct.RecordTypeId = AcctTypeId;
acct.HAVNA_State_and_Country_ID__c = state.id;
insert acct;
//Create new Contact record; initialize required field(s), then insert
Contact con = new Contact();
con.FirstName = 'Ralph';
con.LastName = 'Smith';
con.Middlename = 'Otis';
con.RecordTypeId = conTypeId;
con.email = 'rsmith8@verizon.com';
con.AccountId = acct.id;
//Insert Contact
Insert con ;
System.debug(con.id);
User thisUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()];
system.runAs(thisUser){
Test.startTest();
NewUtilStaffProcess.createUtlUser(con.id);
Test.stopTest();
system.debug('Done');
}
}
}
- Sharon Crenshaw
- November 26, 2020
- Like
- 0
Apex Test Class Error
I keep getting the following error while running my Apex Test Class. If I could please get assistance in resolving the problem I would appreciate it. I continue getting the following error:
System.DmlException: Insert failed. First exception on row 0; first error: STRING_TOO_LONG, Alias: data value too large: Sminull90 (max length=8): [Alias]
Below is my code:
Apex Class:
public class NewUtilStaffProcess {
@future
public static void createUtlUser(Id recid) {
Contact gcon = [SELECT Email, Lastname, Firstname, Middlename, AcctId
FROM Contact
WHERE Id = :recid];
Profile p = [SELECT Id FROM Profile WHERE Name='HAVNA City Public Utility Group'];
Id acctsTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Account'
AND Name = 'Account Source'].Id;
String groleId = [SELECT Id FROM UserRole WHERE Name = 'Utility Staff' LIMIT 1].Id;
String formatUsrName;
String setUsrLoc;
Account retAcct = [SELECT Id, HAVNA_Country__r.HAVNA_Letter_Code__c, Hav_Locality__c, Hav_Street__c
FROM Account
WHERE Id = :gcon.AcctId
AND recordTypeId = :acctsTypeId
LIMIT 1];
if (retAcct.Hav_Street__c == 'Local/Surveyor')
setUsrLoc = retAcct.HAVNA_Country__r.HAVNA_Letter_Code__c+retAcct.Hav_Locality__c;
if (retAcct.Hav_Street__c == 'City/Surveyor')
setUsrLoc = retAcct.HAVNA_Country__r.HAVNA_Letter_Code__c+'C1';
if (retAcct.Hav_Street__c == 'State/Surveyor')
setUsrLoc = retAcct.HAVNA_Country__r.HAVNA_Letter_Code__c+'C2';
if (gcon.middlename == null) {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
Integer midSize = gcon.Middlename.length();
if (midSize == 1) {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.'+gcon.middlename.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.'+gcon.middlename.deleteWhitespace().trim().substring(0,1).toLowercase()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
}
}
System.debug('Formatted Username: '+formatUsrName);
User u = new User(Alias = gcon.Lastname.deleteWhitespace().trim().length() > 4 ? gcon.Lastname.deleteWhitespace().trim().substring(0,3)+setUsrLoc: gcon.lastname+setUsrLoc,
Email = gcon.Email,
EmailEncodingKey = 'UTF-8',
LastName = gcon.Lastname,
FirstName = gcon.Firstname,
MiddleName = gcon.Middlename,
LanguageLocaleKey = 'en_US',
LocaleSidKey = 'en_US',
ProfileId = p.Id,
UserRoleId = groleid,
TimeZoneSidKey = 'America/New_York',
UserName = formatUsrName);
Insert(u);
System.debug(u.id);
UtilStaffPermSet.assgnPermissionSet(recId, u.Id);
System.resetPassword(u.Id, True);
}
}
Apex Test Class:
@isTest
public class NewUtilStaffProcessTest {
public static testMethod void InitialTest() {
/* Get Record Id Type */
Id conTypeId;
Id acctTypeId;
String formatUsrName;
String setUsrLoc;
conTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Contact'
AND Name = 'Utility Staffer'].Id;
Id acctsTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Account'
AND Name = 'Account Source'].Id;
Profile p = [SELECT Id FROM Profile WHERE Name='HAVNA City Public Utility Group'];
String groleId = [SELECT Id FROM UserRole WHERE Name = 'Utility Staff' LIMIT 1].Id;
Integer midsize;
//Create new State record; initialize required field(s), then insert
HAV_State_and_Country__c state = new HAV_State_and_Country__c();
state.Name = 'Oregon';
state.HAV_Letter_Code__c = 'OR';
state.HAV_Type__c = 'State';
Insert state;
//Create new Account record; initialize required field(s), then insert
Account acct = new Account(Name='Oregon Local 7');
acct.Hav_Locality__c = '90';
acct.Hav_Street__c = 'Local/Surveyor';
acct.RecordTypeId = AcctTypeId;
acct.HAV__Country__c = state.id;
insert acct;
//Create new Contact record; initialize required field(s), then insert
Contact con = new Contact();
con.FirstName = 'Ralph';
con.LastName = 'Smith';
con.Middlename = 'Otis';
con.RecordTypeId = conTypeId;
con.email = 'rsmith8@verizon.com';
con.AcctId = acct.id;
//Insert Contact
Insert con ;
System.debug(con.id);
Account retAcct = [SELECT Id, HAV_Country__r.HAV_Letter_Code__c, Hav_Locality__c, Hav_Street__c
FROM Account
WHERE Id = :con.AcctId
AND recordTypeId = :nomsTypeId
LIMIT 1];
if (retAcct.Hav_Street__c == 'Local/Surveyor')
setUsrLoc = retAcct.HAV_Country__r.HAV_Letter_Code__c+retAcct.Hav_Locality__c;
if (con.middlename == null) {
System.debug('3: '+setUsrLoc);
formatUsrName = con.Lastname.deleteWhitespace().toLowercase().trim()+'.'+con.Firstname.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
System.debug('4: '+setUsrLoc);
midSize = con.Middlename.length();
if (midSize == 1) {
System.debug('5: '+setUsrLoc);
formatUsrName = con.Lastname.deleteWhitespace().toLowercase().trim()+'.'+con.Firstname.deleteWhitespace().toLowercase().trim()+'.'+con.middlename.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
System.debug('6: '+setUsrLoc);
formatUsrName = con.Lastname.deleteWhitespace().toLowercase().trim()+'.'+con.Firstname.deleteWhitespace().toLowercase().trim()+'.'+con.middlename.deleteWhitespace().trim().substring(0,1).toLowercase()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
}
}
User thisUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()];
system.runAs(thisUser){
User u = new User(Alias = con.LastName.deleteWhitespace().trim().length() > 4 ? con.LastName.deleteWhitespace().trim().substring(0,4)+setUsrLoc: con.LastName+setUsrLoc,
Email = con.email,
EmailEncodingKey = 'UTF-8',
LastName = con.LastName,
FirstName = con.Firstname,
MiddleName = con.Middlename,
LanguageLocaleKey = 'en_US',
LocaleSidKey = 'en_US',
ProfileId = p.Id,
UserRoleId = groleid,
TimeZoneSidKey = 'America/New_York',
UserName = formatUsrName);
Insert(u);
System.debug(u.id);
Test.startTest();
NewUtilStaffProcess.createUtlUser(con.id);
Test.stopTest();
system.debug('Done');
}
}
}
Thanks.
System.DmlException: Insert failed. First exception on row 0; first error: STRING_TOO_LONG, Alias: data value too large: Sminull90 (max length=8): [Alias]
Below is my code:
Apex Class:
public class NewUtilStaffProcess {
@future
public static void createUtlUser(Id recid) {
Contact gcon = [SELECT Email, Lastname, Firstname, Middlename, AcctId
FROM Contact
WHERE Id = :recid];
Profile p = [SELECT Id FROM Profile WHERE Name='HAVNA City Public Utility Group'];
Id acctsTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Account'
AND Name = 'Account Source'].Id;
String groleId = [SELECT Id FROM UserRole WHERE Name = 'Utility Staff' LIMIT 1].Id;
String formatUsrName;
String setUsrLoc;
Account retAcct = [SELECT Id, HAVNA_Country__r.HAVNA_Letter_Code__c, Hav_Locality__c, Hav_Street__c
FROM Account
WHERE Id = :gcon.AcctId
AND recordTypeId = :acctsTypeId
LIMIT 1];
if (retAcct.Hav_Street__c == 'Local/Surveyor')
setUsrLoc = retAcct.HAVNA_Country__r.HAVNA_Letter_Code__c+retAcct.Hav_Locality__c;
if (retAcct.Hav_Street__c == 'City/Surveyor')
setUsrLoc = retAcct.HAVNA_Country__r.HAVNA_Letter_Code__c+'C1';
if (retAcct.Hav_Street__c == 'State/Surveyor')
setUsrLoc = retAcct.HAVNA_Country__r.HAVNA_Letter_Code__c+'C2';
if (gcon.middlename == null) {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
Integer midSize = gcon.Middlename.length();
if (midSize == 1) {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.'+gcon.middlename.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
formatUsrName = gcon.Lastname.deleteWhitespace().toLowercase().trim()+'.'+gcon.Firstname.deleteWhitespace().toLowercase().trim()+'.'+gcon.middlename.deleteWhitespace().trim().substring(0,1).toLowercase()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
}
}
System.debug('Formatted Username: '+formatUsrName);
User u = new User(Alias = gcon.Lastname.deleteWhitespace().trim().length() > 4 ? gcon.Lastname.deleteWhitespace().trim().substring(0,3)+setUsrLoc: gcon.lastname+setUsrLoc,
Email = gcon.Email,
EmailEncodingKey = 'UTF-8',
LastName = gcon.Lastname,
FirstName = gcon.Firstname,
MiddleName = gcon.Middlename,
LanguageLocaleKey = 'en_US',
LocaleSidKey = 'en_US',
ProfileId = p.Id,
UserRoleId = groleid,
TimeZoneSidKey = 'America/New_York',
UserName = formatUsrName);
Insert(u);
System.debug(u.id);
UtilStaffPermSet.assgnPermissionSet(recId, u.Id);
System.resetPassword(u.Id, True);
}
}
Apex Test Class:
@isTest
public class NewUtilStaffProcessTest {
public static testMethod void InitialTest() {
/* Get Record Id Type */
Id conTypeId;
Id acctTypeId;
String formatUsrName;
String setUsrLoc;
conTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Contact'
AND Name = 'Utility Staffer'].Id;
Id acctsTypeId = [SELECT Id
FROM RecordType
WHERE SObjectType = 'Account'
AND Name = 'Account Source'].Id;
Profile p = [SELECT Id FROM Profile WHERE Name='HAVNA City Public Utility Group'];
String groleId = [SELECT Id FROM UserRole WHERE Name = 'Utility Staff' LIMIT 1].Id;
Integer midsize;
//Create new State record; initialize required field(s), then insert
HAV_State_and_Country__c state = new HAV_State_and_Country__c();
state.Name = 'Oregon';
state.HAV_Letter_Code__c = 'OR';
state.HAV_Type__c = 'State';
Insert state;
//Create new Account record; initialize required field(s), then insert
Account acct = new Account(Name='Oregon Local 7');
acct.Hav_Locality__c = '90';
acct.Hav_Street__c = 'Local/Surveyor';
acct.RecordTypeId = AcctTypeId;
acct.HAV__Country__c = state.id;
insert acct;
//Create new Contact record; initialize required field(s), then insert
Contact con = new Contact();
con.FirstName = 'Ralph';
con.LastName = 'Smith';
con.Middlename = 'Otis';
con.RecordTypeId = conTypeId;
con.email = 'rsmith8@verizon.com';
con.AcctId = acct.id;
//Insert Contact
Insert con ;
System.debug(con.id);
Account retAcct = [SELECT Id, HAV_Country__r.HAV_Letter_Code__c, Hav_Locality__c, Hav_Street__c
FROM Account
WHERE Id = :con.AcctId
AND recordTypeId = :nomsTypeId
LIMIT 1];
if (retAcct.Hav_Street__c == 'Local/Surveyor')
setUsrLoc = retAcct.HAV_Country__r.HAV_Letter_Code__c+retAcct.Hav_Locality__c;
if (con.middlename == null) {
System.debug('3: '+setUsrLoc);
formatUsrName = con.Lastname.deleteWhitespace().toLowercase().trim()+'.'+con.Firstname.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
System.debug('4: '+setUsrLoc);
midSize = con.Middlename.length();
if (midSize == 1) {
System.debug('5: '+setUsrLoc);
formatUsrName = con.Lastname.deleteWhitespace().toLowercase().trim()+'.'+con.Firstname.deleteWhitespace().toLowercase().trim()+'.'+con.middlename.deleteWhitespace().toLowercase().trim()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
} else {
System.debug('6: '+setUsrLoc);
formatUsrName = con.Lastname.deleteWhitespace().toLowercase().trim()+'.'+con.Firstname.deleteWhitespace().toLowercase().trim()+'.'+con.middlename.deleteWhitespace().trim().substring(0,1).toLowercase()+'.cnastaff'+setUsrLoc+'@HAVNA.gmail';
}
}
User thisUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()];
system.runAs(thisUser){
User u = new User(Alias = con.LastName.deleteWhitespace().trim().length() > 4 ? con.LastName.deleteWhitespace().trim().substring(0,4)+setUsrLoc: con.LastName+setUsrLoc,
Email = con.email,
EmailEncodingKey = 'UTF-8',
LastName = con.LastName,
FirstName = con.Firstname,
MiddleName = con.Middlename,
LanguageLocaleKey = 'en_US',
LocaleSidKey = 'en_US',
ProfileId = p.Id,
UserRoleId = groleid,
TimeZoneSidKey = 'America/New_York',
UserName = formatUsrName);
Insert(u);
System.debug(u.id);
Test.startTest();
NewUtilStaffProcess.createUtlUser(con.id);
Test.stopTest();
system.debug('Done');
}
}
}
Thanks.
- Sharon Crenshaw
- November 25, 2020
- Like
- 1