Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This pull request introduces enhancements to the
Mocker
andAssertionBuilder
classes, adding new functionalities for method stubbing and assertion in the Apex testing framework. The most important changes include the addition of theAssertionBuilder
class, modifications to theMocker
class to support more detailed stubbing and assertion, and updates to theUnitOfWorkTest
class to reflect these changes.New Features:
src/apex/utils/classes/UnitOfWork.cls
: Move dmlhandler and key generation responsibility to the transaction itself. Allows for different dmlhandlers for unique transactions and also gives the possibility to add transactions to one another.src/apex/utils/classes/AssertionBuilder.cls
: Introduced theAssertionBuilder
class to facilitate the creation of method call assertions with various configurations, such as argument-specific assertions and call count assertions.src/apex/utils/classes/Mocker.cls
: Added support for argument-specific method stubbing and assertion, including new methods likestub
,assertMethodCalled
, and updated theMockRegistry
to handle argument-specific keys. [1] [2] [3] [4] [5] [6] [7] [8]Updates to Existing Code:
src/apex/utils/classes/tests/UnitOfWorkTest.cls
: Adjusted test cases to utilize the newMocker
andAssertionBuilder
functionalities, ensuring compatibility with the updated mocking and assertion mechanisms. [1] [2] [3]