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());