Maintain Your Platform Developer I Certification for Winter ’23
1. Field update actions have changed in API Version 54.0. Which record-triggered flows do field update actions now execute?
Answer: Before-Save after After-Save
2. Which Apex class is used to determine the hostnames for the domains that Salesforce hosts for your org?
Answer: System.DomainCreator
3. Which modules can be used for notifications in a Lightning web component instead of native APIs?
Answer: LightningAlert, LightningConfirm, and LightningPrompt
4. What determines an org’s “shape” in Salesforce?
Answer: Features, settings, edition, limits, and licenses
5. Which lightning-modal-* component is required to create a modal?
Answer: Body
6. How do you call an invocable action from Apex code?
Answer: Reference Invocable.Action
Get Hands-On With Apex Assertions
1. Create Two Apex class: Copy and Paste below codes
(A.) TestFactory
@isTest
public class TestFactory {
public static Account getAccount(String accountName, Boolean doInsert) {
Account account = new Account(Name = accountName);
if (doInsert) {
insert account;
}
return account;
}
public static Contact getContact(Id accountId, String firstName, String lastName, Boolean doInsert){
Contact contact = new Contact(
FirstName = firstName,
LastName = lastName,
AccountId = accountId
);
if (doInsert) {
insert contact;
}
return contact;
}
public static void generateAccountWithContacts(Integer numContacts) {
Account account = getAccount('default account ltd', true);
List<Contact> contacts = new List<Contact>();
for (Integer i = 0; i < numContacts; i++) {
String firstName = 'Contact';
String lastName = 'Test' + i;
contacts.add(getContact(account.Id, firstName, lastName, false));
}
insert contacts;
}
public static Opportunity[] generateOppsForAccount(ID accountId, Decimal amount, Integer numOpps){
List<Opportunity> oppsForAccounts = new List<Opportunity>();
for (Integer i = 0; i < numOpps; i++) {
Opportunity opp = new Opportunity(
Name = 'Account ' + i,
AccountId = accountId,
Amount = amount,
CloseDate = Date.today().addDays(5),
StageName = 'Prospecting'
);
oppsForAccounts.add(opp);
}
return oppsForAccounts;
}
public static User generateUser(String profileName) {
UserRole userRole = new UserRole(
DeveloperName = 'TestingTeam',
Name = 'Testing Team'
);
insert userRole;
String uniqueEmail = 'Cpt.Awesome' + DateTime.now().getTime() + '@th.example.com';
User userForInsert = new User(
ProfileId = [SELECT Id FROM Profile WHERE Name = :profileName].Id,
LastName = 'lastName',
Email = uniqueEmail,
Username = uniqueEmail,
CompanyName = 'Testing Co',
Title = 'Captain',
Alias = 'alias',
TimeZoneSidKey = 'America/Los_Angeles',
EmailEncodingKey = 'UTF-8',
LanguageLocaleKey = 'en_US',
LocaleSidKey = 'en_US',
UserRoleId = userRole.Id
);
insert userForInsert;
return userForInsert;
}
}
(B) Class Name: DataGenerationTest
@isTest
private class DataGenerationTest {
@testSetup
static void dataCreation() {
Account account = TestFactory.getAccount('Muddy Waters Inc.', true);
Contact contact = TestFactory.getContact(account.Id, 'Muddy', 'Waters', true);
Opportunity opp = New Opportunity();
opp.Name = 'Long lost record';
opp.AccountId = account.Id;
opp.CloseDate = Date.today().addDays(14);
opp.StageName = 'Prospecting';
insert opp;
}
@isTest
static void testBruteForceAccountCreation() {
List<Account> accts = new List<Account>();
Test.startTest();
accts = [SELECT Id FROM Account];
Test.stopTest();
Assert.areNotEqual(accts.size(), 0,'Was expecting to find at least one account created on the Test Setup');
}
@isTest
static void testUseTestFactoryToCreateAccountsWithContacts() {
List<Account> accts;
List<Contact> contacts;
TestFactory.generateAccountWithContacts(5);
Test.startTest();
accts = [SELECT Id FROM Account];
contacts = [SELECT Id FROM Contact];
Test.stopTest();
Assert.isNotNull(accts, 'Was expecting to find at least one account created');
Assert.areEqual(contacts.size(), 6, 'Was expecting to find 6 contacts');
Assert.areNotEqual(accts.size(), contacts.size(), 'Was expecting there to be a different number of account and contacts');
}
@isTest
static void testAtTestSetupMethodsRule() {
List<Opportunity> opps = [SELECT Id, AccountId FROM Opportunity];
Assert.areEqual(1, opps.size(), 'Expected test to find a single Opp');
}
}
Note: Challenge will not looking for Test class pass/fail.
Comments
Post a Comment