feat: implement apex test parser and add coverage percentage

This commit is contained in:
Ross Reicks 2024-07-11 13:02:16 -05:00
parent c4f7701aa1
commit 0f142e1e2a
15 changed files with 6278 additions and 18 deletions

View file

@ -0,0 +1,791 @@
![Tests failed](https://img.shields.io/badge/tests-735%20passed%2C%201%20failed-critical)
|Report|Passed|Failed|Skipped|Time|Coverage|
|:---|---:|---:|---:|---:|---:|
|fixtures/apex-json.json|735 ✅|1 ❌||26s|85%|
## ❌ <a id="user-content-r0" href="#r0">fixtures/apex-json.json</a>
**736** tests were completed in **26s** with **735** passed, **1** failed and **0** skipped.
|Test suite|Passed|Failed|Skipped|Time|Coverage|
|:---|---:|---:|---:|---:|---:|
|[Apex Tests](#r0s0)|735 ✅|1 ❌||26s|85%|
### ❌ <a id="user-content-r0s0" href="#r0s0">Apex Tests</a>
```
fflib_SecurityUtilsTest
❌ testSetup
Validation Errors While Saving Record(s)
✅ readonly_field_access
✅ readonly_objectAndField_access
✅ readonly_object_access
✅ sysadmin_objectAndField_access
fflib_StringBuilderTest
✅ testCommaDelimitedBuilder1
✅ testCommaDelimitedBuilder2
✅ testCommanDelimitedBuilderWithAlternativeDelimiter
✅ testCommanDelimitedBuilderWithAlternativeDelimiterAndPrefix
✅ testCommanDelimitedBuilderWithItemPrefix
✅ testFieldListBuilder
✅ testMultiCurrencyFieldListBuilder
✅ testfflib_StringBuilder1
✅ testfflib_StringBuilder2
fflib_ApplicationTest
✅ callingDomainFactoryShouldGiveRegisteredImplsAndMocks
✅ callingDomainFactoryWithContructorClassThatDoesNotSupportIConstructableShouldGiveException
✅ callingDomainFactoryWithGenericListShouldGiveException
✅ callingDomainFactoryWithIdsShouldGiveRegisteredImpls
✅ callingDomainFactoryWithInAccessableConstructorShouldGiveException
✅ callingDomainFactoryWithNoSObjectTypeShouldGiveException
✅ callingMockedUnitOfWorkWithCustomDML
✅ callingMockedUnitOfWorkWithCustomObjectTypesAndDML
✅ callingSelectorFactorySelectByIdWithEmptyListShouldGiveException
✅ callingSelectorFactorySelectByIdWithMixedIdTypeListShouldGiveException
✅ callingSelectorFactoryShouldGiveRegisteredImpls
✅ callingSelectoryFactorySelectByIdShouldReturnResults
✅ callingSelectoryFactorySselectByRelationshipPassRelatedIds
✅ callingServiceFactoryShouldGiveRegisteredImplsAndMockImpls
✅ callingUnitOfWorkFactoryShouldGivenStandardImplsAndMockImpls
✅ callingUnitOfWorkFactoryWithCustomTypesShouldGivenStandardImplsAndMockImpls
✅ callingUnitOfWorkWithCustomDML
✅ callingUnitOfWorkWithCustomObjectTypesAndDML
fflib_SObjectDomainTest
✅ itShouldReturnTheChangedRecordsBySObjectFields
✅ itShouldReturnTheChangedRecordsByStringFields
✅ testDisableTriggerEventsBehaviour
✅ testErrorLogging
✅ testGetChangedFieldsAsStrings
✅ testInsertValidationFailedWithoutDML
✅ testObjectSecurity
✅ testOnAfterUndeleteWithoutDML
✅ testOnBeforeDeleteWithoutDML
✅ testOnValidateBehaviorDefault
✅ testOnValidateBehaviorOld
✅ testRecursiveTriggerState
✅ testTriggerState
✅ testUpdateValidationFailedWithoutDML
✅ testValidationWithoutDML
fflib_SObjectSelectorTest
✅ testSetup
✅ testAddQueryFactorySubselect
✅ testAddQueryFactorySubselect2
✅ testAssertIsAccessible
✅ testCRUDOff
✅ testConfigureQueryFactoryFields
✅ testDefaultConfig
✅ testGetFieldListString
✅ testGetRelatedFieldListString
✅ testGetSObjectName
✅ testQueryLocatorById
✅ testSOQL
✅ testSOQL_defaultSorting
✅ testSelectSObjectsById
✅ testWithOrderingNullsLast
✅ testWithoutSorting
✅ toSOQL_When_PolymorphicSelectInMulticurrency_Expect_RelatedType
✅ toSOQL_When_PolymorphicSelect_Expect_RelatedType
✅ toSOQL_When_SystemModeAndChildRelationship_Expect_WellFormedSOQL
✅ toSOQL_When_SystemModeAndParentRelationshipAndDuplicateFields_Expect_WellFormedSOQL
✅ toSOQL_When_SystemModeAndUserCannnotReadField_Expect_Success
✅ toSOQL_When_SystemModeAndUserCannnotReadObject_Expect_Success
✅ toSOQL_When_SystemModePolymorphicSelect_Expect_RelatedType
✅ toSOQL_When_UserModeAndUserCannnotReadField_Expect_QueryException
✅ toSOQL_When_UserModeAndUserCannnotReadObject_Expect_QueryException
fflib_SObjectUnitOfWorkTest
✅ constructUserModeDML_When_AccessLevelSupplied_Expect_SameAccessLevel
✅ constructUserModeDML_When_DefaultConstructor_Expect_UserMode
✅ testAssertForEventSObjectType
✅ testAssertForEventSObjectType_ThrowExceptionOnNonEventObject
✅ testAssertForNonEventSObjectType
✅ testAssertForNonEventSObjectType_ThrowExceptionOnEventObject
✅ testAssertForSupportedSObjectType_throwExceptionOnUnsupportedType
✅ testDerivedUnitOfWork_CommitDMLFail
✅ testDerivedUnitOfWork_CommitDoWorkFail
✅ testDerivedUnitOfWork_CommitSuccess
✅ testRegisterDeleted
✅ testRegisterDirtyRecordsWithDirtyFields
✅ testRegisterDirtyRecordsWithDirtyFields_failing
✅ testRegisterDirty_ExpectReplacement
✅ testRegisterDirty_ThrowExceptionOnNewRecord
✅ testRegisterDirty_field
✅ testRegisterEmptyRecycleBin
✅ testRegisterNew_ThrowExceptionOnDirtyRecord
✅ testRegisterPermanentlyDeleted
✅ testRegisterUpsert
✅ testUnitOfWorkEmail
fflib_SObjectsTest
✅ itShouldClearTheField
✅ itShouldReturnFieldValues
✅ itShouldReturnRecordsIds
✅ itShouldReturnRecordsWithAllFieldValues
✅ itShouldReturnRecordsWithFieldValues
✅ itShouldReturnRecordsWithShippingCountry
✅ itShouldReturnRecordsWithoutAllFieldValues
✅ itShouldReturnRecordsWithoutFieldValues
✅ itShouldReturnTheDomainsType
✅ itShouldSetFieldValue
✅ itShouldSetFieldValueByCondition
✅ testDomainErrorLogging
✅ testErrorLogging
fflib_ObjectsTest
✅ itShouldContainAllTheObjects
✅ itShouldContainTheObject
✅ itShouldGetTheObjectType
✅ itShouldHaveAnEmptyDomain
✅ itShouldNotBeAnEmptyDomain
✅ itShouldNotContainTheObject
✅ itShouldNotContainTheObjects
✅ itShouldReturnTheCorrectType
fflib_QueryFactoryTest
✅ addChildQueriesWithChildRelationshipNoAccessibleCheck_fail
✅ addChildQueriesWithChildRelationshipNoAccessibleCheck_success
✅ addChildQueriesWithChildRelationshipObjCheckIsAccessible_success
✅ addChildQueriesWithChildRelationshipObj_success
✅ addChildQueriesWithChildRelationship_success
✅ addChildQueries_invalidChildRelationship
✅ addChildQueries_invalidChildRelationshipTooDeep
✅ addChildQueries_success
✅ addChildQuerySameRelationshipAgain_success
✅ checkFieldObjectReadSort_success
✅ checkFieldRead_fail
✅ checkObjectRead_fail
✅ deepCloneBasic
✅ deepCloneBasicNoChanges
✅ deepCloneSubquery
✅ deepCloneSubqueryNoChanges
✅ deterministic_toSOQL
✅ duplicateFieldSelection
✅ equalityCheck
✅ fieldSelections
✅ invalidCrossObjectField
✅ invalidFieldTests
✅ invalidField_nullToken
✅ invalidField_string
✅ invalidFields_noQueryField
✅ invalidFields_nullToken
✅ invalidFields_string
✅ nonReferenceField
✅ ordering
✅ queryFieldsNotEquals
✅ queryWith_noFields
✅ setOrdering_ReplacesPreviousOrderingsWithExpectedOrdering
✅ simpleFieldCondition
✅ simpleFieldSelection
✅ testSoql_allRows
✅ testSoql_unsortedSelectFields
fflib_SObjectDescribeTest
✅ FieldsMap
✅ GlobalDescribeMap
✅ NamespacedAttributeMap_implementations
✅ flushCache
✅ getAccountDescribes
✅ getDescribe_badInput
✅ rawGlobalDescribeCheck
✅ simpleAccountFieldDescribe
✅ simpleAccountFieldSetDescribe
✅ simpleAccountGetNameField
DomainProcessInjectionTest
✅ DomainProcessInjectionMethodTest
✅ accountInsertTwoCriteria
✅ accountUpdateTwoCriteria
✅ accountUpdateTwoCriteriaAsync
✅ verifyDomainProcessCoordinatorConstructorException
✅ verifyNewInstanceExceptionWithBadParams
✅ verifyNewInstanceExceptionWithNullParams
PlatformEventDistributorTest
✅ whenAT4DXImmediateMessagePublishedToEventBusTriggerHandlerProcessesEvent
✅ whenAT4DXMessagePublishedToEventBusTriggerHandlerProcessesEvent
✅ whenInvalidConsumerSuppliedExceptionThrown
✅ whenTriggerHandlerInvokedWithEventsWithoutCategoryOrEventNameFieldExceptionThrown
✅ whenTriggerHandlerInvokedWithMatchEventBus
✅ whenTriggerHandlerInvokedWithMatchEventBusAndCategory
✅ whenTriggerHandlerInvokedWithMatchEventBusAndCategoryAndEventName
✅ whenTriggerHandlerInvokedWithMatchEventBusAndEventName
✅ whenTriggerHandlerInvokedWithMatchEventBusWithAsynchronousSubscriber
fflib_QualifiedMethodTest
✅ equalsReturnsExpectedResults
✅ equalsReturnsExpectedResultsForHasDependentMocks
✅ hashCodeReturnsExpectedResults
✅ hashCodeReturnsExpectedResultsForHasDependentMocks
✅ toStringReturnsExpectedResult
di_PlatformCacheTest
✅ givenANewConfigSettingThenGetThatInstance
✅ givenCacheMapAddedThenGetKeys
✅ givenCachedBindingsClearThenGetEmpty
✅ givenDataInCachePartitionIsEnabledThenGetEmptyKeys
✅ givenDataInCachePartitionIsNotEnabledThenGetEmptyKeys
✅ givenDevNameAndSTypeThenGetHashAndKey
✅ givenInvalidDeveloperNameThenGetEmptyKeys
✅ givenInvalidSObjectTypeThenGetEmptyKeys
✅ givenKeyIndexNameThenGetKey
✅ givenLogMethodThenGetKeys
✅ givenNoDataInCachePartitionThenGetEmptyKeys
✅ givenNoPlatformCacheInstanceThenCreate
✅ givenPartitionNameSetThenGetNonNull
✅ givenPartitionTTLSetThenGetSeconds
✅ givenPlatformCacheConfigThenCreate
✅ givenReadOnlyAccessThenGetInstance
✅ givenStoringBindingIsTrueThenGet
✅ givenValidBindingThenAddBinding
✅ givenValidSTypeAndNameThenHash
✅ givenValidTSTypeAndNameThenHash
fflib_QualifiedMethodAndArgValuesTest
✅ equalsReturnsExpectedResults
ApplicationSObjectSelectorTest
✅ getSObjectFieldListTest
✅ selectionInjectionTest
ApplicationSObjectUnitOfWorkTest
✅ verifyApplicationSobjectUOWConstructorWithDML
✅ verifyGetDeletedRecordsByType
✅ verifyRegisterDirtyWithParentRecord
✅ verifyRegisterEmails
✅ verifyRegisterNewWithParentRecord
✅ verifyRegisterSingleRecordReturnDirtyRecordsByType
✅ verifyRegisterSingleRecordReturnsNewRecordsByType
✅ verifyRegisteredRecordListReturnDirtyRecordsByType
✅ verifyRegisteredRecordListReturnsNewRecordsByType
fflib_MethodArgValuesTest
✅ equalsReturnsExpectedResults
✅ hashCodeReturnsExpectedResults
fflib_MatcherDefinitionsTest
✅ constructDatetimeAfter_WithNullFromDatetime_ThrowsException
✅ constructDatetimeAfter_WithNullInclusive_ThrowsException
✅ constructDatetimeBefore_WithNullInclusive_ThrowsException
✅ constructDatetimeBefore_WithNullToDatetime_ThrowsException
✅ constructDatetimeBetween_WithNullFromDatetime_ThrowsException
✅ constructDatetimeBetween_WithNullInclusiveFrom_ThrowsException
✅ constructDatetimeBetween_WithNullInclusiveTo_ThrowsException
✅ constructDatetimeBetween_WithNullToDatetime_ThrowsException
✅ constructDecimalBetween_WithNullInclusiveLower_ThrowsException
✅ constructDecimalBetween_WithNullInclusiveUpper_ThrowsException
✅ constructDecimalBetween_WithNullLower_ThrowsException
✅ constructDecimalBetween_WithNullUpper_ThrowsException
✅ constructDecimalLessThan_WithNullInclusive_ThrowsException
✅ constructDecimalLessThan_WithNullToMatch_ThrowsException
✅ constructDecimalMoreThan_WithNullInclusive_ThrowsException
✅ constructDecimalMoreThan_WithNullToMatch_ThrowsException
✅ constructEq_WithNullArg_ThrowsException
✅ constructFieldSetEquivalentTo_WithNullFieldSet_ThrowsException
✅ constructRefEq_WithNullArg_ThrowsException
✅ constructSObjectOfType_WithNullArg_ThrowsException
✅ constructSObjectWithId_WithNullArg_ThrowsException
✅ constructSObjectWithName_WithNullArg_ThrowsException
✅ constructSObjectWith_WithEmptyArg_ThrowsException
✅ constructSObjectWith_WithNullArg_ThrowsException
✅ constructSObjectsWith_WithNullArg_ThrowsException
✅ constructStringContains_WithNullArg_ThrowsException
✅ constructStringEndsWith_WithNullArg_ThrowsException
✅ constructStringMatches_WithNullArg_ThrowsException
✅ constructStringStartsWith_WithNullArg_ThrowsException
✅ whenAnyBooleanMatchesShouldReturnCorrectResults
✅ whenAnyBooleanToStringReturnsExpectedString
✅ whenAnyDateMatchesShouldReturnCorrectResults
✅ whenAnyDateToStringReturnsExpectedString
✅ whenAnyDatetimeMatchesShouldReturnCorrectResults
✅ whenAnyDatetimeToStringReturnsExpectedString
✅ whenAnyDecimalMatchesShouldReturnCorrectResults
✅ whenAnyDecimalToStringReturnsExpectedString
✅ whenAnyDoubleMatchesShouldReturnCorrectResults
✅ whenAnyDoubleToStringReturnsExpectedString
✅ whenAnyFieldSetMatchesShouldReturnCorrectResults
✅ whenAnyFieldSetToStringReturnsExpectedString
✅ whenAnyIdMatchesShouldReturnCorrectResults
✅ whenAnyIdToStringReturnsExpectedString
✅ whenAnyIntegerMatchesShouldReturnCorrectResults
✅ whenAnyIntegerToStringReturnsExpectedString
✅ whenAnyListMatchesShouldReturnCorrectResults
✅ whenAnyListToStringReturnsExpectedString
✅ whenAnyLongMatchesShouldReturnCorrectResults
✅ whenAnyLongToStringReturnsExpectedString
✅ whenAnyObjectMatchesShouldReturnCorrectResults
✅ whenAnyObjectToStringReturnsExpectedString
✅ whenAnySObjectFieldMatchesShouldReturnCorrectResults
✅ whenAnySObjectFieldToStringReturnsExpectedString
✅ whenAnySObjectMatchesShouldReturnCorrectResults
✅ whenAnySObjectToStringReturnsExpectedString
✅ whenAnySObjectTypeMatchesShouldReturnCorrectResults
✅ whenAnySObjectTypeToStringReturnsExpectedString
✅ whenAnyStringMatchesShouldReturnCorrectResults
✅ whenAnyStringToStringReturnsExpectedString
✅ whenCombinedMatcherToStringReturnsExpectedString
✅ whenCombinedMatchesWithAllExpressionShouldReturnCorrectResults
✅ whenCombinedMatchesWithAtLeastOneExpressionShouldReturnCorrectResults
✅ whenCombinedMatchesWithNoneExpressionShouldReturnCorrectResults
✅ whenConstructingCombinedWithEmptyInternalMatchersShouldThrowException
✅ whenConstructingCombinedWithNullConnectiveExpressionShouldThrowException
✅ whenConstructingCombinedWithNullInternalMatchersShouldThrowException
✅ whenDatetimeAfterMatchesWithInclusiveShouldReturnCorrectResults
✅ whenDatetimeAfterMatchesWithoutInclusiveShouldReturnCorrectResults
✅ whenDatetimeAfterWithInclusiveToStringReturnsExpectedString
✅ whenDatetimeAfterWithNotInclusiveToStringReturnsExpectedString
✅ whenDatetimeBeforeMatchesWithInclusiveShouldReturnCorrectResults
✅ whenDatetimeBeforeMatchesWithoutInclusiveShouldReturnCorrectResults
✅ whenDatetimeBeforeWithInclusiveToStringReturnsExpectedString
✅ whenDatetimeBeforeWithNotInclusiveToStringReturnsExpectedString
✅ whenDatetimeBetweenMatchesWithInclusiveFromWithoutInclusiveToShouldReturnCorrectResults
✅ whenDatetimeBetweenMatchesWithInclusiveToWithoutInclusiveFromShouldReturnCorrectResults
✅ whenDatetimeBetweenWithInclusiveToStringReturnsExpectedString
✅ whenDatetimeBetweenWithNotInclusiveToStringReturnsExpectedString
✅ whenDecimalBetweenMatchesShouldReturnCorrectResults
✅ whenDecimalBetweenToStringReturnsExpectedString
✅ whenDecimalLessThanMatchesShouldReturnCorrectResults
✅ whenDecimalLessThanToStringReturnsExpectedString
✅ whenDecimalMoreThanMatchesShouldReturnCorrectResults
✅ whenDecimalMoreThanToStringReturnsExpectedString
✅ whenEqMatchesShouldReturnCorrectResults
✅ whenEqToStringShouldReturnExpectedString
✅ whenFieldSetEquivalentToMatchesShouldReturnCorrectResults
✅ whenFieldSetEquivalentToToStringReturnsExpectedString
✅ whenFieldSetEquivalentToWithoutFieldSetShouldNeverMatch
✅ whenIsBlankWithMatchesShouldReturnCorrectResults
✅ whenIsNotBlankWithMatchesShouldReturnCorrectResults
✅ whenIsNotNullMatchesShouldReturnCorrectResults
✅ whenIsNotNullToStringReturnsExpectedString
✅ whenIsNullMatchesShouldReturnCorrectResults
✅ whenIsNullToStringReturnsExpectedString
✅ whenJSONExceptionOccursStringifyShouldReturnsObjectToString
✅ whenListContainsMatchesShouldReturnCorrectResults
✅ whenListContainsToStringReturnsExpectedString
✅ whenListIsEmptyMatchesShouldReturnCorrectResults
✅ whenListIsEmptyToStringReturnsExpectedString
✅ whenRefEqMatchesShouldReturnCorrectResults
✅ whenRefEqToStringReturnsExpectedString
✅ whenSObjectOfTypeMatchesShouldReturnCorrectResults
✅ whenSObjectOfTypeToStringReturnsExpectedString
✅ whenSObjectWithIdMatchesShouldReturnCorrectResults
✅ whenSObjectWithIdToStringReturnsExpectedString
✅ whenSObjectWithMatchesShouldReturnCorrectResults
✅ whenSObjectWithNameMatchesShouldReturnCorrectResults
✅ whenSObjectWithNameToStringReturnsExpectedString
✅ whenSObjectWithToStringReturnsExpectedString
✅ whenSObjectsInAnyOrderWithMatchesShouldReturnCorrectResults
✅ whenSObjectsWithDifferentArityMatchesShouldReturnFalse
✅ whenSObjectsWithInOrderMatchesShouldReturnCorrectResults
✅ whenSObjectsWithToStringReturnsExpectedString
✅ whenStringContainsMatchesShouldReturnCorrectResults
✅ whenStringContainsToStringReturnsExpectedStrings
✅ whenStringEndsWithMatchesShouldReturnCorrectResults
✅ whenStringEndsWithToStringReturnsExpectedStrings
✅ whenStringIsBlankToStringReturnsExpectedStrings
✅ whenStringIsNotBlankToStringReturnsExpectedStrings
✅ whenStringMatchesMatchesShouldReturnCorrectResults
✅ whenStringMatchesToStringReturnsExpectedStrings
✅ whenStringStartsWithMatchesShouldReturnCorrectResults
✅ whenStringStartsWithToStringReturnsExpectedStrings
di_FlowTest
✅ givenNullInputWhenObjectCreatedThenSetInitialized
✅ givenStringValueWhenOutputThenStringAddedToSet
✅ givenVariableNameWhenRequiredThenValueAddedToSet
di_InjectorCMPFlowProxyControllerTest
✅ givenValueWhenGetInjectThenThrowException
di_InjectorComponentControllerTest
✅ givenApexPageComponentGetInjectorIsValid
✅ givenFlowNameWhenGetInjectorFlowProxyInstanceThenMethodCall
✅ givenLightningComponentGetBindingId
✅ givenWrongBindingNameValueWhenGetInjectThenThrowException
AbstractSelectorMethodInjectableTest
✅ verifyAbstractSelectorMethodInjection
AbstractSelectorQueryLocatorInjectblTest
✅ verifyAbstractSelectorQueryLocatorInjection
di_InjectorControllerTest
✅ givenStandardControllerWhenObjectCreatedThenConstructorCalled
di_InjectorTest
✅ givenBindingsWithAlternateObjectNameThenBindingIsReturned
✅ givenInjectorWithBindingsThenBindingIsReturned
✅ givenInstanceNameThenGetException
✅ givenInstanceThenGetThatInstance
✅ givenListOfModulesBindThenGetCount
✅ givenNoBindingsGetInstanceShouldThrowException
✅ givenNullParamterInGetInstanceThenThrowException
✅ givenNullSTypeParamterInGetInstanceThenThrowException
✅ test
✅ whenDeveloperNameIsEmptyThenGetInstanceShouldThrowException
ApplicationFactoryTest
✅ Application_Domain_Constructor2Test
✅ Application_Domain_ConstructorTest
✅ Application_Domain_MockDomainConstructor2Test
✅ Application_Domain_MockDomainConstructorTest
✅ Application_Selector_HappyPathTest
✅ Application_Selector_PrioritizationTest
✅ Application_Selector_SelectByIdHelperTest
✅ Application_Selector_SelectByRelationshipTest
✅ Application_Selector_SetMockTest
✅ Application_Service_HappyPathTest
✅ Application_Service_MockServiceTest
✅ Application_Service_MultiServiceTest
✅ Application_UnitOfWork_HappyPathTest
fflib_AnswerTest
✅ thatAnswerOnlyForTheMethodStubbedWithAnswer
✅ thatAnswerOnlyForTheStubbedParameter
✅ thatAnswerToDifferentVoidMethods
✅ thatAnswerToVoidAndNotVoidMethods
✅ thatAnswerToVoidMethod
✅ thatAnswersWithException
✅ thatArgumentListEmptyForMethodWithNoArgument
✅ thatExceptionIsThrownWhenAccessNegativeIndexArgument
✅ thatExceptionIsThrownWhenAccessOutOfIndexArgument
✅ thatMethodsParametersAreAccessible
✅ thatMethodsParametersAreAccessibleWhenCalledWithMatchers
✅ thatMultipleAnswersAreHandled
✅ thatStoresMethodIntoInvocationOnMock
✅ thatStoresMockInstanceIntoInvocationOnMock
PlatformEventDistributorDIModuleTest
✅ whenPlatformEventSubscriptionConsumerBlankExceptionThrown
✅ whenPlatformEventSubscriptionCustomMetadataPresentVerifyForceDIBinding
✅ whenPlatformEventSubscriptionEventBusBlankExceptionThrown
di_ModuleTest
✅ givenBadBindingTypeThenGetModuleException
✅ givenBindingInModuleWhenSetTypeThenGetModule
✅ givenModuleWhenSettingValuesThenGet
fflib_SystemTest
✅ assertEquals_WithCombinedMatcher_ShouldPass
✅ assertEquals_WithCustomMessage_WithCombinedMatcher_ShouldPass
✅ assertEquals_WithCustomMessage_WithMatch_ShouldPass
✅ assertEquals_WithCustomMessage_WithMismatch_ShouldThrowException
✅ assertEquals_WithCustomMessage_WithNoMatchers_ShouldThrowException
✅ assertEquals_WithCustomMessage_WithTooManyMatchers_ShouldThrowException
✅ assertEquals_WithMatch_ShouldPass
✅ assertEquals_WithMismatch_ShouldThrowException
✅ assertEquals_WithNoMatchers_ShouldThrowException
✅ assertEquals_WithTooManyMatchers_ShouldThrowException
fflib_ArgumentCaptorTest
✅ thatArgumentValueIsCaptured
✅ thatArgumentValueIsCapturedWithInOrderVerification
✅ thatCanHandleMultipleCapturesInOneMethodCall
✅ thatCanHandleMultipleCapturesInOneMethodCallWithInOrderVerification
✅ thatCanPerformFurtherAssertionsOnCapturedArgumentValue
✅ thatCanPerformFurtherAssertionsOnCapturedArgumentValueWithInOrderVerification
✅ thatCaptureAllArguments
✅ thatCaptureAllArgumentsForTheVerifiedMethods
✅ thatCaptureAllArgumentsForTheVerifiedMethodsWithInOrderVerification
✅ thatCaptureAllArgumentsFromMultipleMethods
✅ thatCaptureAllArgumentsFromMultipleMethodsWithInOrderVerification
✅ thatCaptureAllArgumentsWithInOrderVerification
✅ thatCaptureAllArgumentswhenMethodIsCalledWithTheSameArgument
✅ thatCaptureArgumentFromRequestedParameter
✅ thatCaptureArgumentFromRequestedParameterWithInOrderVerification
✅ thatCaptureArgumentOnlyFromVerifiedMethod
✅ thatCaptureArgumentOnlyFromVerifiedMethodWithInOrderVerification
✅ thatCaptureLastArgument
✅ thatCaptureLastArgumentWithInOrderVerification
✅ thatCaptureOnlyMethodsThatMatchesWithOtherMatcherAsWell
✅ thatCaptureOnlyMethodsThatMatchesWithOtherMatcherAsWellWithInOrderVerification
✅ thatDoesNotCaptureAnythingWhenCaptorIsWrappedInAMatcher
✅ thatDoesNotCaptureAnythingWhenCaptorIsWrappedInAMatcherWithInOrderVerification
✅ thatDoesNotCaptureIfNotVerified
✅ thatDoesNotCaptureIfNotVerifiedWithInOrderVerification
fflib_ApexMocksUtilsTest
✅ makeRelationship_GenericOverload_ReturnsObjectsWithRelationFieldSet
✅ makeRelationship_GenericOverload_ThrowsErrorOnInvalidChildType
✅ makeRelationship_GenericOverload_ThrowsErrorOnInvalidFieldName
✅ makeRelationship_GenericOverload_ThrowsErrorOnInvalidParentType
✅ makeRelationship_returnsObjectsWithRelationFieldSet
✅ setReadOnlyFields_CreatedByIdSetToCurrentUserId_IdFieldSetSuccessfully
✅ setReadOnlyFields_IsDeletedSetOnAccount_BooleanFieldSetSuccessfully
✅ setReadOnlyFields_LastReferencedDateSetOnAccount_DateTimeFieldSetSuccessfully
✅ setReadOnlyFields_PolymorphicRelationJoin_FieldSetSuccessfully
fflib_ApexMocksTest
✅ stubAndVerifyMethodCallsWithNoArguments
✅ thatExceptionIsthrownWhenReturnMultiPassEmptyList
✅ thatExceptionIsthrownWhenReturnMultiPassNullList
✅ thatExceptionIsthrownWhenStubbingIsNotDone
✅ thatExceptionIsthrownWhenThrowMultiPassEmptyList
✅ thatExceptionIsthrownWhenThrowMultiPassNullList
✅ thatMultipleInstancesCanBeMockedDependently
✅ thatMultipleInstancesCanBeMockedIndependently
✅ thatMultipleVoidMethodsThrowsMultipleExceptions
✅ thatNullCanBeUsedAsExceptionvalue
✅ thatNullCanBeUsedAsReturnValue
✅ thatStubbingCanBeChainedFirstValueThenException
✅ thatStubbingMultipleMethodsCanBeChainedFirstExceptionThenValue
✅ thatStubbingMultipleMethodsCanBeChainedFirstValueThenException
✅ thatStubbingMultipleTimesOverridePreviousThenReturnMultiWithMultiExceptions
✅ thatStubbingMultipleTimesOverridePreviousThenReturnMultiWithMultiValue
✅ thatStubbingMultipleTimesOverridePreviousThenReturnMultiWithSingleException
✅ thatStubbingMultipleTimesOverridePreviousThenReturnMultiWithSingleValue
✅ thatStubbingMultipleTimesOverridePreviousThenReturnWithMultiExceptions
✅ thatStubbingMultipleTimesOverridePreviousThenReturnWithMultiValues
✅ thatStubbingMultipleTimesOverridePreviousThenReturnWithSingleException
✅ thatStubbingMultipleTimesOverridePreviousThenReturnWithSingleValue
✅ thatStubbingMultipleTimesOverridePreviousThenThrowMultiWithMultiExceptions
✅ thatStubbingMultipleTimesOverridePreviousThenThrowMultiWithMultiValue
✅ thatStubbingMultipleTimesOverridePreviousThenThrowMultiWithSingleException
✅ thatStubbingMultipleTimesOverridePreviousThenThrowMultiWithSingleValue
✅ thatStubbingMultipleTimesOverridePreviousThenThrowWithMultiExceptions
✅ thatStubbingMultipleTimesOverridePreviousThenThrowWithMultiValues
✅ thatStubbingMultipleTimesOverridePreviousThenThrowWithSingleException
✅ thatStubbingMultipleTimesOverridePreviousThenThrowWithSingleValue
✅ thatStubbingMutipleTimesVoidMethodThrowsMultipleExceptionsOverride
✅ thatStubbingMutipleTimesVoidMethodThrowsMultipleExceptionsOverrideWithSingleException
✅ thatStubbingReturnsAndThrowsDifferentValuesAndExceptionsForDifferentCalls
✅ thatStubbingReturnsDifferentValuesForDifferentCalls
✅ thatStubbingReturnsDifferentValuesForDifferentCallsAndRepeatLastValuesForFurtherCalls
✅ thatStubbingThrowsAndReturnsDifferentExceptionsAndValuesForDifferentCalls
✅ thatStubbingThrowsDifferentExceptionsForDifferentCalls
✅ thatStubbingThrowsDifferentExceptionsForDifferentCallsAndRepeatLastExceptionForFurtherCalls
✅ thatToStringReturnsSimpleStringValue
✅ thatVoidMethodThrowsMultipleExceptions
✅ verifyMethodCallWhenNoCallsBeenMadeForType
✅ verifyMethodCallsWithSameNameButDifferentArgumentTypes
✅ verifyMethodNotCalled
✅ verifyMultipleMethodCallsWithDifferentSingleArgument
✅ verifyMultipleMethodCallsWithSameSingleArgument
✅ verifySingleMethodCallWithMultipleArguments
✅ verifySingleMethodCallWithNoArguments
✅ verifySingleMethodCallWithSingleArgument
✅ whenMockIsGeneratedCanStubVerify
✅ whenMockIsGeneratedCanVerify
✅ whenSetDoThrowWhenExceptionsValuesAreSet
✅ whenStubCallWithNoArgumentsShouldReturnStubbedValue
✅ whenStubCustomMatchersCanBeUsed
✅ whenStubExceptionSameMethodWithMatchersAndNonMatchersShouldStubInOrder
✅ whenStubExceptionTheExceptionShouldBeThrown
✅ whenStubExceptionWithMatchersShouldThrowException
✅ whenStubMultipleCallsWithMatchersShouldReturnExpectedValues
✅ whenStubMultipleCallsWithMultipleArgumentShouldReturnStubbedValues
✅ whenStubMultipleCallsWithSingleArgumentShouldReturnStubbedValues
✅ whenStubMultipleVoidMethodsWithExceptionsThenExceptionsShouldBeThrown
✅ whenStubNullConcreteArgValueCorrectValueIsReturned
✅ whenStubSameCallWithDifferentArgumentValueShouldReturnLastStubbedValue
✅ whenStubSameMethodWithMatchersAndNonMatchersShouldStubInOrder
✅ whenStubSingleCallWithNullReturnValueItShouldReturnNull
✅ whenStubSingleCallWithSingleArgumentShouldReturnStubbedValue
✅ whenStubVoidMethodWithExceptionAndCallMethodTwiceThenExceptionShouldBeThrownTwice
✅ whenStubVoidMethodWithExceptionThenExceptionShouldBeThrown
✅ whenStubWithMatcherAndNonMatcherArgumentsShouldThrowException
✅ whenVerifyCustomMatchersCanBeUsed
✅ whenVerifyMethodNeverCalledMatchersAreReset
✅ whenVerifyMultipleCallsWithMatchersShouldReturnCorrectMethodCallCounts
✅ whenVerifyWithCombinedMatchersShouldReturnCorrectMethodCallCounts
✅ whenVerifyWithMatcherAndNonMatcherArgumentsShouldThrowException
fflib_AnyOrderTest
✅ thatBetweenThrownExceptionIfCalledLessThanAtLeastNumberOfTimes
✅ thatBetweenThrownExceptionIfCalledLessThanAtLeastNumberOfTimesWithMatchers
✅ thatBetweenThrownExceptionIfCalledMoreThanAtMostNumberOfTimes
✅ thatBetweenThrownExceptionIfCalledMoreThanAtMostNumberOfTimesWithMatchers
✅ thatCustomMessageIsAdded
✅ thatThrownExceptionIfCalledLessThanAtLeastNumberOfTimes
✅ thatThrownExceptionIfCalledLessThanAtLeastNumberOfTimesWithMatchers
✅ thatThrownExceptionIfCalledLessThanAtLeastOnce
✅ thatThrownExceptionIfCalledLessThanAtLeastOnceNumberOfTimes
✅ thatThrownExceptionIfCalledLessThanAtLeastOnceNumberOfTimesWithMatchers
✅ thatThrownExceptionIfCalledLessThanAtLeastOnceWithMatchers
✅ thatThrownExceptionIfCalledMoreThanAtMostNumberOfTimes
✅ thatThrownExceptionIfCalledMoreThanAtMostNumberOfTimesWithMatchers
✅ thatVerifiesAtLeastNumberOfTimes
✅ thatVerifiesAtLeastNumberOfTimesWhenIsCalledMoreTimes
✅ thatVerifiesAtLeastNumberOfTimesWhenIsCalledMoreTimesWithMatchers
✅ thatVerifiesAtLeastNumberOfTimesWithMatchers
✅ thatVerifiesAtLeastOnce
✅ thatVerifiesAtLeastOnceNumberOfTimes
✅ thatVerifiesAtLeastOnceNumberOfTimesWhenIsCalledMoreTimes
✅ thatVerifiesAtLeastOnceNumberOfTimesWhenIsCalledMoreTimesWithMatchers
✅ thatVerifiesAtLeastOnceNumberOfTimesWithMatchers
✅ thatVerifiesAtLeastOnceWhenIsCalledMoreTimes
✅ thatVerifiesAtLeastOnceWhenIsCalledMoreTimesWithMatchers
✅ thatVerifiesAtLeastOnceWithMatchers
✅ thatVerifiesAtMostNumberOfTimes
✅ thatVerifiesAtMostNumberOfTimesWithMatchers
✅ thatVerifiesAtMostSameNumberOfTimes
✅ thatVerifiesAtMostSameNumberOfTimesWithMatchers
✅ thatVerifiesBetweenNumberOfTimes
✅ thatVerifiesBetweenNumberOfTimesWithMatchers
✅ thatVerifyNeverFailsWhenCalledMoreTimes
✅ thatVerifyNeverFailsWhenCalledMoreTimesWithMatchers
✅ thatVerifyTimesMethodFailsWhenCalledLessTimes
✅ thatVerifyTimesMethodFailsWhenCalledLessTimesWithMatchers
✅ thatVerifyTimesMethodFailsWhenCalledMoreTimes
✅ thatVerifyTimesMethodFailsWhenCalledMoreTimesWithMatchers
✅ verifyMethodCallWhenNoCallsBeenMadeForType
✅ verifyMethodNotCalled
✅ verifyMultipleMethodCallsWithSameSingleArgument
✅ verifyNeverMethodHasBeenNotCalledWithMatchers
✅ verifyNeverMethodHasNotBeenCalled
✅ verifySingleMethodCallWithMultipleArguments
✅ verifyTimesMethodHasBeenCalled
✅ verifyTimesMethodHasBeenCalledWithMatchers
✅ whenVerifyCustomMatchersCanBeUsed
✅ whenVerifyMethodNeverCalledMatchersAreReset
✅ whenVerifyMultipleCallsWithMatchersShouldReturnCorrectMethodCallCounts
✅ whenVerifyWithCombinedMatchersShouldReturnCorrectMethodCallCounts
di_BindingConfigWrapperTest
✅ givenBindingWrapperThenExtractAndValidate
✅ givenBindingWrapperWithBindingNameExpectDeveloperNameEqualsBindingName
✅ givenBindingWrapperWithMDTThenExtractAndValidate
di_BindingParamTest
✅ givenBooleansWhenGetParameterThenGetValues
✅ givenDateTimesWhenGetParameterThenGetValues
✅ givenDatesWhenGetParameterThenGetValues
✅ givenDecimalsWhenGetParameterThenGetValues
✅ givenNullInputWhenGetParameterThenGetNullValue
✅ givenStringsWhenGetParameterThenGetValues
✅ givenUnknownKeyWhenGetParameterThenGetNullValue
di_BindingTest
✅ givenApexBindingWhenGetInstanceThenInstance
✅ givenApexBindingWhenGetInstanceWithParamThenInstanceWithParam
✅ givenApexBindingWhenGetNewInstanceThenNewInstance
✅ givenApexBindingsWithDeveloperNamesWhenSortThenReturnSortedBindingsList
✅ givenApexBindingsWithSequenceAndWithoutObjectWhenSortThenReturnSortedBindingsList
✅ givenApexBindingsWithSequenceWhenSortThenReturnSortedBindingsList
✅ givenApexBindingsWithSobjectTypesWhenSortThenReturnSortedBindingsList
✅ givenIncorrectApexBindingWhenGetInstanceThenThrowException
✅ shouldConvertBindingToStringWhenObjectIsEmptyAndSequenceIsProvided
fflib_MatchTest
✅ allOfWith2ArgsRegistersCorrectMatcherType
✅ allOfWith3ArgsRegistersCorrectMatcherType
✅ allOfWith4ArgsRegistersCorrectMatcherType
✅ allOfWithEmptyArgsThrowsException
✅ allOfWithListArgsRegistersCorrectMatcherType
✅ allOfWithNoArgsThrowsException
✅ allOfWithoutRegisteringInnerMatchersThrowsException
✅ anyBooleanRegistersCorrectMatcherType
✅ anyDateRegistersCorrectMatcherType
✅ anyDatetimeRegistersCorrectMatcherType
✅ anyDecimalRegistersCorrectMatcherType
✅ anyDoubleRegistersCorrectMatcherType
✅ anyFieldSetRegistersCorrectMatcherType
✅ anyIdRegistersCorrectMatcherType
✅ anyIntegerRegistersCorrectMatcherType
✅ anyListRegistersCorrectMatcherType
✅ anyLongRegistersCorrectMatcherType
✅ anyObjectRegistersCorrectMatcherType
✅ anyOfWith2ArgsRegistersCorrectMatcherType
✅ anyOfWith3ArgsRegistersCorrectMatcherType
✅ anyOfWith4ArgsRegistersCorrectMatcherType
✅ anyOfWithListArgsRegistersCorrectMatcherType
✅ anySObjectFieldRegistersCorrectMatcherType
✅ anySObjectRegistersCorrectMatcherType
✅ anySObjectTypeRegistersCorrectMatcherType
✅ anyStringRegistersCorrectMatcherType
✅ dateAfterRegistersCorrectMatcherType
✅ dateBeforeRegistersCorrectMatcherType
✅ dateBetweenRegistersCorrectMatcherType
✅ datetimeAfterRegistersCorrectMatcherType
✅ datetimeBeforeRegistersCorrectMatcherType
✅ datetimeBetweenRegistersCorrectMatcherType
✅ decimalBetweenRegistersCorrectMatcherType
✅ decimalLessThanRegistersCorrectMatcherType
✅ decimalMoreThanRegistersCorrectMatcherType
✅ doubleBetweenRegistersCorrectMatcherType
✅ doubleLessThanRegistersCorrectMatcherType
✅ doubleMoreThanRegistersCorrectMatcherType
✅ eqBooleanRegistersCorrectMatcherType
✅ eqDateRegistersCorrectMatcherType
✅ eqDatetimeRegistersCorrectMatcherType
✅ eqDecimalRegistersCorrectMatcherType
✅ eqDoubleRegistersCorrectMatcherType
✅ eqIdRegistersCorrectMatcherType
✅ eqIntegerRegistersCorrectMatcherType
✅ eqListRegistersCorrectMatcherType
✅ eqLongRegistersCorrectMatcherType
✅ eqRegistersCorrectMatcherType
✅ eqSObjectFieldRegistersCorrectMatcherType
✅ eqSObjectTypeRegistersCorrectMatcherType
✅ eqStringRegistersCorrectMatcherType
✅ fieldSetEquivalentToRegistersCorrectMatcherType
✅ fieldSetEquivalentWithNullFieldSetThrowsException
✅ integerBetweenRegistersCorrectMatcherType
✅ integerLessThanRegistersCorrectMatcherType
✅ integerMoreThanRegistersCorrectMatcherType
✅ isNotNullRegistersCorrectMatcherType
✅ isNotRegistersCorrectMatcherType
✅ isNullRegistersCorrectMatcherType
✅ listContainsRegistersCorrectMatcherType
✅ listIsEmptyRegistersCorrectMatcherType
✅ longBetweenRegistersCorrectMatcherType
✅ longLessThanRegistersCorrectMatcherType
✅ longMoreThanRegistersCorrectMatcherType
✅ noneOfWith2ArgsRegistersCorrectMatcherType
✅ noneOfWith3ArgsRegistersCorrectMatcherType
✅ noneOfWith4ArgsRegistersCorrectMatcherType
✅ noneOfWithListArgsRegistersCorrectMatcherType
✅ refEqRegistersCorrectMatcherType
✅ sObjectOfTypeRegistersCorrectMatcherType
✅ sObjectWithIdRegistersCorrectMatcherType
✅ sObjectWithNameRegistersCorrectMatcherType
✅ sObjectWithRegistersCorrectMatcherType
✅ sObjectsWithMatchInOrderRegistersCorrectMatcherType
✅ sObjectsWithRegistersCorrectMatcherType
✅ stringContainsRegistersCorrectMatcherType
✅ stringEndsWithRegistersCorrectMatcherType
✅ stringIsBlankRegistersCorrectMatcherType
✅ stringIsNotBlankRegistersCorrectMatcherType
✅ stringMatchesRegistersCorrectMatcherType
✅ stringStartsWithRegistersCorrectMatcherType
✅ whenMatchesAllArgsWithDifferentSizeArgValuesAndMatchersThrowsException
✅ whenMatchesAllArgsWithManyMatchesReturnsTrue
✅ whenMatchesAllArgsWithManyMismatchesReturnsFalse
✅ whenMatchesAllArgsWithMatchesAndMismatchesReturnsFalse
✅ whenMatchesAllArgsWithNullMatchersThrowsException
✅ whenMatchesAllArgsWithNullMethodArgsArgValuesThrowsException
✅ whenMatchesAllArgsWithNullMethodArgsThrowsException
✅ whenMatchesAllArgsWithOneMatchReturnsTrue
✅ whenMatchesAllArgsWithOneMismatchReturnsFalse
✅ whenMatchesWithOneMatcherRegistersMatcher
✅ whenMatchesWithOneMatcherReturnsNull
✅ whenMatchesWithOneMatcherSetsMatchingToTrue
fflib_InheritorTest
✅ canInstantiateMultipleInterfaceInheritor
✅ canStubMultipleInterfaceInheritor
fflib_InOrderTest
✅ thatMixedVerificationDoNotInterfierWithOtherImplementationChecking
✅ thatStrictVerificationCanBeEnforced
✅ thatStrictVerificationCanBeEnforcedWithOldNotation
✅ thatStrictVerificationCanBeEnforcedWithOldNotationUsingDefaultTimesOne
✅ thatStrictVerificationCanBePerformed
✅ thatTimesOneIsTheDefaultVerification
✅ thatVerifyAtLeastConsumeAllTheInstances
✅ thatVerifyAtLeastConsumeAllTheInstancesForOnlyTheMethodVerified
✅ thatVerifyAtLeastConsumesAllTheInstances2
✅ thatVerifyAtLeastOnce
✅ thatVerifyAtLeastOnceConsumesAllTheInstances
✅ thatVerifyAtLeastOnceConsumesInstancesUntilLastMethodVerified
✅ thatVerifyAtLeastOnceThrowsErrorIfCalledLessTimes
✅ thatVerifyAtLeastPassWithMoreCallsThenAsserted
✅ thatVerifyAtLeastPassWithSameCallsOfAssertion
✅ thatVerifyAtLeastThrowsErrorIfCalledLessTimes
✅ thatVerifyAtMostThrowsExceptionBecauseNotImplemented
✅ thatVerifyBetweenThrowsExceptionBecauseNotImplemented
✅ thatVerifyInOrderAllTheMethodsCalled
✅ thatVerifyInOrderCallMethodWithMatches
✅ thatVerifyInOrderCallMethodWithMatchesFailsIfVerifyACallAlreadyInTheMatcher
✅ thatVerifyInOrderCallMethodWithMultipleMatches
✅ thatVerifyInOrderCallMethodWithMultipleMatchesMixed
✅ thatVerifyInOrderCallMethodWithMultipleMatchesMixedFailWhenMatcherHaveAlreadyVerifiedMethod
✅ thatVerifyInOrderCanHandleMixedInOrderInstance
✅ thatVerifyInOrderCanHandleMultipleMethodsCalls
✅ thatVerifyInOrderCanHandleMultipleMethodsCallsAndNotFailsIfVerifyCountIsGreaterThenExpected
✅ thatVerifyInOrderCanHandleMultipleMethodsCallsButFailsIfVerifyCountIsLessThenExpected
✅ thatVerifyInOrderCanHandleMultipleMocks
✅ thatVerifyInOrderCanSkipMethodsCalledUntilFindTheOneThatNeedsVerify
✅ thatVerifyInOrderDifferentMethodsCalledWithSameArguments
✅ thatVerifyInOrderDifferentMethodsCalledWithSameArgumentsDoubleCallFail
✅ thatVerifyInOrderDifferentMethodsCalledWithSameArgumentsOrderFail
✅ thatVerifyInOrderThrownExceptionIfVerifyMockInstanceNotInTheSet
✅ thatVerifyInOrderThrownExceptionWithCustomMessage
✅ thatVerifyNever
✅ thatVerifyNeverFailsWhenCalled
✅ thatVerifyNeverFailsWhenCalledWithMatchers
✅ thatVerifyNeverWithMatchers
✅ thatVerifyNoInteractionsFails
✅ thatVerifyNoInteractionsPass
✅ thatVerifyNoMoreInteractionsFails
✅ thatVerifyNoMoreInteractionsFailsWhenNoInteracionOccurs
✅ thatVerifyNoMoreInteractionsFailsWhenOnLyOneMethodLeft
✅ thatVerifyNoMoreInteractionsPass
✅ thatVerifyThrowsExceptionWhenCallsIsInvochedFromStandardMock
✅ thatVerifyTimes
✅ thatVerifyTimesPassWhenAnotherMethodIsCalledBetweenMethodsCalls
✅ thatVerifyTimesPassWhenAnotherMethodIsCalledBetweenMethodsCalls2
✅ thatVerifyTimesPassWhenAnotherMethodIsCalledBetweenMethodsCalls3
✅ thatVerifyTimesPassWhenAnotherMethodIsCalledBetweenMethodsCalls4
✅ thatVerifyTimesThrowsExceptionIfCalledLessTimesThanExpected
✅ thatVerifyTimesThrowsExceptionIfCalledMoreTimesThanExpected
✅ thatVerifyTimesThrowsExceptionWhenAnotherMethodIsCalledBetweenMethodsCalls
✅ thatWithOldNotation
✅ thatWithOldNotationPassWhenAnotherMethodIsCalledBetweenMethodsCalls
✅ thatWithOldNotationThrowsExceptionIfCalledLessTimesThanExpected
✅ thatWithOldNotationThrowsExceptionIfCalledMoreTimesThanExpected
✅ thatWithOldNotationThrowsExceptionWhenAnotherMethodIsCalledBetweenMethodsCalls
✅ verifyAtLeastAndCapture
✅ verifyCallsAndCapture
✅ verifyTimesAndCaptor
fflib_IDGeneratorTest
✅ itShouldGenerateValidIDs
```