[LINK] Understanding System Events In Lightning Components – Part 1
- orignal source * :
- Understanding System Events In Lightning Components – Part 1
- Understanding System Events In Lightning Components – Part 2
original source: Mutual Fund Explorer: A New Lightning Components Sample Application
Related Github repo: sfdx-dreaminvest
The code is an improvement of this article.
<apex:page controller="AddmultipleAccountsController">
<apex:form>
<apex:pageBlock title="Add multiple account" id="main_block">
<apex:pageBlockTable value="{!listAccount}" var="acc">
<apex:column headerValue="Account Name">
<apex:inputField value="{!acc.Name}"/>
</apex:column>
<apex:column headerValue="Account Type">
<apex:inputField value="{!acc.Type}"/>
</apex:column>
<apex:column headerValue="Industry">
<apex:inputField value="{!acc.Industry}"/>
</apex:column>
<!-- you can add more column here -->
</apex:pageBlockTable>
<apex:pageBlockButtons>
<apex:commandButton value="Add 1 Account Row" action="{!addAccount}" reRender="main_block"/>
<apex:commandButton value="Add 5 Account Rows" action="{!addAccounts}" reRender="main_block" />
<apex:commandButton value="Save Accounts" action="{!saveAccounts}" />
</apex:pageBlockButtons>
</apex:pageBlock>
</apex:form>
</apex:page>
<apex:page sidebar="false" showHeader="true">
<center>
<h3> Congrats your accounts have been successfully saved! </h3>
</center>
</apex:page>
public with sharing class AddmultipleAccountsController {
public list<Account> listAccount{get;set;}
public AddmultipleAccountsController() {
listAccount = new list<Account>();
listAccount.add(new Account());
}
//add one account at a time
public void addAccount() {
listAccount.add(new Account());
}
//add five account at a time
public void addAccounts() {
for(Integer j=0; j < 5; j++) {
listAccount.add(new Account());
}
}
public PageReference saveAccounts() {
try {
insert listAccount;
} catch(System.DmlException e) {
for(Integer i=0; i < e.getNumDml(); i++) {
System.debug(e.getDmlMessage(i));
}
}
return Page.AllAccountsSaved;
}
}
@isTest
private class AddmultipleAccountsControllerTest {
static testMethod void testAddAccount() {
Test.startTest();
AddmultipleAccountsController aacontroller = new AddmultipleAccountsController();
aacontroller.addAccount();
list<Account> listAccount = aacontroller.listAccount;
Test.stopTest();
system.assert(listAccount.size() == 2);
}
static testMethod void testAddAccounts() {
Test.startTest();
AddmultipleAccountsController aacontroller = new AddmultipleAccountsController();
aacontroller.addAccounts();
list<Account> listAccount = aacontroller.listAccount;
Test.stopTest();
system.assert(listAccount.size() == 6);
}
static testMethod void testSaveAccounts() {
Test.startTest();
AddmultipleAccountsController aacontroller = new AddmultipleAccountsController();
aacontroller.listAccount[0].Name = 'lushang test account';
aacontroller.saveAccounts();
Test.stopTest();
Account[] acc = [SELECT id,name from Account where name = 'lushang test account'];
system.assert(acc.size() == 1);
}
}