Я новичок, пытающийся создать тестовый класс для обработчика регистрации, который позволяет создавать новых пользователей без болтовни для организации. Чтобы создать пользователя без болтовни, рабочий триггер проверяет домен электронной почты нового пользователя по предварительно определенному списку допустимых доменов электронной почты, который хранится в пользовательском объекте с именем DomainList.
Ищу предложения о том, как лучше структурировать тестовый класс для покрытия кода. Любые идеи приветствуются, спасибо!
global class RegHandlerDomain implements Auth.RegistrationHandler {
global User createUser(Id portalId, Auth.UserData data) {
String domain = data.email.split('@')[1];
List<DomainList__c> listedDomains = [SELECT id,
name
FROM DomainList__c
WHERE Email_Domain__c = : domain];
if (listedDomains.size() == 1) {
User u = new User();
Profile p = [SELECT Id
FROM profile WHERE name = 'Chatter Free User'];
// Use incoming email for username
u.username = data.email;
u.email = data.email;
u.lastName = data.lastName;
u.firstName = data.firstName;
u.alias = (data.username != null) ? data.username : data.identifier;
if (u.alias.length() > 8) {
u.alias = u.alias.substring(0, 8);
}
u.languagelocalekey = UserInfo.getLocale();
u.localesidkey = UserInfo.getLocale();
u.emailEncodingKey = 'UTF-8';
u.timeZoneSidKey = 'America/Los_Angeles';
u.profileId = p.Id;
System.debug('Returning new user record for ' + data.username);
return u;
} else return null;
}
global void updateUser(Id userId, Id portalId, Auth.UserData data) {
User u = new User(id = userId);
u.email = data.email;
u.lastName = data.lastName;
u.firstName = data.firstName;
System.debug('Updating user record for ' + data.username);
update(u);
}
}
Тестовый класс ищет '}' перед вставкой
@isTest(SeeAllData = true)
public class RegHandlerTest {
public void myTestMethod1() {
//CREATE CHATTER FREE TEST USER
Profile p = [select id
from profile where name = 'Chatter Free User'];
User u1 = new User(alias = 'chfree01',
email = '[email protected]',
emailencodingkey = 'UTF-8',
lastname = 'Testing',
companyname = 'testorg',
languagelocalekey = 'en_US',
localesidkey = 'en_US',
profileId = p.Id,
timezonesidkey = 'America/Los_Angeles',
username = '[email protected]');
insert u1;
}
//CHECK NEW USER EMAIL DOMAIN TO SEE IF IN CUSTOM OBJECT DOMAINLIST
List<DomainList__c> listedDomains = [select id, email_domain__c
from DomainList__c
where name = 'testorg' LIMIT 1];
if (listedDomains.size() == 1) System.debug('WORKS');
}