This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
global class calculateIsInsideBusinessHours { | |
global class request | |
{ | |
@InvocableVariable (label='Date' required = true) | |
global DateTime givenDateTime; | |
@InvocableVariable (label='Business Hours Id' required = true) | |
global String businessHoursId; | |
} | |
global class response | |
{ | |
@InvocableVariable (label='Is within Business Hours?') | |
global Boolean dateInsideBusinessHours; | |
} | |
@InvocableMethod(label='Professor Flow | Calculate if date inside Business Hours' description='Returns true if the specified target date occurs within business hours. Holidays are included in the calculation.') | |
global static List<response> DateInBusHours (List<request> inputParams) | |
{ | |
//initialize response | |
List<response> responseList = new List<response>(); | |
Boolean checkResult; | |
if(inputParams != null && inputParams.size()> 0) | |
{ | |
for(request pf : inputParams) | |
{ | |
checkResult = BusinessHours.isWithin(pf.businessHoursId, pf.givenDateTime); | |
response rs = new response(); | |
rs.dateInsideBusinessHours = checkResult; | |
responseList.add(rs); | |
} | |
} | |
return responseList; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@isTest | |
global class calculateIsInsideBusinessHoursTest | |
{ | |
@isTest static void CheckDateInsideBusinessHours() | |
{ | |
// Implement test code | |
Profile sysadminprofile = [select Id, name from profile where Name = 'System administrator' limit 1]; | |
user adminUser = [select Id, Name from user where profileId= :sysadminprofile.Id and isactive= True limit 1]; | |
businessHours bhoursId = [select Id from BusinessHours where name='Default' limit 1]; | |
System.runAs(adminUser) | |
{ | |
List<calculateIsInsideBusinessHours.request> inputparams = new List<calculateIsInsideBusinessHours.request>(); | |
calculateIsInsideBusinessHours.request pf = new calculateIsInsideBusinessHours.request(); | |
pf.givendateTime = Datetime.now(); | |
pf.businessHoursId = bhoursId.Id; | |
inputparams.add(pf); | |
Test.startTest(); | |
List<calculateIsInsideBusinessHours.response> response = calculateIsInsideBusinessHours.DateInBusHours(inputParams); | |
Test.stopTest(); | |
system.assertEquals(true, response[0].dateInsideBusinessHours); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment