SI-740 - SI-1984 Unittests
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/DecideFailureInfoHasSubordinatedInfosTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/DecideFailureInfoHasSubordinatedInfosTest.java
new file mode 100644
index 0000000..dd095a2
--- /dev/null
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/DecideFailureInfoHasSubordinatedInfosTest.java
@@ -0,0 +1,48 @@
+package org.eclipse.openk.gridfailureinformation.bpmn.impl;
+
+import org.eclipse.openk.gridfailureinformation.bpmn.base.ProcessException;
+import org.eclipse.openk.gridfailureinformation.bpmn.base.tasks.DecisionTask;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.DecideFailureInfoHasSubordinatedInfos;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.ProcessHelper;
+import org.eclipse.openk.gridfailureinformation.support.MockDataHelper;
+import org.eclipse.openk.gridfailureinformation.viewmodel.FailureInformationDto;
+import org.junit.jupiter.api.Test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+class DecideFailureInfoHasSubordinatedInfosTest {
+
+
+ @Test
+ void shouldDecideYes() throws ProcessException {
+ ProcessHelper processHelper = mock(ProcessHelper.class);
+ List<FailureInformationDto> children = MockDataHelper.mockGridFailureInformationDtos();
+ when( processHelper.getSubordinatedChildren( any(FailureInformationDto.class)))
+ .thenReturn(children);
+
+ GfiProcessSubject sub = GfiProcessSubject.of(MockDataHelper.mockFailureInformationDto(), processHelper);
+
+ DecisionTask<GfiProcessSubject> dTask = new DecideFailureInfoHasSubordinatedInfos();
+ assertEquals( DecisionTask.OutputPort.YES, dTask.decide(sub));
+ }
+
+
+ @Test
+ void shouldDecideNo() throws ProcessException {
+ ProcessHelper processHelper = mock(ProcessHelper.class);
+ List<FailureInformationDto> children = new ArrayList<>();
+ when( processHelper.getSubordinatedChildren( any(FailureInformationDto.class)))
+ .thenReturn(children);
+
+ GfiProcessSubject sub = GfiProcessSubject.of(MockDataHelper.mockFailureInformationDto(), processHelper);
+
+ DecisionTask<GfiProcessSubject> dTask = new DecideFailureInfoHasSubordinatedInfos();
+ assertEquals( DecisionTask.OutputPort.NO, dTask.decide(sub));
+ }
+}
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/ProcessHelperTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/ProcessHelperTest.java
index 06388e5..a63ea61 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/ProcessHelperTest.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/ProcessHelperTest.java
@@ -18,10 +18,15 @@
import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.ProcessHelper;
import org.eclipse.openk.gridfailureinformation.config.TestConfiguration;
import org.eclipse.openk.gridfailureinformation.exceptions.InternalServerErrorException;
+import org.eclipse.openk.gridfailureinformation.exceptions.NotFoundException;
import org.eclipse.openk.gridfailureinformation.model.RefFailureClassification;
+import org.eclipse.openk.gridfailureinformation.model.TblFailureInformation;
+import org.eclipse.openk.gridfailureinformation.model.TblFailureInformationPublicationChannel;
import org.eclipse.openk.gridfailureinformation.repository.FailureClassificationRepository;
+import org.eclipse.openk.gridfailureinformation.repository.FailureInformationPublicationChannelRepository;
import org.eclipse.openk.gridfailureinformation.repository.FailureInformationRepository;
import org.eclipse.openk.gridfailureinformation.repository.StatusRepository;
+import org.eclipse.openk.gridfailureinformation.service.FailureInformationService;
import org.eclipse.openk.gridfailureinformation.support.MockDataHelper;
import org.eclipse.openk.gridfailureinformation.viewmodel.FailureInformationDto;
import org.junit.jupiter.api.Test;
@@ -30,17 +35,17 @@
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.test.context.ContextConfiguration;
+import java.util.List;
import java.util.Optional;
import java.util.UUID;
import static org.junit.jupiter.api.Assertions.*;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyLong;
-import static org.mockito.Mockito.when;
+import static org.mockito.ArgumentMatchers.*;
+import static org.mockito.Mockito.*;
@DataJpaTest
@ContextConfiguration(classes = {TestConfiguration.class})
-public class ProcessHelperTest {
+class ProcessHelperTest {
@Autowired
private ProcessHelper processHelper;
@@ -53,8 +58,14 @@
@MockBean
private StatusRepository statusRepository;
+ @MockBean
+ private FailureInformationPublicationChannelRepository channelRepository;
+
+ @MockBean
+ private FailureInformationService failureInformationService;
+
@Test
- public void shouldDetectIfFailureInfoIsPlanned_True() {
+ void shouldDetectIfFailureInfoIsPlanned_True() {
RefFailureClassification fc = MockDataHelper.mockRefFailureClassification();
FailureInformationDto dto = MockDataHelper.mockFailureInformationDto();
dto.setFailureClassificationId(fc.getUuid());
@@ -65,7 +76,7 @@
}
@Test
- public void shouldDetectIfFailureInfoIsPlanned_False() {
+ void shouldDetectIfFailureInfoIsPlanned_False() {
RefFailureClassification fc = MockDataHelper.mockRefFailureClassification();
FailureInformationDto dto = MockDataHelper.mockFailureInformationDto();
dto.setFailureClassificationId(UUID.randomUUID());
@@ -76,7 +87,7 @@
}
@Test
- public void shouldDetectIfFailureInfoIsPlanned_Exception() {
+ void shouldDetectIfFailureInfoIsPlanned_Exception() {
RefFailureClassification fc = MockDataHelper.mockRefFailureClassification();
FailureInformationDto dto = MockDataHelper.mockFailureInformationDto();
when( failureClassificationRepository.findById(anyLong()))
@@ -87,8 +98,45 @@
@Test
- public void shouldGetProcessStateFromStatus_Exception() {
+ void shouldGetProcessStateFromStatus_Exception() {
when( statusRepository.findByUuid(any( UUID.class ))).thenReturn(Optional.empty());
- assertThrows(InternalServerErrorException.class, () -> processHelper.getProcessStateFromStatusUuid(UUID.randomUUID()));
+ final UUID statusUuid = UUID.randomUUID();
+ assertThrows(InternalServerErrorException.class, () -> processHelper.getProcessStateFromStatusUuid(statusUuid));
}
+
+ @Test
+ void shouldResetProcessStateWithException() {
+ FailureInformationDto dto = MockDataHelper.mockFailureInformationDto();
+ when( failureInformationRepository.findByUuid(any( UUID.class ))).thenReturn(Optional.empty());
+
+ assertThrows(NotFoundException.class,
+ () -> processHelper.resetPublishedStateForChannels(dto));
+ }
+
+
+ @Test
+ void shouldResetProcessStateCorrectly() {
+ FailureInformationDto dto = MockDataHelper.mockFailureInformationDto();
+ TblFailureInformation tblFi = MockDataHelper.mockTblFailureInformation();
+ when( failureInformationRepository.findByUuid(any( UUID.class ))).thenReturn(Optional.of(tblFi));
+
+ List<TblFailureInformationPublicationChannel> distChannels = MockDataHelper.mockTblFailureInformationPublicationChannelList();
+ when( channelRepository.findByTblFailureInformation(eq(tblFi) )).thenReturn(distChannels);
+
+ processHelper.resetPublishedStateForChannels(dto);
+
+ verify(channelRepository, times( distChannels.size())).save(any( TblFailureInformationPublicationChannel.class));
+ }
+
+ @Test
+ void shouldGetSubordinatedChildrenCorrectly() {
+ FailureInformationDto parentDto = MockDataHelper.mockFailureInformationDto();
+ List<FailureInformationDto> dtos = MockDataHelper.mockGridFailureInformationDtos();
+ when( failureInformationService.findFailureInformationsByCondensedUuid(eq(parentDto.getUuid()))).thenReturn(dtos);
+
+ List<FailureInformationDto> dtoResults = processHelper.getSubordinatedChildren(parentDto);
+
+ assertEquals(dtos.get(0).getUuid(), dtoResults.get(0).getUuid());
+ }
+
}
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/StoreEditStatusOfParentToChildrenTaskTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/StoreEditStatusOfParentToChildrenTaskTest.java
new file mode 100644
index 0000000..54d42fb
--- /dev/null
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/StoreEditStatusOfParentToChildrenTaskTest.java
@@ -0,0 +1,37 @@
+package org.eclipse.openk.gridfailureinformation.bpmn.impl;
+
+import org.eclipse.openk.gridfailureinformation.bpmn.base.ProcessException;
+import org.eclipse.openk.gridfailureinformation.bpmn.base.ProcessTask;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.ProcessHelper;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.StoreEditStatusOfParentToChildrenTask;
+import org.eclipse.openk.gridfailureinformation.support.MockDataHelper;
+import org.eclipse.openk.gridfailureinformation.viewmodel.FailureInformationDto;
+import org.junit.jupiter.api.Test;
+
+import java.util.List;
+import java.util.UUID;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.*;
+
+class StoreEditStatusOfParentToChildrenTaskTest {
+
+
+ @Test
+ void shouldDecideYes() throws ProcessException {
+ ProcessHelper processHelper = mock(ProcessHelper.class);
+ List<FailureInformationDto> children = MockDataHelper.mockGridFailureInformationDtos();
+ when( processHelper.getSubordinatedChildren( any(FailureInformationDto.class)))
+ .thenReturn(children);
+ when( processHelper.getProcessStateFromStatusUuid(any(UUID.class))).thenReturn(GfiProcessState.UPDATED);
+
+ GfiProcessSubject sub = GfiProcessSubject.of(MockDataHelper.mockFailureInformationDto(), processHelper);
+
+ ProcessTask daTask = new StoreEditStatusOfParentToChildrenTask();
+ daTask.leaveStep(sub);
+
+ verify( processHelper, times( children.size()))
+ .storeEditStatus(any(FailureInformationDto.class), eq(GfiProcessState.UPDATED));
+ }
+
+}