public with sharing class AccountService { private static final String DEFAULT_TYPE = 'Customer'; public interface Notifiable { void notify(String message); } public enum AccountStatus { ACTIVE, INACTIVE, PENDING } @AuraEnabled public static List getAccounts(String accountType) { return [SELECT Id, Name, Type FROM Account WHERE Type = :accountType]; } @future public static void updateAccountsAsync(List accountIds) { List accounts = [SELECT Id FROM Account WHERE Id IN :accountIds]; for (Account acc : accounts) { acc.Type = DEFAULT_TYPE; } update accounts; } @InvocableMethod(label='Create Account' description='Creates a new Account') public static List createAccounts(List names) { List toInsert = new List(); for (String n : names) { toInsert.add(new Account(Name = n)); } insert toInsert; List ids = new List(); for (Account a : toInsert) { ids.add(a.Id); } return ids; } public static void deleteOldAccounts(Date cutoff) { List old = [SELECT Id FROM Account WHERE CreatedDate < :cutoff]; delete old; } @isTest static void testGetAccounts() { List result = getAccounts('Customer'); System.assertNotEquals(null, result); } @isTest static void testCreateAccounts() { List ids = createAccounts(new List{'Test'}); System.assertEquals(1, ids.size()); } }