diff --git a/src/main/java/mops/gruppen2/repository/EventRepository.java b/src/main/java/mops/gruppen2/repository/EventRepository.java index 7b84ce0..f328fdf 100644 --- a/src/main/java/mops/gruppen2/repository/EventRepository.java +++ b/src/main/java/mops/gruppen2/repository/EventRepository.java @@ -30,4 +30,7 @@ public interface EventRepository extends CrudRepository { @Query("SELECT MAX(event_id) FROM event") public Long getHighesEvent_ID(); + + @Query("SELECT MAX(group_id) FROM event") + public Long getMaxGroupID(); } diff --git a/src/main/java/mops/gruppen2/service/EventService.java b/src/main/java/mops/gruppen2/service/EventService.java index f545456..7fd67e8 100644 --- a/src/main/java/mops/gruppen2/service/EventService.java +++ b/src/main/java/mops/gruppen2/service/EventService.java @@ -59,22 +59,17 @@ public class EventService { } /** - * Sorgt dafür die Group_id immer um 1 zu erhöhen + * Gibt die nächst höhere groupID zurück die belegt werden kann. + * Gibt 1 zurück, falls keine Gruppe vorhanden ist. * * @return Gibt Long zurück */ public Long checkGroup() { - Long tmpId = 1L; - Iterable eventDTOS = eventStore.findAll(); - for (EventDTO event : eventDTOS) { - if (event.getGroup_id() == null) { - return tmpId; - } - if (tmpId <= event.getGroup_id()) { - tmpId++; - } + Long maxGroupID = eventStore.getMaxGroupID(); + if (maxGroupID == null) { + return 1L; } - return tmpId; + return maxGroupID + 1; } /** diff --git a/src/test/java/mops/gruppen2/service/EventServiceTest.java b/src/test/java/mops/gruppen2/service/EventServiceTest.java index 122e219..c0cedb0 100644 --- a/src/test/java/mops/gruppen2/service/EventServiceTest.java +++ b/src/test/java/mops/gruppen2/service/EventServiceTest.java @@ -28,21 +28,6 @@ class EventServiceTest { eventService = new EventService(mock(SerializationService.class), eventRepositoryMock); } - @Test - void checkGroupTest() { - EventDTO eventDTO = new EventDTO(); - EventDTO eventDTO1 = new EventDTO(); - eventDTO1.setGroup_id(1L); - eventDTO.setUser_id("realer"); - eventDTO.setUser_id("faker"); - eventDTO.setGroup_id(0L); - List eventDTOS = new ArrayList<>(); - eventDTOS.add(eventDTO); - eventDTOS.add(eventDTO1); - when(eventRepositoryMock.findAll()).thenReturn(eventDTOS); - assertEquals(eventDTO1.getGroup_id() + 1, eventService.checkGroup()); - } - @Test void getMaxID() { when(eventRepositoryMock.getHighesEvent_ID()).thenReturn(42L); @@ -52,14 +37,7 @@ class EventServiceTest { @Test void checkGroupReturnNextValue() { - List eventDTOS = new ArrayList<>(); - EventDTO eventDTO1 = new EventDTO(); - EventDTO eventDTO2 = new EventDTO(); - eventDTO1.setGroup_id(1L); - eventDTO2.setGroup_id(2L); - eventDTOS.add(eventDTO1); - eventDTOS.add(eventDTO2); - when(eventRepositoryMock.findAll()).thenReturn(eventDTOS); + when(eventRepositoryMock.getMaxGroupID()).thenReturn(2L); assertEquals(eventService.checkGroup(), 3L); }