From 71a7fc9cd8860391813b50d1fad7a39827aaaf6e Mon Sep 17 00:00:00 2001 From: Lars <29163322+Drumber@users.noreply.github.com> Date: Thu, 25 Apr 2024 17:38:24 +0200 Subject: [PATCH] BE-#97: Update test for map widget --- .../application/mapper/MapWidgetMapper.java | 1 + .../backend/widget/model/map/MapWidget.java | 4 +- .../application/MapWidgetServiceTest.java | 51 +++++++++++++++++-- 3 files changed, 50 insertions(+), 6 deletions(-) diff --git a/backend/src/main/java/com/dhbw/get2gether/backend/widget/application/mapper/MapWidgetMapper.java b/backend/src/main/java/com/dhbw/get2gether/backend/widget/application/mapper/MapWidgetMapper.java index ccdf848..ee6524d 100644 --- a/backend/src/main/java/com/dhbw/get2gether/backend/widget/application/mapper/MapWidgetMapper.java +++ b/backend/src/main/java/com/dhbw/get2gether/backend/widget/application/mapper/MapWidgetMapper.java @@ -12,6 +12,7 @@ public interface MapWidgetMapper { @Mapping(target = "id", ignore = true) @Mapping(target = "creationDate", ignore = true) + @Mapping(target = "locations", ignore = true) MapWidget mapToMapWidget(MapWidgetCreateCommand createCommand); @Mapping(target = "id", ignore = true) diff --git a/backend/src/main/java/com/dhbw/get2gether/backend/widget/model/map/MapWidget.java b/backend/src/main/java/com/dhbw/get2gether/backend/widget/model/map/MapWidget.java index 3576644..51c26ba 100644 --- a/backend/src/main/java/com/dhbw/get2gether/backend/widget/model/map/MapWidget.java +++ b/backend/src/main/java/com/dhbw/get2gether/backend/widget/model/map/MapWidget.java @@ -7,6 +7,7 @@ import lombok.Getter; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.List; @Builder(toBuilder = true) @@ -15,7 +16,8 @@ public class MapWidget extends Widget { private final String id; private final LocalDateTime creationDate; - private List locations; + @Builder.Default + private List locations = new ArrayList<>(); @Override public WidgetType getWidgetType() { diff --git a/backend/src/test/java/com/dhbw/get2gether/backend/widget/application/MapWidgetServiceTest.java b/backend/src/test/java/com/dhbw/get2gether/backend/widget/application/MapWidgetServiceTest.java index 1f3d4ed..446612d 100644 --- a/backend/src/test/java/com/dhbw/get2gether/backend/widget/application/MapWidgetServiceTest.java +++ b/backend/src/test/java/com/dhbw/get2gether/backend/widget/application/MapWidgetServiceTest.java @@ -7,6 +7,7 @@ import com.dhbw.get2gether.backend.exceptions.OperationNotAllowedException; import com.dhbw.get2gether.backend.utils.WithMockGuestUser; import com.dhbw.get2gether.backend.utils.WithMockOAuth2User; +import com.dhbw.get2gether.backend.widget.model.map.Location; import com.dhbw.get2gether.backend.widget.model.map.LocationAddCommand; import com.dhbw.get2gether.backend.widget.model.map.MapWidget; import com.dhbw.get2gether.backend.widget.model.map.MapWidgetCreateCommand; @@ -62,7 +63,7 @@ void shouldCreateWidget() { // then assertThat(returnedEvent).isNotNull(); assertThat(returnedEvent.getWidgets()).hasSize(1); - assertThat(returnedEvent.getWidgets().get(0)).isInstanceOf(MapWidget.class); + assertThat(returnedEvent.getWidgets().get(0)).isInstanceOf(MapWidget.class).hasNoNullFieldsOrProperties(); } @Test @@ -111,11 +112,11 @@ void shouldAddLocation() { AuthenticatedPrincipal principal = (AuthenticatedPrincipal) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); MapWidget widget = MapWidget.builder() - .id("123") + .id("wi-123") .locations(new ArrayList<>()) .build(); Event event = Event.builder() - .id("123") + .id("ev-123") .widgets(new ArrayList<>(List.of(widget))) .build(); LocationAddCommand addCommand = LocationAddCommand.builder() @@ -154,11 +155,11 @@ void shouldNotAddLocationIfUserIsGuest() { AuthenticatedPrincipal principal = (AuthenticatedPrincipal) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); MapWidget widget = MapWidget.builder() - .id("123") + .id("wi-123") .locations(new ArrayList<>()) .build(); Event event = Event.builder() - .id("123") + .id("ev-123") .widgets(new ArrayList<>(List.of(widget))) .build(); LocationAddCommand addCommand = LocationAddCommand.builder() @@ -176,4 +177,44 @@ void shouldNotAddLocationIfUserIsGuest() { assertThatThrownBy(() -> mapWidgetService.addLocation(principal, event.getId(), widget.getId(), addCommand)) .isInstanceOf(AccessDeniedException.class); } + + @Test + @WithMockOAuth2User + void shouldRemoveLocation() { + // given + AuthenticatedPrincipal principal = (AuthenticatedPrincipal) + SecurityContextHolder.getContext().getAuthentication().getPrincipal(); + Location location = Location.builder() + .id("lo-123") + .name("Test") + .placeId("place-123") + .address("address-123") + .latitude(12.34) + .longitude(56.78) + .build(); + MapWidget widget = MapWidget.builder() + .id("wi-123") + .locations(new ArrayList<>(List.of(location))) + .build(); + Event event = Event.builder() + .id("ev-123") + .widgets(new ArrayList<>(List.of(widget))) + .build(); + + when(eventService.getSingleEvent(any(), eq(event.getId()))).thenReturn(event); + when(eventService.updateEventWidgets(any(), eq(event.getId()), any())) + .thenAnswer(i -> event.toBuilder() + .widgets( + i.getArgument(2, EventWidgetUpdateCommand.class).getWidgets() + ) + .build() + ); + + // when + MapWidget returnedWidget = mapWidgetService.removeLocation(principal, event.getId(), widget.getId(), location.getId()); + + // then + assertThat(returnedWidget).isNotNull(); + assertThat(returnedWidget.getLocations()).isEmpty(); + } } \ No newline at end of file