Merge branch 'DEVELOP' of ssh://git.eclipse.org:29418/openk-usermodules/org.eclipse.openk-usermodules.gridFailureInformation.backend into SI-540-Direkter-Email-Link
# Conflicts:
# gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/SwaggerConfig.java
diff --git a/gfsBackendService/Dockerfile_Branch b/gfsBackendService/Dockerfile_Branch
index 0c2947f..6b742d7 100644
--- a/gfsBackendService/Dockerfile_Branch
+++ b/gfsBackendService/Dockerfile_Branch
@@ -10,4 +10,4 @@
COPY /target/grid-failure-information.backend.service.jar /usr/src/cbd/
WORKDIR usr/src/cbd
-CMD ["java", "-jar", "-Dspring.config.name=application", "-Dspring.profiles.active=devserver-branch,swagger", "grid-failure-information.backend.service.jar"]
\ No newline at end of file
+CMD ["java", "-jar", "-Dspring.config.name=application", "-Dspring.profiles.active=devserver-branch", "grid-failure-information.backend.service.jar"]
\ No newline at end of file
diff --git a/gfsBackendService/Dockerfile_DevServer b/gfsBackendService/Dockerfile_DevServer
index c8f0f0b..71fc8f5 100644
--- a/gfsBackendService/Dockerfile_DevServer
+++ b/gfsBackendService/Dockerfile_DevServer
@@ -10,4 +10,4 @@
COPY /target/grid-failure-information.backend.service.jar /usr/src/cbd/
WORKDIR usr/src/cbd
-CMD ["java", "-jar", "-Dspring.profiles.active=devserver,swagger", "grid-failure-information.backend.service.jar"]
\ No newline at end of file
+CMD ["java", "-jar", "-Dspring.profiles.active=devserver", "grid-failure-information.backend.service.jar"]
\ No newline at end of file
diff --git a/gfsBackendService/Dockerfile_DevServerUnsecure b/gfsBackendService/Dockerfile_DevServerUnsecure
index 78bb50d..0db171e 100644
--- a/gfsBackendService/Dockerfile_DevServerUnsecure
+++ b/gfsBackendService/Dockerfile_DevServerUnsecure
@@ -10,4 +10,4 @@
COPY /target/grid-failure-information.backend.service.jar /usr/src/cbd/
WORKDIR usr/src/cbd
-CMD ["java", "-jar", "-Dspring.profiles.active=devserver-unsecure,swagger", "grid-failure-information.backend.service.jar"]
\ No newline at end of file
+CMD ["java", "-jar", "-Dspring.profiles.active=devserver-unsecure", "grid-failure-information.backend.service.jar"]
\ No newline at end of file
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/GfiGrid.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/GfiGrid.java
index 610d505..3fb2a3d 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/GfiGrid.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/GfiGrid.java
@@ -24,8 +24,7 @@
import org.eclipse.openk.gridfailureinformation.constants.Constants;
import org.springframework.stereotype.Component;
-import static org.eclipse.openk.gridfailureinformation.bpmn.base.tasks.DecisionTask.OutputPort.NO;
-import static org.eclipse.openk.gridfailureinformation.bpmn.base.tasks.DecisionTask.OutputPort.YES;
+import static org.eclipse.openk.gridfailureinformation.bpmn.base.tasks.DecisionTask.OutputPort.*;
import static org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessState.*;
@Log4j2
@@ -52,6 +51,9 @@
ProcessTask canceledEndpoint = register( CANCELED,
new UIStoreFailureInformationTask( "State CANCELED UI Task", true));
+
+ DecisionTask decidePublished = new DecideFailureInfoPublished();
+ ProcessTask storePubStatusWithdrawnOnCancel = new StorePublishStatusTask(Constants.PUB_STATUS_ZURUECKGEZOGEN);
ProcessTask publishMessage = register( QUALIFIED,
new UIStoreFailureInformationTask( "State QUALIFIED UI Task", true));
@@ -80,7 +82,6 @@
enterMessage.connectOutputTo( storeEditStatusCreated );
// -> nein
storeEditStatusCreated.connectOutputTo( qualifyMessage );
- // TODO Beabreitungsstatus: aktualisiert berücksichtigen: Zweig: Meldung aktualisieren
qualifyMessage.connectOutputTo(decideCanceled);
//Meldung storniert?
decideCanceled.connectOutputTo( YES, storeEditStatusCanceled ); //Status nicht speichern da sonst doppelt, -> nächster Porzessschritt
@@ -88,12 +89,17 @@
storeEditStatusQualified.connectOutputTo(publishMessage);
publishMessage.connectOutputTo(decideUpdated);
- decideUpdated.connectOutputTo(YES, storeEditStatusUpdated);
- //decideUpdated.connectOutputTo(NO, completedEndpoint);
- decideUpdated.connectOutputTo(NO, setEndDate);
+ decideUpdated.connectOutputTo(PORT1, storeEditStatusUpdated);
+ decideUpdated.connectOutputTo(PORT2, setEndDate);
+ decideUpdated.connectOutputTo(PORT3, storeEditStatusCanceled);
setEndDate.connectOutputTo(storePublicationStatusWithdrawn);
storePublicationStatusWithdrawn.connectOutputTo(completedEndpoint);
+ storeEditStatusCanceled.connectOutputTo(decidePublished);
+ decidePublished.connectOutputTo( YES, storePubStatusWithdrawnOnCancel);
+ decidePublished.connectOutputTo( NO, canceledEndpoint);
+ storePubStatusWithdrawnOnCancel.connectOutputTo( canceledEndpoint );
+
storeForceEditStatusQualified.connectOutputTo(publishMessageToChannels);
publishMessageToChannels.connectOutputTo(storePublicationStatusPublished);
storePublicationStatusPublished.connectOutputTo(updateMessage);
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/DecideFailureInfoPublished.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/DecideFailureInfoPublished.java
new file mode 100644
index 0000000..fe76268
--- /dev/null
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/DecideFailureInfoPublished.java
@@ -0,0 +1,48 @@
+/*
+ *******************************************************************************
+ * Copyright (c) 2018 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************
+ */
+
+package org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks;
+
+import lombok.extern.log4j.Log4j2;
+import org.eclipse.openk.gridfailureinformation.bpmn.base.ProcessException;
+import org.eclipse.openk.gridfailureinformation.bpmn.base.tasks.DecisionTask;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessSubject;
+import org.eclipse.openk.gridfailureinformation.constants.Constants;
+
+@Log4j2
+public class DecideFailureInfoPublished extends DecisionTask<GfiProcessSubject> {
+
+ public DecideFailureInfoPublished() {
+ super("Decision: Ist die Störungsinformation veröffentlicht?");
+ }
+
+ @Override
+ public OutputPort decide(GfiProcessSubject subject) throws ProcessException {
+ boolean isPublished = Constants.PUB_STATUS_VEROEFFENTLICHT.equals(
+ subject.getFailureInformationDto().getPublicationStatus()
+ );
+
+ String loggerOutput1 = "Decide: ";
+
+ if (isPublished) {
+ log.debug(loggerOutput1 + getDescription() + "\" -> Firing YES");
+ return OutputPort.YES;
+ } else {
+ log.debug(loggerOutput1 + getDescription() + "\" -> Firing NO");
+ return OutputPort.NO;
+ }
+ }
+
+}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/DecideFailureInfoUpdated.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/DecideFailureInfoUpdated.java
index 11538aa..00f03df 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/DecideFailureInfoUpdated.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/DecideFailureInfoUpdated.java
@@ -38,12 +38,18 @@
String loggerOutput1 = "Decide: ";
if (newState == GfiProcessState.UPDATED) {
- log.debug(loggerOutput1 + getDescription() + "\" -> Firing YES");
- return OutputPort.YES;
- } else if (newState == GfiProcessState.COMPLETED) {
- log.debug(loggerOutput1 + getDescription() + "\" -> Firing NO");
- return OutputPort.NO;
- } else {
+ log.debug(loggerOutput1 + getDescription() + "\" -> Firing PORT1");
+ return OutputPort.PORT1;
+ }
+ else if (newState == GfiProcessState.COMPLETED) {
+ log.debug(loggerOutput1 + getDescription() + "\" -> Firing PORT2");
+ return OutputPort.PORT2;
+ }
+ else if (newState == GfiProcessState.CANCELED) {
+ log.debug(( loggerOutput1 + getDescription() + "\" -> Firing PORT3"));
+ return OutputPort.PORT3;
+ }
+ else {
throw new ProcessException(this.getDescription() + ": Invalid status request:" + newState,
new InternalServerErrorException("invalid.status.request"));
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/ProcessHelper.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/ProcessHelper.java
index 3e8635e..5c07b80 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/ProcessHelper.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/ProcessHelper.java
@@ -78,7 +78,11 @@
public void resetPublishedStateForChannels( FailureInformationDto dto ) {
TblFailureInformation tblFailureInformation = environment.getFailureInformationRepository().findByUuid(dto.getUuid())
.orElseThrow(() -> new NotFoundException("failure.information.not.found"));
- tblFailureInformation.getPublicationChannelList().forEach(x -> {
+
+ List<TblFailureInformationPublicationChannel> channelList = environment.getChannelRepository().findByTblFailureInformation(tblFailureInformation);
+
+// tblFailureInformation.getPublicationChannelList().forEach(x -> {
+ channelList.forEach(x -> {
x.setPublished(false);
environment.getChannelRepository().save(x);
});
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/SwaggerConfig.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/SwaggerConfig.java
index 6c4fb54..fa4d1d0 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/SwaggerConfig.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/SwaggerConfig.java
@@ -15,7 +15,7 @@
@Log4j2
@Configuration
@EnableSwagger2
-@Profile({"swagger"})
+@Profile({"!test","!prod"})
public class SwaggerConfig {
@Value("${swagger.baseUrl:}")
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationController.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationController.java
index 744da26..a65c98a 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationController.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationController.java
@@ -182,4 +182,16 @@
failureInformationService.deletePublicationChannelForFailureInfo(failureInfoUuid, publicationChannel);
}
+ @GetMapping("/{failureInfoUuid}/channels")
+ @ApiOperation(value = "Holen Veröffentlichungs-Kanälen für eine Störungsinfo")
+ @ApiResponses(value = { @ApiResponse(code = 200, message = "Erfolgreich durchgeführt"),
+ @ApiResponse(code = 404, message = "Störungsinformationen wurden nicht gefunden")})
+ @ResponseStatus(HttpStatus.OK)
+ @Secured({"ROLE_GRID-FAILURE-ADMIN", "ROLE_GRID-FAILURE-CREATOR", "ROLE_GRID-FAILURE-QUALIFIER", "ROLE_GRID-FAILURE-PUBLISHER"})
+ public List<FailureInformationPublicationChannelDto> getChannelsForFailureInfo(
+ @ApiParam(name="failureInfoUuid", value= "UUID der Störungsinfo", required = true)
+ @PathVariable UUID failureInfoUuid) {
+ return failureInformationService.getPublicationChannelsForFailureInfo(failureInfoUuid);
+ }
+
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/FailureInformationMapper.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/FailureInformationMapper.java
index 4290e55..cc1db84 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/FailureInformationMapper.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/FailureInformationMapper.java
@@ -78,10 +78,10 @@
failureInformationDto.setStationIds( stations != null ? stations.stream().map(TblStation::getUuid).collect(Collectors.toList()) : new LinkedList<>());
}
- @AfterMapping
- default void populatePublicationChannels(TblFailureInformation source, @MappingTarget FailureInformationDto failureInformationDto){
- Set<TblFailureInformationPublicationChannel> channels = source.getPublicationChannelList();
-
- failureInformationDto.setPublicationChannels( channels != null ? channels.stream().map(TblFailureInformationPublicationChannel::getPublicationChannel).collect(Collectors.toList()) : new LinkedList<>());
- }
+// @AfterMapping
+// default void populatePublicationChannels(TblFailureInformation source, @MappingTarget FailureInformationDto failureInformationDto){
+// Set<TblFailureInformationPublicationChannel> channels = source.getPublicationChannelList();
+//
+// failureInformationDto.setPublicationChannels( channels != null ? channels.stream().map(TblFailureInformationPublicationChannel::getPublicationChannel).collect(Collectors.toList()) : new LinkedList<>());
+// }
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/TblFailureInformation.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/TblFailureInformation.java
index 47e719c..c6a94ce 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/TblFailureInformation.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/TblFailureInformation.java
@@ -142,7 +142,4 @@
@OneToOne(mappedBy = "tblFailureInformation")
private TblFailureInformationReminderMailSent failureInformationReminderMailSent;
- @OneToMany(fetch = FetchType.EAGER, cascade=CascadeType.ALL, mappedBy="tblFailureInformation", orphanRemoval = true)
- private Set<TblFailureInformationPublicationChannel> publicationChannelList = new HashSet<>();
-
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ExportService.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ExportService.java
index 27b45cc..aae6f5b 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ExportService.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ExportService.java
@@ -55,10 +55,10 @@
@Lazy
@Autowired
- RabbitMqConfig rabbitMqConfig;
+ private RabbitMqConfig rabbitMqConfig;
@Autowired
- ProcessHelper processHelper;
+ private ProcessHelper processHelper;
@Autowired
private RabbitMqProperties rabbitMqProperties;
@@ -67,13 +67,13 @@
private org.springframework.amqp.rabbit.core.RabbitTemplate rabbitTemplate;
@Autowired
- FailureInformationService failureInformationService;
+ private FailureInformationService failureInformationService;
@Autowired
- DistributionGroupMemberService distributionGroupMemberService;
+ private DistributionGroupMemberService distributionGroupMemberService;
@Autowired
- FailureInformationMapper failureInformationMapper;
+ private FailureInformationMapper failureInformationMapper;
@Autowired
private FailureInformationRepository failureInformationRepository;
@@ -147,7 +147,6 @@
}
-
}
return countExportedMessages > 0;
@@ -182,11 +181,14 @@
}
private boolean isChannelAlreadyPublished(String targetChannel, TblFailureInformation existingTblFailureInfo) {
- if( existingTblFailureInfo.getPublicationChannelList() == null ) {
+
+ List<TblFailureInformationPublicationChannel> publicationChannelList = publicationChannelRepository.findByTblFailureInformation(existingTblFailureInfo);
+
+ if( publicationChannelList == null ) {
return true;
}
Optional<TblFailureInformationPublicationChannel> tf =
- existingTblFailureInfo.getPublicationChannelList().stream()
+ publicationChannelList.stream()
.filter( x -> x.getPublicationChannel().equals(targetChannel) )
.findFirst();
@@ -204,7 +206,10 @@
}
private void markChannelAsPublished(String targetChannel, TblFailureInformation existingTblFailureInfo) {
- Optional<TblFailureInformationPublicationChannel> pubChannelToSave = existingTblFailureInfo.getPublicationChannelList().stream()
+
+ List<TblFailureInformationPublicationChannel> publicationChannelList = publicationChannelRepository.findByTblFailureInformation(existingTblFailureInfo);
+
+ Optional<TblFailureInformationPublicationChannel> pubChannelToSave = publicationChannelList.stream()
.filter( x->x.getPublicationChannel().equals(targetChannel))
.findFirst();
@@ -320,11 +325,6 @@
contentReplaceMap.put(placeholderDto.getStatusIntern(), statusIntern.getStatus());
}
-// RefStatus statusExtern = tblFailureInfo.getRefStatusExtern();
-// if (statusExtern != null) {
-// contentReplaceMap.put(placeholderDto.getStatusExtern(), statusExtern.getStatus());
-// }
-
String publicationStatus = tblFailureInfo.getPublicationStatus();
if (publicationStatus != null) {
contentReplaceMap.put(placeholderDto.getPublicationStatus(), publicationStatus);
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationService.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationService.java
index 86ebf64..39800ff 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationService.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationService.java
@@ -235,21 +235,21 @@
resolveExpectedReason(destTblFailureInformation, sourceDto);
resolveCondensed(destTblFailureInformation, sourceDto);
- if( destTblFailureInformation.getId() != null ) { // not when inserting
- resolvePublicationChannels(destTblFailureInformation);
- }
+// if( destTblFailureInformation.getId() != null ) { // not when inserting
+// resolvePublicationChannels(destTblFailureInformation);
+// }
resolveStationIds(destTblFailureInformation, sourceDto);
resolveDistributionGroups(destTblFailureInformation, sourceDto);
}
- private void resolvePublicationChannels(TblFailureInformation destTblFailureInformation) {
-
- List<TblFailureInformationPublicationChannel> channelList = failureInformationPublicationChannelRepository.findByTblFailureInformation(destTblFailureInformation);
-
- if(!channelList.isEmpty()){
- destTblFailureInformation.setPublicationChannelList(Sets.newHashSet(channelList));
- }
- }
+// private void resolvePublicationChannels(TblFailureInformation destTblFailureInformation) {
+//
+// List<TblFailureInformationPublicationChannel> channelList = failureInformationPublicationChannelRepository.findByTblFailureInformation(destTblFailureInformation);
+//
+// if(!channelList.isEmpty()){
+// destTblFailureInformation.setPublicationChannelList(Sets.newHashSet(channelList));
+// }
+// }
private void resolveDistributionGroups(TblFailureInformation destTblFailureInformation, FailureInformationDto sourceDto) {
if( sourceDto.getDistributionGroupUuids() != null ) {
@@ -348,35 +348,35 @@
}
}
- protected void updatePublicationChannels(FailureInformationDto sourceDto, TblFailureInformation destTblFailureInformation ){
-
- // Löschen zugeordneter Kanäle mit published = false
- TblFailureInformation existingTblFailureInformation = failureInformationRepository.findByUuid(sourceDto.getUuid())
- .orElseThrow(() -> new NotFoundException(Constants.FAILURE_INFO_UUID_NOT_EXISTING));
-
- Set<TblFailureInformationPublicationChannel> existingChannels =
- existingTblFailureInformation.getPublicationChannelList();
-
- List<TblFailureInformationPublicationChannel>filteredList = existingChannels.stream().filter(x -> !x.isPublished()).collect(Collectors.toList());
-
- for(TblFailureInformationPublicationChannel channel: filteredList){
- existingChannels.remove(channel);
- }
-
- //Hinzufügen zugeordneter Kanäle in der Zuordnungstabelle mit published= false (check, damit kein Kanal doppelt)
- List<String> newChannelList = sourceDto.getPublicationChannels();
- for(String newChannel: newChannelList){
- if(existingChannels.stream().filter(x->x.getPublicationChannel().equals(newChannel)).count() == 0){
- TblFailureInformationPublicationChannel tblFailureInformationPublicationChannel = new TblFailureInformationPublicationChannel();
- tblFailureInformationPublicationChannel.setTblFailureInformation(existingTblFailureInformation);
- tblFailureInformationPublicationChannel.setPublicationChannel(newChannel);
- tblFailureInformationPublicationChannel.setPublished(false);
-
- existingChannels.add(tblFailureInformationPublicationChannel);
- }
- }
- destTblFailureInformation.setPublicationChannelList(existingChannels);
- }
+// protected void updatePublicationChannels(FailureInformationDto sourceDto, TblFailureInformation destTblFailureInformation ){
+//
+// // Löschen zugeordneter Kanäle mit published = false
+// TblFailureInformation existingTblFailureInformation = failureInformationRepository.findByUuid(sourceDto.getUuid())
+// .orElseThrow(() -> new NotFoundException(Constants.FAILURE_INFO_UUID_NOT_EXISTING));
+//
+// Set<TblFailureInformationPublicationChannel> existingChannels =
+// existingTblFailureInformation.getPublicationChannelList();
+//
+// List<TblFailureInformationPublicationChannel>filteredList = existingChannels.stream().filter(x -> !x.isPublished()).collect(Collectors.toList());
+//
+// for(TblFailureInformationPublicationChannel channel: filteredList){
+// existingChannels.remove(channel);
+// }
+//
+// //Hinzufügen zugeordneter Kanäle in der Zuordnungstabelle mit published= false (check, damit kein Kanal doppelt)
+// List<String> newChannelList = sourceDto.getPublicationChannels();
+// for(String newChannel: newChannelList){
+// if(existingChannels.stream().filter(x->x.getPublicationChannel().equals(newChannel)).count() == 0){
+// TblFailureInformationPublicationChannel tblFailureInformationPublicationChannel = new TblFailureInformationPublicationChannel();
+// tblFailureInformationPublicationChannel.setTblFailureInformation(existingTblFailureInformation);
+// tblFailureInformationPublicationChannel.setPublicationChannel(newChannel);
+// tblFailureInformationPublicationChannel.setPublished(false);
+//
+// existingChannels.add(tblFailureInformationPublicationChannel);
+// }
+// }
+// destTblFailureInformation.setPublicationChannelList(existingChannels);
+// }
private void setVersionNumber(TblFailureInformation tblFailureInformation){
List<HtblFailureInformation> hfailureList = histFailureInformationRepository.findByUuid(tblFailureInformation.getUuid());
@@ -776,4 +776,21 @@
}
+
+ public List<FailureInformationPublicationChannelDto> getPublicationChannelsForFailureInfo(UUID failureInfoUuid){
+
+ TblFailureInformation existingTblFailureInformation = failureInformationRepository
+ .findByUuid(failureInfoUuid)
+ .orElseThrow(() -> new NotFoundException(Constants.FAILURE_INFO_UUID_NOT_EXISTING));
+
+ List<TblFailureInformationPublicationChannel> publicationChannels = failureInformationPublicationChannelRepository
+ .findByTblFailureInformation(existingTblFailureInformation);
+
+ return publicationChannels
+ .stream()
+ .map(x -> failureInformationPublicationChannelMapper.toFailureInformationPublicationChannelDto(x))
+ .collect(Collectors.toList());
+
+ }
+
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FailureInformationDto.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FailureInformationDto.java
index 9a982b5..d01e87d 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FailureInformationDto.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FailureInformationDto.java
@@ -103,6 +103,6 @@
private List<UUID> stationIds;
- private List<String> publicationChannels;
+ //private List<String> publicationChannels;
}
diff --git a/gfsBackendService/src/main/resources/application.yml b/gfsBackendService/src/main/resources/application.yml
index 7c2e7c4..43020f3 100644
--- a/gfsBackendService/src/main/resources/application.yml
+++ b/gfsBackendService/src/main/resources/application.yml
@@ -212,6 +212,22 @@
spring:
profiles: devserver-branch
+ rabbitmq:
+ # Importkanal
+ importExchange: sitImportExchange_branch
+ importQueue: sitImportQueue_branch
+ importkey: sitImportExchange.failureImportKey
+
+ # Exportkanäle
+ exportExchange: sitExportExchange_branch
+ channels:
+ - name: Mail
+ exportQueue: sit_mail_export_queue_branch
+ exportKey: sit_mail_export_key
+ isMailType: true
+ - name: Störungsauskunft.de
+ exportQueue: sit_stoerungsauskunft_export_queue_branch
+ exportKey: sit_stoerungsauskunft_export_key
logging:
level:
diff --git a/gfsBackendService/src/main/resources/db/migration/V0_34__CREATE_GFI_DB.sql b/gfsBackendService/src/main/resources/db/migration/V0_34__CREATE_GFI_DB.sql
index fde107a..08abc4e 100644
--- a/gfsBackendService/src/main/resources/db/migration/V0_34__CREATE_GFI_DB.sql
+++ b/gfsBackendService/src/main/resources/db/migration/V0_34__CREATE_GFI_DB.sql
@@ -50,6 +50,12 @@
DROP TABLE IF EXISTS public.TBL_FAILURE_INFORMATION_DISTRIBUTION_GROUP CASCADE;
DROP SEQUENCE IF EXISTS public.TBL_FAILURE_INFORMATION_DISTRIBUTION_GROUP_ID_SEQ;
+DROP TABLE IF EXISTS public.TBL_FAILURE_INFORMATION_STATION CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_FAILURE_INFORMATION_STATION_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_FAILURE_INFORMATION_REMINDER_MAIL_SENT CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_FAILURE_INFORMATION_REMINDER_MAIL_SENT_ID_SEQ;
+
DROP TABLE IF EXISTS public.TBL_FAILURE_INFORMATION_PUBLICATION_CHANNEL;
DROP SEQUENCE IF EXISTS public.TBL_FAILURE_INFORMATION_PUBLICATION_CHANNEL_SEQ;
@@ -393,7 +399,7 @@
Ihre Admin-Meister-Team der PTA GmbH');
INSERT INTO public.tbl_distribution_group(UUID, NAME, DISTRIBUTION_TEXT)
-VALUES('5f502046-887a-11ea-bc55-0242ac130003', 'Verteiler fachlich - intern', 'Subject: Die Meldung $Title$ mit Beginn: $FailureBegin$ wurde in den Status veröffentlicht geändert.
+VALUES('5f502046-887a-11ea-bc55-0242ac130003', 'Verteiler fachlich - intern', 'Subject: Die Störmeldung mit Beginn: $Störungsbeginn_gemeldet$ und dem Voraussichtlicher Grund: $Voraussichtlicher_Grund$" wurde in den Status veröffentlicht geändert.
Body:
Verteiler fachlich TEST
@@ -493,6 +499,68 @@
INSERT INTO public.tbl_failure_information_distribution_group(FK_TBL_FAILURE_INFORMATION, FK_TBL_DISTRIBUTION_GROUP)
VALUES(2, 2);
+-- ---------------------------------------------
+-- TABLE TBL_FAILURE_INFORMATION_STATION
+-- ---------------------------------------------
+CREATE SEQUENCE public.tbl_failure_information_station_id_seq
+ INCREMENT 1
+ MINVALUE 1
+ MAXVALUE 9223372036854775807
+ START 1
+ CACHE 1;
+ALTER TABLE public.tbl_failure_information_station_id_seq
+ OWNER TO gfi_service;
+
+CREATE TABLE public.tbl_failure_information_station
+(
+ id integer NOT NULL DEFAULT nextval('tbl_failure_information_station_id_seq'::regclass),
+ fk_tbl_failure_information integer NOT NULL,
+ station_station_id character varying(30) NOT NULL,
+ CONSTRAINT tbl_failure_information_station_pkey PRIMARY KEY (id),
+ CONSTRAINT tbl_fail_inf_station__failure_information_id_fkey FOREIGN KEY (fk_tbl_failure_information)
+ REFERENCES public.tbl_failure_information (id) MATCH SIMPLE
+ ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+ OIDS=FALSE
+);
+ALTER TABLE public.tbl_failure_information_station
+ OWNER TO gfi_service;
+GRANT ALL ON TABLE public.tbl_failure_information_station TO gfi_service;
+
+-- ---------------------------------------------
+-- TABLE TBL_FAILURE_INFORMATION_REMINDER_MAIL_SENT
+-- ---------------------------------------------
+CREATE SEQUENCE public.tbl_failure_information_reminder_mail_sent_id_seq
+ INCREMENT 1
+ MINVALUE 1
+ MAXVALUE 9223372036854775807
+ START 1
+ CACHE 1;
+ALTER TABLE public.tbl_failure_information_reminder_mail_sent_id_seq
+ OWNER TO gfi_service;
+
+CREATE TABLE public.tbl_failure_information_reminder_mail_sent
+(
+ id integer NOT NULL DEFAULT nextval('tbl_failure_information_reminder_mail_sent_id_seq'::regclass),
+ fk_tbl_failure_information integer NOT NULL,
+ mail_sent BOOLEAN NOT NULL,
+ date_mail_sent TIMESTAMP NOT NULL,
+ CONSTRAINT tbl_failure_information_reminder_mail_sent_pkey PRIMARY KEY (id),
+ CONSTRAINT tbl_fail_inf_reminder_mail_sent__failure_information_id_fkey FOREIGN KEY (fk_tbl_failure_information)
+ REFERENCES public.tbl_failure_information (id) MATCH SIMPLE
+ ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+ OIDS=FALSE
+);
+ALTER TABLE public.tbl_failure_information_reminder_mail_sent
+ OWNER TO gfi_service;
+GRANT ALL ON TABLE public.tbl_failure_information_reminder_mail_sent TO gfi_service;
+
+INSERT INTO public.tbl_failure_information_reminder_mail_sent(FK_TBL_FAILURE_INFORMATION, MAIL_SENT, DATE_MAIL_SENT)
+VALUES(1, true, '2020-05-31 23:30:00');
+
-- ---------------------------------------------
-- TABLE TBL_FAILURE_INFORMATION_PUBLICATION_CHANNEL
@@ -527,9 +595,6 @@
INSERT INTO public.tbl_failure_information_publication_channel(FK_TBL_FAILURE_INFORMATION, PUBLICATION_CHANNEL, PUBLISHED)
VALUES(1, 'MAIL', false);
-
-
-
-- ----------------------------------------------------------------------------
-- ----------------------------------------------------------------------------
-- HISTORY-TABLES
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/DecideFailureInfoPublishedTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/DecideFailureInfoPublishedTest.java
new file mode 100644
index 0000000..3fe3eb5
--- /dev/null
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/DecideFailureInfoPublishedTest.java
@@ -0,0 +1,28 @@
+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.DecideFailureInfoPublished;
+import org.eclipse.openk.gridfailureinformation.constants.Constants;
+import org.eclipse.openk.gridfailureinformation.support.MockDataHelper;
+import org.eclipse.openk.gridfailureinformation.viewmodel.FailureInformationDto;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class DecideFailureInfoPublishedTest {
+
+
+ @Test
+ public void shouldDecideCorrectly() throws ProcessException {
+ FailureInformationDto fiDto = MockDataHelper.mockFailureInformationDto();
+ fiDto.setPublicationStatus(Constants.PUB_STATUS_VEROEFFENTLICHT);
+ GfiProcessSubject sub = GfiProcessSubject.of(fiDto, null);
+ DecisionTask dtask = new DecideFailureInfoPublished();
+ assertEquals(DecisionTask.OutputPort.YES, dtask.decide(sub));
+
+ sub.getFailureInformationDto().setPublicationStatus(Constants.PUB_STATUS_UNVEROEFFENTLICHT);
+ assertEquals(DecisionTask.OutputPort.NO, dtask.decide(sub));
+ }
+
+}
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 9cb2b55..31955c3 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
@@ -163,7 +163,6 @@
.andExpect(jsonPath("$.failureClassification", is(failureInfoDto.getFailureClassification())))
.andExpect(jsonPath("$.failureTypeId", is(failureInfoDto.getFailureTypeId().toString())))
.andExpect(jsonPath("$.statusInternId", is(failureInfoDto.getStatusInternId().toString())))
-// .andExpect(jsonPath("$.statusExternId", is(failureInfoDto.getStatusExternId().toString())))
.andExpect(jsonPath("$.branchId", is(failureInfoDto.getBranchId().toString())))
.andExpect(jsonPath("$.branch", is(failureInfoDto.getBranch())))
.andExpect(jsonPath("$.branchColorCode", is(failureInfoDto.getBranchColorCode())))
@@ -226,4 +225,15 @@
.andExpect(content().contentType(MediaType.APPLICATION_JSON));
}
+ @Test
+ public void shouldFindChannelsByFailureUuid() throws Exception{
+
+ List<FailureInformationPublicationChannelDto> fipChannelList = MockDataHelper.mockFailureInformationPublicationChanneDtolList();
+ when (failureInformationService.getPublicationChannelsForFailureInfo(any(UUID.class))).thenReturn(fipChannelList);
+
+ mockMvc.perform(get("/grid-failure-informations/{uuid}/channels", UUID.randomUUID().toString()))
+ .andExpect(status().is2xxSuccessful())
+ .andExpect(content().contentType(MediaType.APPLICATION_JSON));
+ }
+
}
\ No newline at end of file
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 96d3550..1d24422 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
@@ -17,6 +17,7 @@
import lombok.extern.log4j.Log4j2;
import org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessState;
import org.eclipse.openk.gridfailureinformation.config.TestConfiguration;
+import org.eclipse.openk.gridfailureinformation.constants.Constants;
import org.eclipse.openk.gridfailureinformation.exceptions.BadRequestException;
import org.eclipse.openk.gridfailureinformation.exceptions.NotFoundException;
import org.eclipse.openk.gridfailureinformation.exceptions.OperationDeniedException;
@@ -238,62 +239,6 @@
}
@Test
- public void shouldUpdateFailureInformation_updateChannels1() {
-
- FailureInformationDto fiDto = MockDataHelper.mockFailureInformationDto();
- LinkedList<String> channelList = new LinkedList<String>();
- channelList.add("MOCKXX"); //neuer Channel entspricht keinem bereits existierendem Channel
- channelList.add("MOCKYY"); //neuer Channel entspricht keinem bereits existierendem Channel
- fiDto.setPublicationChannels(channelList);
-
- TblFailureInformation tblFi = MockDataHelper.mockTblFailureInformation();
- TblFailureInformation existingTblFi = MockDataHelper.mockTblFailureInformation();
-
- TblFailureInformationPublicationChannel tblFailureInformationPublicationChannel1 = MockDataHelper.mockTblFailureInformationPublicationChannel();
- TblFailureInformationPublicationChannel tblFailureInformationPublicationChannel2 = MockDataHelper.mockTblFailureInformationPublicationChannel2();
-
- Set<TblFailureInformationPublicationChannel> rmqChannels = new HashSet<>();
- rmqChannels.add(tblFailureInformationPublicationChannel1);
- rmqChannels.add(tblFailureInformationPublicationChannel2);
- existingTblFi.setPublicationChannelList(rmqChannels);
-
- when( failureInformationRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(existingTblFi));
-
- failureInformationService.updatePublicationChannels(fiDto, tblFi);
-
- assertEquals(4, tblFi.getPublicationChannelList().size()); //zu den zwei bereits existierenden Channels kommen zwei weitere hinzu
-
- }
-
- @Test
- public void shouldUpdateFailureInformation_updateChannels2() {
-
- FailureInformationDto fiDto = MockDataHelper.mockFailureInformationDto();
- LinkedList<String> channelList = new LinkedList<String>();
- channelList.add("MOCKMAIL"); // neuer Channel entspricht einem bereits existierendem Channel
- channelList.add("MOCKSMS"); // neuer Channel entspricht einem bereits existierendem Channel
- fiDto.setPublicationChannels(channelList);
-
- TblFailureInformation tblFi = MockDataHelper.mockTblFailureInformation();
- TblFailureInformation existingTblFi = MockDataHelper.mockTblFailureInformation();
-
- TblFailureInformationPublicationChannel tblFailureInformationPublicationChannel1 = MockDataHelper.mockTblFailureInformationPublicationChannel();
- TblFailureInformationPublicationChannel tblFailureInformationPublicationChannel2 = MockDataHelper.mockTblFailureInformationPublicationChannel2();
-
- Set<TblFailureInformationPublicationChannel> rmqChannels = new HashSet<>();
- rmqChannels.add(tblFailureInformationPublicationChannel1);
- rmqChannels.add(tblFailureInformationPublicationChannel2);
- existingTblFi.setPublicationChannelList(rmqChannels);
-
- when( failureInformationRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(existingTblFi));
-
- failureInformationService.updatePublicationChannels(fiDto, tblFi);
-
- assertEquals(2, tblFi.getPublicationChannelList().size()); //es bleibt bei den bereits existierenden 2 Channels
-
- }
-
- @Test
public void shouldNotStoreFailureInformation_Exception_FailureInformationNotFound() {
FailureInformationDto fiDto = MockDataHelper.mockFailureInformationDto();
RefFailureClassification refFailureClassification = MockDataHelper.mockRefFailureClassification();
@@ -314,7 +259,6 @@
});
assertThrows(NotFoundException.class, () -> failureInformationService.storeFailureInfo(fiDto, GfiProcessState.NEW));
-
}
@Test
@@ -615,7 +559,6 @@
try {
java.util.Date date1 = dateformat.parse("01/01/2020");
java.util.Date date2 = dateformat.parse("24/12/2024");
- //java.util.Date date3 = dateformat.parse("02/09/2022");
// set first startdate and last enddate
tblFailureInformation1.setFailureBegin(date1);
@@ -624,8 +567,6 @@
}
-
-
List<TblFailureInformation> listFailureInfos = new ArrayList();
listFailureInfos.add(tblFailureInformation1);
listFailureInfos.add(tblFailureInformation2);
@@ -675,7 +616,6 @@
assertEquals( fiDtoList.size(), fiMockList.size() );
assertEquals( fiDtoList.get(0).getResponsibility(), fiMockList .get(0).getResponsibility());
-
}
@Test
@@ -766,4 +706,20 @@
Mockito.verify(failureInformationPublicationChannelRepository, times(1)).delete( tblChannel );
}
+ @Test
+ public void shouldReturnFailureInfoPublicationChannels(){
+
+ TblFailureInformation tblFailureInformation = MockDataHelper.mockTblFailureInformation();
+ List<TblFailureInformationPublicationChannel> fipChannelList = MockDataHelper.mockTblFailureInformationPublicationChannelList();
+
+ when(failureInformationRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(tblFailureInformation));
+ when(failureInformationPublicationChannelRepository.findByTblFailureInformation(any(TblFailureInformation.class))).thenReturn(fipChannelList);
+
+ List<FailureInformationPublicationChannelDto> fipChannelDtoList = failureInformationService.getPublicationChannelsForFailureInfo(UUID.randomUUID());
+
+ assertEquals( fipChannelDtoList.size(), fipChannelList.size() );
+ assertEquals( fipChannelDtoList.get(0).getPublicationChannel(), fipChannelList .get(0).getPublicationChannel());
+
+ }
+
}
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 2956b45..cf2e258 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
@@ -1328,6 +1328,14 @@
return fipChannelDto;
}
+ public static FailureInformationPublicationChannelDto mockFailureInformationPublicationChannelDto2(){
+ FailureInformationPublicationChannelDto fipChannelDto = new FailureInformationPublicationChannelDto();
+ fipChannelDto.setFailureInformationId(UUID.randomUUID());
+ fipChannelDto.setPublicationChannel("MOCKCHANNEL");
+ fipChannelDto.setPublished(true);
+ return fipChannelDto;
+ }
+
public static List<TblFailureInformationPublicationChannel> mockTblFailureInformationPublicationChannelList(){
List<TblFailureInformationPublicationChannel> channelList = new LinkedList<>();
channelList.add(mockTblFailureInformationPublicationChannel());
@@ -1336,6 +1344,16 @@
return channelList;
}
+ public static List<FailureInformationPublicationChannelDto> mockFailureInformationPublicationChanneDtolList(){
+ List<FailureInformationPublicationChannelDto> channelList = new LinkedList<>();
+ channelList.add(mockFailureInformationPublicationChannelDto());
+ channelList.add(mockFailureInformationPublicationChannelDto2());
+
+ return channelList;
+ }
+
+
+
public static List<ArrayList<BigDecimal>> mockPolygonCoordinatesList(){
List<ArrayList<BigDecimal>> cordinatesList = new LinkedList<>();
diff --git a/mailExport/src/main/java/org/eclipse/openk/gridfailureinformation/mailexport/config/SwaggerConfig.java b/mailExport/src/main/java/org/eclipse/openk/gridfailureinformation/mailexport/config/SwaggerConfig.java
index 37a467a..ee6b295 100644
--- a/mailExport/src/main/java/org/eclipse/openk/gridfailureinformation/mailexport/config/SwaggerConfig.java
+++ b/mailExport/src/main/java/org/eclipse/openk/gridfailureinformation/mailexport/config/SwaggerConfig.java
@@ -15,7 +15,7 @@
@Log4j2
@Configuration
@EnableSwagger2
-@Profile("!prod")
+@Profile({"!test","!prod"})
public class SwaggerConfig {
@Value("${swagger.baseUrl}")
diff --git a/stoerungsauskunftInterface/pom.xml b/stoerungsauskunftInterface/pom.xml
index 2cb49a1..a29835f 100644
--- a/stoerungsauskunftInterface/pom.xml
+++ b/stoerungsauskunftInterface/pom.xml
@@ -43,6 +43,14 @@
</properties>
<dependencies>
+ <!-- https://mvnrepository.com/artifact/org.springframework.amqp/spring-rabbit-test -->
+ <dependency>
+ <groupId>org.springframework.amqp</groupId>
+ <artifactId>spring-rabbit-test</artifactId>
+ <version>2.2.7.RELEASE</version>
+ <scope>test</scope>
+ </dependency>
+
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
diff --git a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/StoerungsaulkunftInterfaceApplication.java b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/StoerungsauskunftInterfaceApplication.java
similarity index 75%
rename from stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/StoerungsaulkunftInterfaceApplication.java
rename to stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/StoerungsauskunftInterfaceApplication.java
index 02f6814..0a95ee3 100644
--- a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/StoerungsaulkunftInterfaceApplication.java
+++ b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/StoerungsauskunftInterfaceApplication.java
@@ -6,10 +6,10 @@
@SpringBootApplication
@EnableFeignClients
-public class StoerungsaulkunftInterfaceApplication {
+public class StoerungsauskunftInterfaceApplication {
public static void main(String[] args) {
- SpringApplication.run(StoerungsaulkunftInterfaceApplication.class);
+ SpringApplication.run(StoerungsauskunftInterfaceApplication.class);
}
}
diff --git a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/SwaggerConfig.java b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/SwaggerConfig.java
index 085d1a2..7792780 100644
--- a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/SwaggerConfig.java
+++ b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/SwaggerConfig.java
@@ -15,12 +15,12 @@
@Log4j2
@Configuration
@EnableSwagger2
-@Profile("!prod")
+@Profile({"!test","!prod"})
public class SwaggerConfig {
- @Value("${swagger.baseUrl}")
+ @Value("${swagger.baseUrl:}")
public String baseUrl;
- @Value("${swagger.proxyUrl}")
+ @Value("${swagger.proxyUrl:}")
public String proxyUrl;
@Bean
diff --git a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/constants/Constants.java b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/constants/Constants.java
index 8cd09fb..ae634f5 100644
--- a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/constants/Constants.java
+++ b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/constants/Constants.java
@@ -19,6 +19,7 @@
public static final String SRC_STOERUNGSAUSKUNFT_DE = "stoerungsauskunft.de";
public static final String BRANCH_ELECTRICITY = "S";
+ public static final String VOLTAGE_LVL_LOW = "NS";
public static final String PLANNED_OUTAGE = "planned";
public static final String UNPLANNED_OUTAGE = "unplanned";
diff --git a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/dtos/StoerungsauskunftUserNotification.java b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/dtos/StoerungsauskunftUserNotification.java
index 4db2c54..c9cf7fb 100644
--- a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/dtos/StoerungsauskunftUserNotification.java
+++ b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/dtos/StoerungsauskunftUserNotification.java
@@ -17,7 +17,6 @@
private String houseNo;
private String district;
private String ags;
- private Integer radius;
private String lat;
private String lng;
private String comment;
diff --git a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/mapper/StoerungsauskunftMapper.java b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/mapper/StoerungsauskunftMapper.java
index 3463cbb..197b789 100644
--- a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/mapper/StoerungsauskunftMapper.java
+++ b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/mapper/StoerungsauskunftMapper.java
@@ -14,6 +14,7 @@
*/
package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.mapper;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.constants.Constants;
import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.*;
import org.mapstruct.*;
@@ -33,7 +34,6 @@
@Mapping(target = "failureBegin", source = "date", dateFormat = "dd.MM.yyyy HH:mm:ss"),
@Mapping(target = "longitude", source = "lng"),
@Mapping(target = "latitude", source = "lat"),
- @Mapping(target = "radiusInMeters", source = "radius", defaultValue = "0"),
@Mapping(target = "street", source = "street", qualifiedByName = "streetMapperToForeignFailureDataDto"),
@Mapping(target = "housenumber", source = "houseNo"),
})
@@ -41,10 +41,12 @@
@AfterMapping
- default void setStreetAndHouseNumber(StoerungsauskunftUserNotification srcEntity, @MappingTarget ForeignFailureDataDto targetEntity){
+ default void afterMappingProcess(StoerungsauskunftUserNotification srcEntity, @MappingTarget ForeignFailureDataDto targetEntity){
if (targetEntity.getHousenumber() == null || targetEntity.getHousenumber().isEmpty()){
targetEntity.setHousenumber(housenumberMapperToForeignFailureDataDto(srcEntity.getStreet()));
}
+ targetEntity.setRadiusInMeters(0L);
+ targetEntity.setVoltageLevel(Constants.VOLTAGE_LVL_LOW);
}
@Named("streetMapperToForeignFailureDataDto")
diff --git a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/controller/MessageConsumer.java b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/service/MessageConsumerService.java
similarity index 92%
rename from stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/controller/MessageConsumer.java
rename to stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/service/MessageConsumerService.java
index d982fa0..668e1d8 100644
--- a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/controller/MessageConsumer.java
+++ b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/service/MessageConsumerService.java
@@ -1,4 +1,4 @@
-package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.controller;
+package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.service;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -10,10 +10,11 @@
import org.springframework.amqp.support.converter.SimpleMessageConverter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
@Log4j2
-@Component
-public class MessageConsumer {
+@Service
+public class MessageConsumerService {
@Autowired
ObjectMapper objectMapper;
@@ -36,6 +37,5 @@
String messagePayload = (String) converter.fromMessage(message);
RabbitMqMessageDto rabbitMqMessageDto = objectMapper.readValue(messagePayload, RabbitMqMessageDto.class);
importExportService.exportStoerungsauskunftOutage(rabbitMqMessageDto);
-
}
}
diff --git a/stoerungsauskunftInterface/src/main/resources/application.yml b/stoerungsauskunftInterface/src/main/resources/application.yml
index 03f0bcd..2ab88a7 100644
--- a/stoerungsauskunftInterface/src/main/resources/application.yml
+++ b/stoerungsauskunftInterface/src/main/resources/application.yml
@@ -68,10 +68,6 @@
enabled: false
cron: 0 */15 * ? * *
-swagger:
- baseUrl:
- proxyUrl:
-
---
spring:
@@ -136,6 +132,27 @@
---
spring:
+ profiles: devserver-branch
+ rabbitmq:
+ # Importkanal
+ importExchange: sitImportExchange_branch
+ importQueue: sitImportQueue_branch
+ importkey: sitImportExchange.failureImportKey
+
+ # Exportkanäle
+ exportExchange: sitExportExchange_branch
+ channels:
+ - name: Mail
+ exportQueue: sit_mail_export_queue_branch
+ exportKey: sit_mail_export_key
+ isMailType: true
+ - name: Störungsauskunft.de
+ exportQueue: sit_stoerungsauskunft_export_queue_branch
+ exportKey: sit_stoerungsauskunft_export_key
+
+---
+
+spring:
profiles: qserver
rabbitmq:
host: entdockergss
@@ -175,5 +192,4 @@
corsEnabled: true
swagger:
- baseUrl: /test-stoerungsauskunft-interface
- proxyUrl:
\ No newline at end of file
+ baseUrl: /test-stoerungsauskunft-interface
\ No newline at end of file
diff --git a/stoerungsauskunftInterface/src/main/resources/application_localdev.yml b/stoerungsauskunftInterface/src/main/resources/application_localdev.yml
index e9c0025..1c04bd5 100644
--- a/stoerungsauskunftInterface/src/main/resources/application_localdev.yml
+++ b/stoerungsauskunftInterface/src/main/resources/application_localdev.yml
@@ -81,9 +81,6 @@
enabled: false
cron: 0 */15 * ? * *
-swagger:
- baseUrl:
- proxyUrl:
---
spring:
diff --git a/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/ImportSchedulerConfigTest.java b/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/ImportSchedulerConfigTest.java
index 116646e..259d866 100644
--- a/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/ImportSchedulerConfigTest.java
+++ b/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/ImportSchedulerConfigTest.java
@@ -1,23 +1,24 @@
package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.config;
-import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.StoerungsaulkunftInterfaceApplication;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.StoerungsauskunftInterfaceApplication;
import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.api.StoerungsauskunftApi;
import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.service.ImportExportService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.boot.test.mock.mockito.SpyBean;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.ContextConfiguration;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
-@SpringBootTest(classes = StoerungsaulkunftInterfaceApplication.class)
+@SpringBootTest(classes = StoerungsauskunftInterfaceApplication.class)
@ContextConfiguration(classes = {TestConfiguration.class})
@ActiveProfiles("test")
public class ImportSchedulerConfigTest {
- @Qualifier("myImportService")
- @Autowired
+ @SpyBean
private ImportExportService importExportService;
@MockBean
@@ -29,7 +30,6 @@
@Test
public void shoulImportUserNotification() {
importSchedulerConfig.scheduleTaskImportUserNotifications();
- //Todo kann ImportExportService nicht "mocken" (@Spybean vs @MockBean)
- //verify(myImportService, times(1)).importUserNotifications();
+ verify(importExportService, times(1)).importUserNotifications();
}
}
diff --git a/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/TestConfiguration.java b/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/TestConfiguration.java
index 88e6aab..4cd962c 100644
--- a/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/TestConfiguration.java
+++ b/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/TestConfiguration.java
@@ -16,11 +16,14 @@
import com.fasterxml.jackson.databind.ObjectMapper;
-import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.StoerungsaulkunftInterfaceApplication;
+import com.rabbitmq.client.Channel;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.StoerungsauskunftInterfaceApplication;
import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.config.rabbitMq.RabbitMqConfig;
import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.mapper.StoerungsauskunftMapperImpl;
-import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.service.ImportExportService;
-import org.mockito.Mockito;
+import org.springframework.amqp.rabbit.annotation.EnableRabbit;
+import org.springframework.amqp.rabbit.connection.Connection;
+import org.springframework.amqp.rabbit.connection.ConnectionFactory;
+import org.springframework.amqp.rabbit.test.TestRabbitTemplate;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.boot.test.context.ConfigFileApplicationContextInitializer;
@@ -29,31 +32,51 @@
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestPropertySource;
-import static org.mockito.Mockito.doNothing;
+import java.io.IOException;
-@EntityScan(basePackageClasses = StoerungsaulkunftInterfaceApplication.class)
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.BDDMockito.given;
+import static org.mockito.BDDMockito.willReturn;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.mock;
+
+@EntityScan(basePackageClasses = StoerungsauskunftInterfaceApplication.class)
@ContextConfiguration( initializers = {ConfigFileApplicationContextInitializer.class})
@TestPropertySource("spring.config.location=classpath:application.yml")
+@EnableRabbit
public class TestConfiguration {
@Bean
ObjectMapper objectMapper() { return new ObjectMapper(); }
@Bean
- public ImportExportService myImportService() {return new ImportExportService();}
-
- @Bean
public StoerungsauskunftMapperImpl stoerungsauskunftMapper() {return new StoerungsauskunftMapperImpl();}
@Bean
- public MessageChannel failureImportChannel() {return Mockito.mock(MessageChannel.class);}
+ public MessageChannel failureImportChannel() {return mock(MessageChannel.class);}
@Bean
@Qualifier("rabbitMqConfig")
public RabbitMqConfig rabbitMqConfig() {
- RabbitMqConfig rabbitMqConfigMock = Mockito.mock(RabbitMqConfig.class);
+ RabbitMqConfig rabbitMqConfigMock = mock(RabbitMqConfig.class);
doNothing().when(rabbitMqConfigMock).buildAllQueues();
return rabbitMqConfigMock;
}
+ @Bean
+ public TestRabbitTemplate template() throws IOException {
+ return new TestRabbitTemplate(connectionFactory());
+ }
+
+ @Bean
+ public ConnectionFactory connectionFactory() throws IOException {
+ ConnectionFactory factory = mock(ConnectionFactory.class);
+ Connection connection = mock(Connection.class);
+ Channel channel = mock(Channel.class);
+ willReturn(connection).given(factory).createConnection();
+ willReturn(channel).given(connection).createChannel(anyBoolean());
+ given(channel.isOpen()).willReturn(true);
+ return factory;
+ }
+
}
diff --git a/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/controller/ImportExportControllerTest.java b/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/controller/ImportExportControllerTest.java
index 33e90c4..02b4b52 100644
--- a/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/controller/ImportExportControllerTest.java
+++ b/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/controller/ImportExportControllerTest.java
@@ -15,9 +15,8 @@
package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.controller;
import com.fasterxml.jackson.databind.ObjectMapper;
-import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.StoerungsaulkunftInterfaceApplication;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.StoerungsauskunftInterfaceApplication;
import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.api.StoerungsauskunftApi;
-import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.ForeignFailureMessageDto;
import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.RabbitMqMessageDto;
import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.service.ImportExportService;
import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.support.MockDataHelper;
@@ -36,7 +35,7 @@
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-@SpringBootTest(classes = StoerungsaulkunftInterfaceApplication.class)
+@SpringBootTest(classes = StoerungsauskunftInterfaceApplication.class)
@AutoConfigureMockMvc
@ActiveProfiles("test")
public class ImportExportControllerTest {
diff --git a/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/service/ImportExportServiceTest.java b/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/service/ImportExportServiceTest.java
index 6f53c75..8d938dd 100644
--- a/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/service/ImportExportServiceTest.java
+++ b/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/service/ImportExportServiceTest.java
@@ -18,10 +18,9 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import feign.Request;
import feign.Response;
-import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.StoerungsaulkunftInterfaceApplication;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.StoerungsauskunftInterfaceApplication;
import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.api.StoerungsauskunftApi;
import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.config.TestConfiguration;
-import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.FailureInformationDto;
import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.ForeignFailureMessageDto;
import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.RabbitMqMessageDto;
import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.StoerungsauskunftUserNotification;
@@ -29,7 +28,6 @@
import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.support.MockDataHelper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.core.io.ClassPathResource;
@@ -40,18 +38,18 @@
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.text.ParseException;
+import java.util.ArrayList;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.*;
-@SpringBootTest(classes = StoerungsaulkunftInterfaceApplication.class)
+@SpringBootTest(classes = StoerungsauskunftInterfaceApplication.class)
@ContextConfiguration(classes = {TestConfiguration.class})
@ActiveProfiles("test")
public class ImportExportServiceTest {
- @Qualifier("myImportService")
@Autowired
private ImportExportService importExportService;
@@ -105,6 +103,21 @@
}
@Test
+ public void shouldExportForeignFailureMessageDto_planned_polygons_empty() throws ParseException {
+ RabbitMqMessageDto rabbitMqMessageDto = MockDataHelper.mockRabbitMqMessageDto();
+
+ rabbitMqMessageDto.getFailureInformationDto().setPlanned(true);
+ rabbitMqMessageDto.getFailureInformationDto().setAddressPolygonPoints(new ArrayList<>());
+
+ Request request = mock(Request.class);
+ Response mockResponse = Response.builder().status(200).request(request).body("Test", StandardCharsets.UTF_8).build();
+
+ when(stoerungsauskunftApi.postOutage(any())).thenReturn(mockResponse);
+ importExportService.exportStoerungsauskunftOutage(rabbitMqMessageDto);
+ verify(stoerungsauskunftApi, times(1)).postOutage(anyList());
+ }
+
+ @Test
public void shouldThrowErrorWhenCallToExternalInterfacefailed() throws ParseException {
RabbitMqMessageDto rabbitMqMessageDto = MockDataHelper.mockRabbitMqMessageDto();
@@ -116,5 +129,21 @@
}
+ @Test
+ public void shoulImportUserNotificationMapperTest1() throws IOException {
+
+ ImportExportService importExportServicSpy = spy(importExportService);
+
+ InputStream is = new ClassPathResource("UsernotificationJsonResponse.json").getInputStream();
+ List<StoerungsauskunftUserNotification> userNotificationList =
+ objectMapper.readValue(is, new TypeReference<List<StoerungsauskunftUserNotification>>() {
+ });
+ when(stoerungsauskunftApi.getUserNotification(any(Integer.class))).thenReturn(userNotificationList);
+
+ importExportServicSpy.importUserNotifications();
+
+ verify(importExportServicSpy, times(userNotificationList.size())).pushForeignFailure(any(ForeignFailureMessageDto.class));
+ }
+
}
diff --git a/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/service/MessageConsumerServiceTest.java b/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/service/MessageConsumerServiceTest.java
new file mode 100644
index 0000000..17d894b
--- /dev/null
+++ b/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/service/MessageConsumerServiceTest.java
@@ -0,0 +1,85 @@
+/*
+ *******************************************************************************
+ * Copyright (c) 2019 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************
+ */
+package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.service;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.StoerungsauskunftInterfaceApplication;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.api.StoerungsauskunftApi;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.config.TestConfiguration;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.RabbitMqMessageDto;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.support.MockDataHelper;
+import org.junit.jupiter.api.Test;
+import org.springframework.amqp.rabbit.test.RabbitListenerTest;
+import org.springframework.amqp.rabbit.test.RabbitListenerTestHarness;
+import org.springframework.amqp.rabbit.test.TestRabbitTemplate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.boot.test.mock.mockito.SpyBean;
+import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.context.ContextConfiguration;
+
+import java.text.ParseException;
+
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+@SpringBootTest(classes = StoerungsauskunftInterfaceApplication.class)
+@ContextConfiguration(classes = {TestConfiguration.class})
+@ActiveProfiles("test")
+@RabbitListenerTest
+public class MessageConsumerServiceTest {
+
+ @Autowired
+ private RabbitListenerTestHarness harness;
+
+ @SpyBean
+ private ImportExportService importExportService;
+
+ @Autowired
+ ObjectMapper objectMapper;
+
+ @MockBean
+ StoerungsauskunftApi stoerungsauskunftApi;
+
+ @Autowired
+ private TestRabbitTemplate testRabbitTemplate;
+
+ @Value("${spring.rabbitmq.exportQueue}")
+ private String exportQueue;
+
+ @Test
+ public void shouldExportForeignFailureMessageDto() throws JsonProcessingException {
+
+ RabbitMqMessageDto rabbitMqMessageDto = MockDataHelper.mockRabbitMqMessageDto();
+ String rabbitMqMessageDtoString = objectMapper.writeValueAsString(rabbitMqMessageDto);
+
+ testRabbitTemplate.convertAndSend(exportQueue, rabbitMqMessageDtoString);
+
+ verify(importExportService, times(1)).exportStoerungsauskunftOutage(any());
+ }
+
+ @Test
+ public void shouldIgnoreButLogInputError() throws ParseException {
+ testRabbitTemplate.convertAndSend(exportQueue, "false input");
+ verify(importExportService, times(0)).exportStoerungsauskunftOutage(any());
+ }
+
+
+}
diff --git a/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/support/MockDataHelper.java b/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/support/MockDataHelper.java
index 3a2a7c9..2de3b74 100644
--- a/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/support/MockDataHelper.java
+++ b/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/support/MockDataHelper.java
@@ -14,11 +14,13 @@
*/
package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.support;
+import com.fasterxml.jackson.databind.ObjectMapper;
import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.constants.Constants;
import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.FailureInformationDto;
import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.ForeignFailureDataDto;
import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.ForeignFailureMessageDto;
import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.RabbitMqMessageDto;
+import org.springframework.beans.factory.annotation.Autowired;
import java.math.BigDecimal;
import java.sql.Date;
diff --git a/stoerungsauskunftInterface/src/test/resources/UsernotificationJsonResponse.json b/stoerungsauskunftInterface/src/test/resources/UsernotificationJsonResponse.json
index 12b4250..fb469bf 100644
--- a/stoerungsauskunftInterface/src/test/resources/UsernotificationJsonResponse.json
+++ b/stoerungsauskunftInterface/src/test/resources/UsernotificationJsonResponse.json
@@ -19,12 +19,51 @@
"city": "Flonheim",
"ags": null,
"district": null,
- "street": "Am Obertor 13",
+ "street": "Am Obertor",
"lat": "49.8031615",
"lng": "8.1932478",
"comment": "Zappenduster",
"operatorOutageInArea": 0,
- "houseNo": "12"
-
+ "houseNo": "13"
+ },
+ {
+ "id": 23,
+ "date": "28.5.2020 14:49:11",
+ "postcode": "55237",
+ "city": "Flonheim",
+ "ags": null,
+ "district": null,
+ "lat": "49.8031615",
+ "lng": "8.1932478",
+ "comment": "Zappenduster",
+ "operatorOutageInArea": 0
+ },
+ {
+ "id": 23,
+ "date": "28.5.2020 14:49:11",
+ "postcode": "55237",
+ "city": "Flonheim",
+ "ags": null,
+ "street": "",
+ "district": null,
+ "lat": "49.8031615",
+ "lng": "8.1932478",
+ "comment": "Zappenduster",
+ "operatorOutageInArea": 0,
+ "houseNo": ""
+ },
+ {
+ "id": 23,
+ "date": "28.5.2020 14:49:11",
+ "postcode": "55237",
+ "city": "Flonheim",
+ "ags": null,
+ "district": null,
+ "street": "Am Obertor",
+ "lat": "49.8031615",
+ "lng": "8.1932478",
+ "comment": "Zappenduster",
+ "phone": "01520123456",
+ "operatorOutageInArea": 0
}
]
\ No newline at end of file
diff --git a/stoerungsauskunftInterface/src/test/resources/application.yml b/stoerungsauskunftInterface/src/test/resources/application.yml
index 602e91b..843be83 100644
--- a/stoerungsauskunftInterface/src/test/resources/application.yml
+++ b/stoerungsauskunftInterface/src/test/resources/application.yml
@@ -57,10 +57,6 @@
enabled: false
cron: 0 */15 * ? * *
-swagger:
- baseUrl:
- proxyUrl:
-
---
spring:
diff --git a/testImportGridFailures/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/importgridfailures/config/SwaggerConfig.java b/testImportGridFailures/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/importgridfailures/config/SwaggerConfig.java
index 0cd28b0..66eb015 100644
--- a/testImportGridFailures/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/importgridfailures/config/SwaggerConfig.java
+++ b/testImportGridFailures/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/importgridfailures/config/SwaggerConfig.java
@@ -16,7 +16,7 @@
@Log4j2
@Configuration
@EnableSwagger2
-@Profile("!prod")
+@Profile({"!test","!prod"})
public class SwaggerConfig {
@Value("${swagger.baseUrl}")