Skip to main content

Platform Developer I Certification Maintenance (Winter '23)

 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
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 =,
               StageName = 'Prospecting'
       return oppsForAccounts;
   public static User generateUser(String profileName) {
       UserRole userRole = new UserRole(
           DeveloperName = 'TestingTeam',
           Name = 'Testing Team'
       insert userRole;
       String uniqueEmail = 'Cpt.Awesome' + + '';
       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

private class DataGenerationTest {
  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 =;
      opp.StageName = 'Prospecting';
      insert opp;
  static void testBruteForceAccountCreation() {
      List<Account> accts = new List<Account>();
          accts = [SELECT Id FROM Account];
      Assert.areNotEqual(accts.size(), 0,'Was expecting to find at least one account created on the Test Setup');
  static void testUseTestFactoryToCreateAccountsWithContacts() {
      List<Account> accts;
      List<Contact> contacts;
          accts = [SELECT Id FROM Account];
          contacts = [SELECT Id FROM Contact];
      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');
  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.


Popular posts from this blog

Administrator Certification Maintenance (Spring '23)

 Maintain Your Administrator Certification for Spring '23 1. What information is listed in the Details panel for recently used reports? Answer: A, B, C 2. What is used to give sales reps access to a guided process to import contacts and leads? Answer:  Sample CSV file 3. Which feature efficiently removes inactive picklist values? Answer: Bulk Delete Unused Values 4. Which type of Process Builder processes can be converted using the Migrate to Flow tool? Answer: Record-triggered Get Hands-on with Enhance Record Pages With Dynamic Forms Follow steps show in Screenshot also highlighted with Red Box:

Custom Table In LWC

I'm assuming you've Basic understanding of Lightning Web Component, I'll be explaining you the syntax that will be generic. HTML: < template > <!-- Header Part -->      < lightning-card   title = "Custom Data table in Lightning Web Components" >          < div   class = "slds-grid slds-gutters" >              < div   class = "slds-col" >                  < span ></ span >              </ div >              < div   class = "slds-col" >                  < span > <!--A Button For extra feature-->                      < lightning-button   label = "Show Selected Contacts"   onclick = {showContacts}   style = "margin-left: 40%"   variant = "brand" > </ lightning-button >                  </ span >              </ div >          </ div >< br />