Skip to content

Commit

Permalink
[SELC-2865] fix: add logging onboardingsOrchestrator function (#117)
Browse files Browse the repository at this point in the history
* add log error to onboardingsOrchestrator

* mock executionContext
  • Loading branch information
manuraf authored Jan 25, 2024
1 parent 10f2e4e commit 0531b60
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,8 @@ public HttpResponseMessage startOrchestration(
*/
@FunctionName("Onboardings")
public void onboardingsOrchestrator(
@DurableOrchestrationTrigger(name = "taskOrchestrationContext") TaskOrchestrationContext ctx) {
@DurableOrchestrationTrigger(name = "taskOrchestrationContext") TaskOrchestrationContext ctx,
ExecutionContext functionContext) {
String onboardingId = ctx.getInput(String.class);
Onboarding onboarding = service.getOnboarding(onboardingId)
.orElseThrow(() -> new ResourceNotFoundException(String.format("Onboarding with id %s not found!", onboardingId)));
Expand All @@ -111,6 +112,7 @@ public void onboardingsOrchestrator(
Optional<OnboardingStatus> optNextStatus = workflowExecutor.execute(ctx, onboarding);
optNextStatus.ifPresent(onboardingStatus -> service.updateOnboardingStatus(onboardingId, onboardingStatus));
} catch (Exception ex) {
functionContext.getLogger().warning("Error during workflowExecutor execute, msg: " + ex.getMessage());
service.updateOnboardingStatusAndInstanceId(onboardingId, OnboardingStatus.FAILED, ctx.getInstanceId());
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,13 @@ public class OnboardingFunctionsTest {
CompletionService completionService;

final String onboardinString = "{\"onboardingId\":\"onboardingId\"}";

static ExecutionContext executionContext;

static {
executionContext = mock(ExecutionContext.class);
when(executionContext.getLogger()).thenReturn(Logger.getGlobal());
}
@Test
public void startAndWaitOrchestration() throws Exception {
// Setup
Expand Down Expand Up @@ -97,9 +104,10 @@ public HttpResponseMessage.Builder answer(InvocationOnMock invocation) {
void onboardingsOrchestrator_throwExceptionIfOnboardingNotPresent() {
final String onboardingId = "onboardingId";
TaskOrchestrationContext orchestrationContext = mock(TaskOrchestrationContext.class);

when(orchestrationContext.getInput(String.class)).thenReturn(onboardingId);
when(service.getOnboarding(onboardingId)).thenReturn(Optional.empty());
assertThrows(ResourceNotFoundException.class, () -> function.onboardingsOrchestrator(orchestrationContext));
assertThrows(ResourceNotFoundException.class, () -> function.onboardingsOrchestrator(orchestrationContext, executionContext));
}

@Test
Expand All @@ -111,13 +119,14 @@ void onboardingsOrchestrator_throwExceptionActivity() {
final String instanceId = "instanceId";

TaskOrchestrationContext orchestrationContext = mock(TaskOrchestrationContext.class);

when(orchestrationContext.getInput(String.class)).thenReturn(onboarding.getOnboardingId());
when(orchestrationContext.getInstanceId()).thenReturn(instanceId);
when(service.getOnboarding(onboarding.getOnboardingId())).thenReturn(Optional.of(onboarding));

when(orchestrationContext.callActivity(any(),any(),any(),any())).thenThrow(new RuntimeException());

function.onboardingsOrchestrator(orchestrationContext);
function.onboardingsOrchestrator(orchestrationContext, executionContext);

Mockito.verify(service, times(1))
.updateOnboardingStatusAndInstanceId(onboarding.getOnboardingId(), OnboardingStatus.FAILED, instanceId);
Expand All @@ -132,7 +141,7 @@ void onboardingsOrchestratorContractRegistration() {

TaskOrchestrationContext orchestrationContext = mockTaskOrchestrationContext(onboarding);

function.onboardingsOrchestrator(orchestrationContext);
function.onboardingsOrchestrator(orchestrationContext, executionContext);

ArgumentCaptor<String> captorActivity = ArgumentCaptor.forClass(String.class);
Mockito.verify(orchestrationContext, times(3))
Expand All @@ -153,8 +162,9 @@ void onboardingsOrchestratorForApprove() {
onboarding.setWorkflowType(WorkflowType.FOR_APPROVE);

TaskOrchestrationContext orchestrationContext = mockTaskOrchestrationContext(onboarding);


function.onboardingsOrchestrator(orchestrationContext);
function.onboardingsOrchestrator(orchestrationContext, executionContext);

ArgumentCaptor<String> captorActivity = ArgumentCaptor.forClass(String.class);
Mockito.verify(orchestrationContext, times(1))
Expand All @@ -173,8 +183,9 @@ void onboardingsOrchestratorForApproveWhenToBeValidated() {
onboarding.setWorkflowType(WorkflowType.FOR_APPROVE);

TaskOrchestrationContext orchestrationContext = mockTaskOrchestrationContext(onboarding);


function.onboardingsOrchestrator(orchestrationContext);
function.onboardingsOrchestrator(orchestrationContext, executionContext);

ArgumentCaptor<String> captorActivity = ArgumentCaptor.forClass(String.class);
Mockito.verify(orchestrationContext, times(3))
Expand All @@ -196,8 +207,9 @@ void onboardingsOrchestratorConfirmation() {
onboarding.setInstitution(new Institution());

TaskOrchestrationContext orchestrationContext = mockTaskOrchestrationContext(onboarding);


function.onboardingsOrchestrator(orchestrationContext);
function.onboardingsOrchestrator(orchestrationContext, executionContext);

ArgumentCaptor<String> captorActivity = ArgumentCaptor.forClass(String.class);
Mockito.verify(orchestrationContext, times(3))
Expand All @@ -218,8 +230,9 @@ void onboardingsOrchestratorRegistrationRequestApprove() {
onboarding.setWorkflowType(WorkflowType.FOR_APPROVE_PT);

TaskOrchestrationContext orchestrationContext = mockTaskOrchestrationContext(onboarding);


function.onboardingsOrchestrator(orchestrationContext);
function.onboardingsOrchestrator(orchestrationContext, executionContext);

ArgumentCaptor<String> captorActivity = ArgumentCaptor.forClass(String.class);
Mockito.verify(orchestrationContext, times(2))
Expand All @@ -244,8 +257,7 @@ TaskOrchestrationContext mockTaskOrchestrationContext(Onboarding onboarding) {

@Test
void buildContract() {
ExecutionContext executionContext = mock(ExecutionContext.class);
when(executionContext.getLogger()).thenReturn(Logger.getGlobal());

doNothing().when(service).createContract(any());

function.buildContract(onboardinString, executionContext);
Expand All @@ -256,7 +268,7 @@ void buildContract() {

@Test
void saveToken() {
ExecutionContext executionContext = mock(ExecutionContext.class);

when(executionContext.getLogger()).thenReturn(Logger.getGlobal());
doNothing().when(service).saveTokenWithContract(any());

Expand All @@ -268,7 +280,7 @@ void saveToken() {

@Test
void sendMailRegistrationWithContract() {
ExecutionContext executionContext = mock(ExecutionContext.class);

when(executionContext.getLogger()).thenReturn(Logger.getGlobal());
doNothing().when(service).sendMailRegistrationWithContract(any());

Expand All @@ -280,7 +292,7 @@ void sendMailRegistrationWithContract() {

@Test
void sendMailRegistration() {
ExecutionContext executionContext = mock(ExecutionContext.class);

when(executionContext.getLogger()).thenReturn(Logger.getGlobal());
doNothing().when(service).sendMailRegistration(any());

Expand All @@ -292,7 +304,7 @@ void sendMailRegistration() {

@Test
void sendMailRegistrationApprove() {
ExecutionContext executionContext = mock(ExecutionContext.class);

when(executionContext.getLogger()).thenReturn(Logger.getGlobal());
doNothing().when(service).sendMailRegistrationApprove(any());

Expand All @@ -304,7 +316,7 @@ void sendMailRegistrationApprove() {

@Test
void sendMailOnboardingApprove() {
ExecutionContext executionContext = mock(ExecutionContext.class);

when(executionContext.getLogger()).thenReturn(Logger.getGlobal());
doNothing().when(service).sendMailOnboardingApprove(any());

Expand All @@ -316,7 +328,7 @@ void sendMailOnboardingApprove() {

@Test
void sendMailRegistrationWithContractWhenApprove() {
ExecutionContext executionContext = mock(ExecutionContext.class);

when(executionContext.getLogger()).thenReturn(Logger.getGlobal());
doNothing().when(service).sendMailRegistrationWithContractWhenApprove(any());

Expand All @@ -336,8 +348,9 @@ void onboardingCompletionOrchestrator() {
onboarding.setInstitution(new Institution());

TaskOrchestrationContext orchestrationContext = mockTaskOrchestrationContext(onboarding);


function.onboardingsOrchestrator(orchestrationContext);
function.onboardingsOrchestrator(orchestrationContext, executionContext);

ArgumentCaptor<String> captorActivity = ArgumentCaptor.forClass(String.class);
Mockito.verify(orchestrationContext, times(3))
Expand All @@ -362,8 +375,9 @@ void onboardingRejectedOrchestrator() {
onboarding.setInstitution(new Institution());

TaskOrchestrationContext orchestrationContext = mockTaskOrchestrationContext(onboarding);


function.onboardingsOrchestrator(orchestrationContext);
function.onboardingsOrchestrator(orchestrationContext, executionContext);

ArgumentCaptor<String> captorActivity = ArgumentCaptor.forClass(String.class);
Mockito.verify(orchestrationContext, times(1))
Expand All @@ -373,7 +387,7 @@ void onboardingRejectedOrchestrator() {

@Test
void createInstitutionAndPersistInstitutionId() {
ExecutionContext executionContext = mock(ExecutionContext.class);

when(executionContext.getLogger()).thenReturn(Logger.getGlobal());
when(completionService.createInstitutionAndPersistInstitutionId(any()))
.thenReturn("id");
Expand All @@ -386,7 +400,7 @@ void createInstitutionAndPersistInstitutionId() {

@Test
void sendCompletedEmail() {
ExecutionContext executionContext = mock(ExecutionContext.class);

when(executionContext.getLogger()).thenReturn(Logger.getGlobal());
doNothing().when(completionService).sendCompletedEmail(any());

Expand All @@ -398,7 +412,7 @@ void sendCompletedEmail() {

@Test
void sendMailRejection() {
ExecutionContext executionContext = mock(ExecutionContext.class);

when(executionContext.getLogger()).thenReturn(Logger.getGlobal());
doNothing().when(completionService).sendMailRejection(any());

Expand Down

0 comments on commit 0531b60

Please sign in to comment.