-
Notifications
You must be signed in to change notification settings - Fork 0
The MockDuplicates Class
This class extends the Duplicates class, and simulates duplicate detection operations in @IsTest context when the framework is configured to use mocks.
The framework automatically uses a MockDuplicates instance for duplicate detection operations whenever DatabaseLayer.Duplicates is called after DatabaseLayer.useMocks() or DatabaseLayer.useMockDuplicates() is called.
Unlike Duplicates, MockDuplicates does not interact with actual Salesforce duplicate rules. It simulates duplicate detection results by default with no duplicates found, though it's possible to configure specific duplicate matches, errors, and field differences.
For examples of using MockDuplicates in tests, see Mocking Duplicate Rules.
| Property Name | Data Type | Details |
|---|---|---|
| simulator | MockDuplicates.Simulator | The current simulator instance controlling duplicate detection behavior. Access this property to configure or verify which simulator is configured in tests. |
All MockDuplicates methods inherit from its parent Duplicates class, documented here. However, these methods do not interact with actual duplicate rules.
Sets a custom simulator to control duplicate detection behavior in tests.
static MockDuplicates.Simulator setMock(MockDuplicates.Simulator simulator)static MockDuplicates.BaseSimulator setMock()
DatabaseLayer.useMocks();
// Initialize with the default BaseSimulator
MockDuplicates.BaseSimulator simulator = MockDuplicates.setMock();
// Configure duplicate results
simulator.withResults(Account.SObjectType)
.addRule()
.addMatch()
.addRecord();DatabaseLayer.useMocks();
// Use a custom simulator implementation
CustomDuplicateSimulator customSim = new CustomDuplicateSimulator();
MockDuplicates.setMock(customSim);- Mocking Duplicate Rules - Guide for using MockDuplicates in tests
- MockDuplicates.BaseSimulator - The default simulator implementation
- MockDuplicates.Simulator - Interface for custom simulator implementations
- Generating Test Records
- Dml
- Soql
- Cmdt
- Duplicates
- Plugins
- DatabaseLayer
- Dml
- MockDml
- MockRecord
- Cmdt
- MockCmdt
- Duplicates
- MockDuplicates
- MockSoql
-
Soql
- Soql.AggregateResult
- Soql.Aggregation
- Soql.Binder
- Soql.Builder
- Soql.Condition
- Soql.ConditionalLogic
- Soql.Criteria
- Soql.Cursor
- Soql.Function
- Soql.InnerQuery
- Soql.InvalidParameterValueException
- Soql.LogicType
- Soql.NullOrder
- Soql.Operation
- Soql.Operator
- Soql.ParentField
- Soql.PreAndPostProcessor
- Soql.QueryLocator
- Soql.Request
- Soql.Scope
- Soql.Selectable
- Soql.SortDirection
- Soql.SortOrder
- Soql.Subquery
- Soql.TypeOf
- Soql.Usage
- Soql.WhenClause