/*********************************************************************************************************** * Name : CA_ServiceTrackerRefreshInvocableTest * Purpose : Test class for CA_ServiceTrackerRefreshInvocable **********************************************************************************************************/ @isTest private class CA_ServiceTrackerRefreshInvocableTest { /************************************************************************************ * Method: refreshServicesRunsSuccessfully * APEX method tested : CA_ServiceTrackerRefreshInvocable.refreshServices * Description : Verifies invocable method accepts a valid request and executes without exception *************************************************************************************/ @isTest static void refreshServicesRunsSuccessfully() { Account account = TestFactory.getCaAccount(); account.Name = 'CA_ST_Invocable_Account'; insert account; Opportunity currentOpp = TestFactory.getCaOpp(); currentOpp.AccountId = account.Id; currentOpp.Name = 'CA_ST_Invocable_Current'; insert currentOpp; Master_Right__c firstRight = new Master_Right__c( Name = 'CA_ST_Inv_First', Active__c = true, Order__c = 1 ); Master_Right__c secondRight = new Master_Right__c( Name = 'CA_ST_Inv_Second', Active__c = true, Order__c = 2 ); insert new List{ firstRight, secondRight }; CA_ServiceTrackerRefreshInvocable.Request requestItem = new CA_ServiceTrackerRefreshInvocable.Request(); requestItem.opportunityId = currentOpp.Id; requestItem.masterRights = new List{ firstRight, secondRight }; Test.startTest(); CA_ServiceTrackerRefreshInvocable.refreshServices(new List{ requestItem }); Test.stopTest(); Integer refreshedCount = [ SELECT COUNT() FROM Opportunity_Right__c WHERE Opportunity__c = :currentOpp.Id AND Master_Right__c IN :new Set{ firstRight.Id, secondRight.Id } ]; Assert.areEqual(2, refreshedCount, 'Invocable should refresh services for the requested rights'); } }