SI-1140 UnitTests
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FailureInformationPublicationChannelDto.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FailureInformationPublicationChannelDto.java index 3a4b1a1..019b4f3 100644 --- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FailureInformationPublicationChannelDto.java +++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FailureInformationPublicationChannelDto.java
@@ -14,6 +14,7 @@ */ package org.eclipse.openk.gridfailureinformation.viewmodel; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import java.io.Serializable; @@ -21,7 +22,7 @@ @Data public class FailureInformationPublicationChannelDto implements Serializable { - + @JsonProperty("id") private UUID failureInformationId; private String publicationChannel; boolean published;
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationControllerTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationControllerTest.java index e6c5506..a3d6137 100644 --- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationControllerTest.java +++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationControllerTest.java
@@ -18,9 +18,11 @@ import org.eclipse.openk.gridfailureinformation.GridFailureInformationApplication; import org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessState; import org.eclipse.openk.gridfailureinformation.exceptions.NotFoundException; +import org.eclipse.openk.gridfailureinformation.model.TblFailureInformationPublicationChannel; import org.eclipse.openk.gridfailureinformation.service.FailureInformationService; import org.eclipse.openk.gridfailureinformation.support.MockDataHelper; import org.eclipse.openk.gridfailureinformation.viewmodel.FailureInformationDto; +import org.eclipse.openk.gridfailureinformation.viewmodel.FailureInformationPublicationChannelDto; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; @@ -170,6 +172,33 @@ .andExpect(status().is2xxSuccessful()); } + + @Test + public void shouldInsertPublicationChannelForFailureInfo() throws Exception { + + FailureInformationPublicationChannelDto publicationChannel = MockDataHelper.mockFailureInformationPublicationChannelDto(); + + when (failureInformationService.insertPublicationChannelForFailureInfo(any(UUID.class),anyString())).thenReturn(publicationChannel); + + mockMvc.perform(post("/grid-failure-informations/{uuid}/channels?publicationChannel=MOCKMAIL", UUID.randomUUID().toString()) + .contentType(MediaType.APPLICATION_JSON) + .content(new ObjectMapper().writeValueAsString(publicationChannel))) + .andExpect(status().is2xxSuccessful()); + } + + @Test + public void shouldDeletePublicationChannelForFailureInfo() throws Exception { + + FailureInformationPublicationChannelDto publicationChannel = MockDataHelper.mockFailureInformationPublicationChannelDto(); + + doNothing().when(failureInformationService).deletePublicationChannelForFailureInfo(any(UUID.class),anyString()); + + mockMvc.perform(delete("/grid-failure-informations/{uuid}/channels?publicationChannel=MOCKMAIL", UUID.randomUUID().toString()) + .contentType(MediaType.APPLICATION_JSON) + .content(new ObjectMapper().writeValueAsString(publicationChannel))) + .andExpect(status().is2xxSuccessful()); + } + @Test public void shouldCondenseFailureInformations() throws Exception { List<UUID> uuidList = new ArrayList<>();
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationServiceTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationServiceTest.java index 4a190cb..e7cfd82 100644 --- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationServiceTest.java +++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationServiceTest.java
@@ -23,7 +23,9 @@ import org.eclipse.openk.gridfailureinformation.repository.*; import org.eclipse.openk.gridfailureinformation.support.MockDataHelper; import org.eclipse.openk.gridfailureinformation.viewmodel.FailureInformationDto; +import org.eclipse.openk.gridfailureinformation.viewmodel.FailureInformationPublicationChannelDto; import org.junit.jupiter.api.Test; +import org.mockito.Mockito; import org.mockito.stubbing.Answer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -39,6 +41,7 @@ import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; +import static org.mockito.Mockito.times; import static org.mockito.Mockito.when; @DataJpaTest @@ -718,4 +721,48 @@ assertThrows(BadRequestException.class, () -> failureInformationService.updateSubordinatedFailureInfos(UUID.randomUUID(), subordinatedFiUuidList)); } + @Test + public void shouldInsertPublicationChannelForFailureInfo(){ + + TblFailureInformation tblFailureInformation = MockDataHelper.mockTblFailureInformation(); + TblFailureInformationPublicationChannel tblChannel = MockDataHelper.mockTblFailureInformationPublicationChannel2(); + + when(failureInformationRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(tblFailureInformation)); + when(failureInformationPublicationChannelRepository.countByTblFailureInformationAndPublicationChannel(any(TblFailureInformation.class), anyString())).thenReturn(0); + when(failureInformationPublicationChannelRepository.save(any(TblFailureInformationPublicationChannel.class))).thenReturn(tblChannel); + + FailureInformationPublicationChannelDto channelDto = failureInformationService.insertPublicationChannelForFailureInfo(tblFailureInformation.getUuid(), tblChannel.getPublicationChannel() ); + + assertEquals(tblChannel.getTblFailureInformation().getUuid(), channelDto.getFailureInformationId()); + assertEquals(tblChannel.getPublicationChannel(), channelDto.getPublicationChannel()); + } + + @Test + public void shouldNotInsertPublicationChannelForFailureInfo_channelAlreadyExisting(){ + + TblFailureInformation tblFailureInformation = MockDataHelper.mockTblFailureInformation(); + TblFailureInformationPublicationChannel tblChannel = MockDataHelper.mockTblFailureInformationPublicationChannel2(); + + when(failureInformationRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(tblFailureInformation)); + when(failureInformationPublicationChannelRepository.countByTblFailureInformationAndPublicationChannel(any(TblFailureInformation.class), anyString())).thenReturn(1); + when(failureInformationPublicationChannelRepository.save(any(TblFailureInformationPublicationChannel.class))).thenReturn(tblChannel); + + assertThrows(BadRequestException.class, () -> failureInformationService.insertPublicationChannelForFailureInfo(tblFailureInformation.getUuid(), tblChannel.getPublicationChannel())); + } + + @Test + public void shouldDeletePublicationChannelForFailureInfo(){ + + TblFailureInformation tblFailureInformation = MockDataHelper.mockTblFailureInformation(); + TblFailureInformationPublicationChannel tblChannel = MockDataHelper.mockTblFailureInformationPublicationChannel2(); + + when(failureInformationRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(tblFailureInformation)); + when(failureInformationPublicationChannelRepository.findByTblFailureInformationAndPublicationChannel(any(TblFailureInformation.class), anyString())).thenReturn(Optional.of(tblChannel)); + + Mockito.doNothing().when(failureInformationPublicationChannelRepository).delete( any(TblFailureInformationPublicationChannel.class)); + failureInformationService.deletePublicationChannelForFailureInfo(tblFailureInformation.getUuid(), tblChannel.getPublicationChannel()); + + Mockito.verify(failureInformationPublicationChannelRepository, times(1)).delete( tblChannel ); + } + }
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/support/MockDataHelper.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/support/MockDataHelper.java index 1361769..0ae9daa 100644 --- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/support/MockDataHelper.java +++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/support/MockDataHelper.java
@@ -1279,6 +1279,14 @@ return tfipChannel; } + public static FailureInformationPublicationChannelDto mockFailureInformationPublicationChannelDto(){ + FailureInformationPublicationChannelDto fipChannelDto = new FailureInformationPublicationChannelDto(); + fipChannelDto.setFailureInformationId(UUID.randomUUID()); + fipChannelDto.setPublicationChannel("MOCKMAIL"); + fipChannelDto.setPublished(false); + return fipChannelDto; + } + public static List<TblFailureInformationPublicationChannel> mockTblFailureInformationPublicationChannelList(){ List<TblFailureInformationPublicationChannel> channelList = new LinkedList<>(); channelList.add(mockTblFailureInformationPublicationChannel());