Skip to content
This repository has been archived by the owner on Jul 23, 2024. It is now read-only.

Commit

Permalink
WorkFlowDefintion: increase test coverage
Browse files Browse the repository at this point in the history
Signed-off-by: Eloy Coto <eloy.coto@acalustra.com>
  • Loading branch information
eloycoto committed Apr 19, 2023
1 parent fa77326 commit 1924757
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,7 @@ public void saveWorkFlowChecker(String workFlowTaskName, String workFlowCheckerN
private void getWorksFromWorkDefinition(List<WorkFlowWorkDefinition> workFlowWorkDefinitions,
CopyOnWriteArrayList<WorkDefinitionResponseDTO> responseDTOs) {
workFlowWorkDefinitions.forEach(workFlowWorkDefinition -> {

WorkType workType = workFlowWorkDefinition.getWorkDefinitionType();
if (workType == null) {
return;
Expand Down Expand Up @@ -284,6 +285,8 @@ private List<WorkDefinitionResponseDTO> buildWorkFlowWorksDTOs(WorkFlowDefinitio
this.getWorksFromWorkDefinition(workFlowWorkDefinitions, workDefinitionResponseDTOs);

// fill in subsequent workUnits
// this responseSize is like this because we modify the size of the
// workDefinitionResponseDTO
for (int i = 1; i < workDefinitionResponseDTOs.size(); i++) {
if (workDefinitionResponseDTOs.get(i).getWorkType().equalsIgnoreCase(WorkType.WORKFLOW.name())) {

Expand All @@ -295,18 +298,18 @@ private List<WorkDefinitionResponseDTO> buildWorkFlowWorksDTOs(WorkFlowDefinitio
UUID.fromString(workDefinitionResponseDTOs.get(i).getId()))
.stream().sorted(Comparator.comparing(WorkFlowWorkDefinition::getCreateDate))
.collect(Collectors.toList());

this.getWorksFromWorkDefinition(workFlowWorkUnits1Definition, workDefinitionResponseDTOs);
}
}

for (int j = workDefinitionResponseDTOs.size() - 1; j >= 0; j--) {
if (workDefinitionResponseDTOs.get(j).getWorkType().equalsIgnoreCase(WorkType.WORKFLOW.name())) {
List<WorkDefinitionResponseDTO> tmpList = new ArrayList<>();
for (int k = workFlowWorksStartIndex
.get(workDefinitionResponseDTOs.get(j).getName()); k < workFlowWorksStartIndex
.get(workDefinitionResponseDTOs.get(j).getName())
+ workDefinitionResponseDTOs.get(j).getNumberOfWorkUnits(); k++) {
for (int k = workFlowWorksStartIndex.get(workDefinitionResponseDTOs.get(j)
.getName()); k < workFlowWorksStartIndex.get(workDefinitionResponseDTOs.get(j).getName())
+ workDefinitionResponseDTOs.get(j).getNumberOfWorkUnits()
&& k < workDefinitionResponseDTOs.size(); k++) {

tmpList.add(workDefinitionResponseDTOs.get(k));
}
workDefinitionResponseDTOs.get(j).setWorks(tmpList);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

import com.redhat.parodos.workflow.definition.entity.WorkFlowCheckerMappingDefinition;
import com.redhat.parodos.workflow.definition.entity.WorkFlowPropertiesDefinition;
import com.redhat.parodos.workflow.definition.entity.WorkFlowWorkDefinition;
import com.redhat.parodos.workflow.definition.repository.WorkFlowCheckerMappingDefinitionRepository;
import com.redhat.parodos.workflow.definition.repository.WorkFlowWorkRepository;
import com.redhat.parodos.workflow.enums.WorkFlowProcessingType;
Expand All @@ -27,6 +28,7 @@
import com.redhat.parodos.workflow.definition.entity.WorkFlowTaskDefinition;
import com.redhat.parodos.workflow.definition.repository.WorkFlowDefinitionRepository;
import com.redhat.parodos.workflow.definition.repository.WorkFlowTaskDefinitionRepository;
import com.redhat.parodos.workflow.enums.WorkType;
import com.redhat.parodos.workflow.parameter.WorkParameter;
import com.redhat.parodos.workflow.parameter.WorkParameterType;
import com.redhat.parodos.workflow.util.WorkFlowDTOUtil;
Expand Down Expand Up @@ -222,6 +224,61 @@ public void getWorkFlowDefinitionByNameWithValidNameTest() {
Mockito.verify(this.workFlowDefinitionRepository, Mockito.times(1)).findFirstByName(any());
}

@Test
public void getWorkFlowDefinitionByNameWithMasterWorkflow() {
// given
WorkFlowDefinition masterWorkFlow = sampleWorkFlowDefinition(TEST);
WorkFlowWorkDefinition workFlowWorkDefinition = sampleWorkFlowWorkDefinition("workTest");
Mockito.when(this.workFlowDefinitionRepository.findFirstByName(any())).thenReturn(masterWorkFlow);

Mockito.when(this.workFlowDefinitionRepository.findById(Mockito.any()))
.thenReturn(Optional.of(sampleWorkFlowDefinition("SubWorkFlow")));

Mockito.when(this.workFlowWorkRepository.findByWorkFlowDefinitionIdOrderByCreateDateAsc(Mockito.any()))
.thenReturn(List.of(workFlowWorkDefinition));

// when
WorkFlowDefinitionResponseDTO result = this.workFlowDefinitionService.getWorkFlowDefinitionByName(TEST);

// then
assertNotNull(result);
assertEquals(result.getName(), TEST);

Mockito.verify(this.workFlowDefinitionRepository, Mockito.times(1)).findFirstByName(any());
Mockito.when(this.workFlowDefinitionRepository.findFirstByName(any()))
.thenReturn(sampleWorkFlowDefinition(TEST));

assertEquals(result.getWorks().size(), 1);
assertEquals(result.getWorks().get(0).getName(), "SubWorkFlow");
assertEquals(result.getWorks().get(0).getWorkType(), WorkType.WORKFLOW.toString());
}

@Test
public void getWorkFlowDefinitionByNameWithEmptyMasterWorkflow() {
// given
WorkFlowDefinition masterWorkFlow = sampleWorkFlowDefinition(TEST);
WorkFlowWorkDefinition workFlowWorkDefinition = sampleWorkFlowWorkDefinition("workTest");
Mockito.when(this.workFlowDefinitionRepository.findFirstByName(any())).thenReturn(masterWorkFlow);

Mockito.when(this.workFlowDefinitionRepository.findById(Mockito.any())).thenReturn(Optional.empty());

Mockito.when(this.workFlowWorkRepository.findByWorkFlowDefinitionIdOrderByCreateDateAsc(Mockito.any()))
.thenReturn(List.of(workFlowWorkDefinition));

// when
WorkFlowDefinitionResponseDTO result = this.workFlowDefinitionService.getWorkFlowDefinitionByName(TEST);

// then
assertNotNull(result);
assertEquals(result.getName(), TEST);

Mockito.verify(this.workFlowDefinitionRepository, Mockito.times(1)).findFirstByName(any());
Mockito.when(this.workFlowDefinitionRepository.findFirstByName(any()))
.thenReturn(sampleWorkFlowDefinition(TEST));

assertEquals(result.getWorks().size(), 0);
}

@Test
public void getWorkFlowDefinitionByNameWithInvalidNameTest() {
// given
Expand Down Expand Up @@ -345,6 +402,13 @@ private WorkFlowTaskDefinition sampleWorkFlowTaskDefinition(WorkFlowDefinition w
return workFlowTaskDefinition;
}

private WorkFlowWorkDefinition sampleWorkFlowWorkDefinition(String name) {
WorkFlowWorkDefinition workFlowWorkDefinition = WorkFlowWorkDefinition.builder().build();
workFlowWorkDefinition.setWorkDefinitionType(WorkType.WORKFLOW);
workFlowWorkDefinition.setId(UUID.randomUUID());
return workFlowWorkDefinition;
}

private WorkFlowDefinitionServiceImpl getWorkflowDefinitionService() {
return new WorkFlowDefinitionServiceImpl(this.workFlowDefinitionRepository,
this.workFlowTaskDefinitionRepository, this.workFlowCheckerMappingDefinitionRepository,
Expand Down

0 comments on commit 1924757

Please sign in to comment.