SI-1900 History versions sorted
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 f7cd042..aa16cf2 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
@@ -43,8 +43,6 @@
 import java.awt.*;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
-import java.time.LocalDateTime;
-import java.time.ZoneId;
 import java.util.List;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -360,38 +358,13 @@
             addPolygonAddressPoints(failureInformationDto);
         }
 
-        addExternalStatus(failureInformationDto);
+        ExternalStatusCalculator.addExternalStatus( statusRepository, failureInformationDto);
 
         enrichStations(failureInformationDto);
 
         return failureInformationDto;
     }
 
-    public void addExternalStatus(FailureInformationDto failureInformationDto){
-        Long statusInternId = statusRepository.findByUuid(
-                failureInformationDto.getStatusInternId())
-                    .orElseThrow(() -> new NotFoundException("status.not.found"))
-                    .getId();
-        String publicationStatus = failureInformationDto.getPublicationStatus();
-        Date failureBegin = failureInformationDto.getFailureBegin();
-        Date failureEndPlanned = failureInformationDto.getFailureEndPlanned();
-        LocalDateTime ldtFailureBegin = null;
-        LocalDateTime ldtFailureEndPlanned = null;
-
-
-        if(failureBegin != null) {
-            ldtFailureBegin = LocalDateTime.ofInstant(failureBegin.toInstant(), ZoneId.systemDefault());
-        }
-
-        if(failureEndPlanned != null) {
-            ldtFailureEndPlanned = LocalDateTime.ofInstant(failureEndPlanned.toInstant(), ZoneId.systemDefault());
-        }
-
-        failureInformationDto.setStatusExtern(
-                ExternalStatusCalculator.calculate(
-                        statusInternId, publicationStatus, ldtFailureBegin,
-                        ldtFailureEndPlanned));
-    }
 
     @Transactional
     public FailureInformationDto updateSubordinatedFailureInfos(UUID condensedUuid, List<UUID> subordinatedUuidList){
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/HistFailureInformationService.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/HistFailureInformationService.java
index 1138179..9f2002b 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/HistFailureInformationService.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/HistFailureInformationService.java
@@ -59,10 +59,11 @@
         List<FailureInformationDto> failureInfoDtoList = htblFailureInformationList
                 .stream()
                 .map(histFailureInformationMapper::toFailureInformationDto)
+                .sorted( (x, y) -> x.getVersionNumber().compareTo(y.getVersionNumber()))
                 .collect(Collectors.toList());
 
         for (FailureInformationDto failureInfoDto : failureInfoDtoList) {
-            failureInfoDto = addStationsToFailureInfoDto(failureInfoDto);
+            addStationsToFailureInfoDto(failureInfoDto);
         }
         return failureInfoDtoList;
 
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/util/ExternalStatusCalculator.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/util/ExternalStatusCalculator.java
index 59fc252..b43403a 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/util/ExternalStatusCalculator.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/util/ExternalStatusCalculator.java
@@ -16,14 +16,45 @@
 
 import org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessState;
 import org.eclipse.openk.gridfailureinformation.constants.Constants;
+import org.eclipse.openk.gridfailureinformation.exceptions.NotFoundException;
+import org.eclipse.openk.gridfailureinformation.repository.StatusRepository;
+import org.eclipse.openk.gridfailureinformation.viewmodel.FailureInformationDto;
 
 import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.Date;
 
 import static org.eclipse.openk.gridfailureinformation.constants.Constants.*;
 
 public class ExternalStatusCalculator {
     private ExternalStatusCalculator() {}
 
+    public static void addExternalStatus(StatusRepository statusRepository, FailureInformationDto failureInformationDto){
+        Long statusInternId = statusRepository.findByUuid(
+                failureInformationDto.getStatusInternId())
+                .orElseThrow(() -> new NotFoundException("status.not.found"))
+                .getId();
+        String publicationStatus = failureInformationDto.getPublicationStatus();
+        Date failureBegin = failureInformationDto.getFailureBegin();
+        Date failureEndPlanned = failureInformationDto.getFailureEndPlanned();
+        LocalDateTime ldtFailureBegin = null;
+        LocalDateTime ldtFailureEndPlanned = null;
+
+
+        if(failureBegin != null) {
+            ldtFailureBegin = LocalDateTime.ofInstant(failureBegin.toInstant(), ZoneId.systemDefault());
+        }
+
+        if(failureEndPlanned != null) {
+            ldtFailureEndPlanned = LocalDateTime.ofInstant(failureEndPlanned.toInstant(), ZoneId.systemDefault());
+        }
+
+        failureInformationDto.setStatusExtern(
+                ExternalStatusCalculator.calculate(
+                        statusInternId, publicationStatus, ldtFailureBegin,
+                        ldtFailureEndPlanned));
+    }
+
     public static String calculate(Long statusInternId, String publicationStatus, LocalDateTime ldtFailureBegin, LocalDateTime ldtFailureEndPlanned) {
         LocalDateTime ltdToday =  java.time.LocalDateTime.now();
         String newStatusText = "";
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/HistFailureInformationServiceTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/HistFailureInformationServiceTest.java
index e6c84c9..6a5cae4 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/HistFailureInformationServiceTest.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/HistFailureInformationServiceTest.java
@@ -17,6 +17,7 @@
 import org.eclipse.openk.gridfailureinformation.config.TestConfiguration;
 import org.eclipse.openk.gridfailureinformation.model.HtblFailureInformation;
 import org.eclipse.openk.gridfailureinformation.repository.HistFailureInformationRepository;
+import org.eclipse.openk.gridfailureinformation.repository.StatusRepository;
 import org.eclipse.openk.gridfailureinformation.support.MockDataHelper;
 import org.eclipse.openk.gridfailureinformation.viewmodel.FailureInformationDto;
 import org.eclipse.openk.gridfailureinformation.viewmodel.StationDto;
@@ -39,7 +40,7 @@
 @DataJpaTest
 @ContextConfiguration(classes = {TestConfiguration.class})
 
-public class HistFailureInformationServiceTest {
+class HistFailureInformationServiceTest {
     @Qualifier("myHistFailureInformationService")
     @Autowired
     private HistFailureInformationService histFailureInformationService;
@@ -50,14 +51,16 @@
     @MockBean
     private HistFailureInformationStationService histFailureInformationStationService;
 
+    @MockBean
+    private StatusRepository statusRepository;
+
     @Test
-    public void shouldFindHistFailureInformationsByUuid() {
+    void shouldFindHistFailureInformationsByUuid() {
         List<HtblFailureInformation> mockHistFailureList = MockDataHelper.mockHistTblFailureInformationList();
         List<StationDto> stationDtoList = MockDataHelper.mockStationDtoList();
 
         when(histFailureInformationRepository.findByUuid(any(UUID.class))).thenReturn(mockHistFailureList);
         when(histFailureInformationStationService.findHistStationsByFailureInfoAndVersionNumber(any(UUID.class), any(Long.class))).thenReturn(stationDtoList);
-
         List<FailureInformationDto> retList = histFailureInformationService.getFailureInformationVersionsByUuid(UUID.randomUUID());
 
         assertEquals(retList.size(), mockHistFailureList.size());
@@ -70,7 +73,7 @@
 
 
     @Test
-    public void shouldFindASingleHistFailureInformationVersion() {
+    void shouldFindASingleHistFailureInformationVersion() {
         HtblFailureInformation mockHistFailure = MockDataHelper.mockHistTblFailureInformation();
         List<StationDto> stationDtoList = MockDataHelper.mockStationDtoList();