Skip to content

Commit 00112a1

Browse files
committed
added improvements according coderabbitai suggestions
1 parent 88dabc5 commit 00112a1

File tree

6 files changed

+77
-44
lines changed

6 files changed

+77
-44
lines changed

core/src/test/java/greencity/ModelUtils.java

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -615,22 +615,7 @@ public static EventResponseDto getEventResponseDto() {
615615
.startDate(ZonedDateTime.of(2025, 12, 26, 12, 30, 0, 0, ZoneOffset.UTC))
616616
.finishDate(ZonedDateTime.of(2025, 12, 26, 21, 59, 0, 0, ZoneOffset.UTC))
617617
.onlineLink("www.testlink.com")
618-
.coordinates(AddressDto.builder()
619-
.latitude(50.44628775288652)
620-
.longitude(30.49364829378446)
621-
.streetEn("Halytska Square")
622-
.streetUa("Галицька площа")
623-
.houseNumber("1")
624-
.cityEn("Kyiv")
625-
.cityUa("Київ")
626-
.regionEn("Kyiv")
627-
.regionUa("місто Київ")
628-
.countryEn("Ukraine")
629-
.countryUa("Україна")
630-
.formattedAddressEn("Halytska Sq, 1, Kyiv, Ukraine, 02000")
631-
.formattedAddressUa("Галицька пл., 1, Київ, Україна, 02000")
632-
.build())
633-
.build()))
618+
.coordinates(getAddressDtoCorrect()).build()))
634619
.titleImage("https://test.png")
635620
.additionalImages(List.of("https://test1.png", "https://test2.png"))
636621
.type(EventType.OFFLINE)
@@ -645,4 +630,20 @@ public static EventResponseDto getEventResponseDto() {
645630
.isOrganizedByFriend(false)
646631
.build();
647632
}
633+
634+
public static AddressDto getAddressDtoCorrect() {
635+
return AddressDto.builder()
636+
.latitude(50.4567236)
637+
.longitude(30.2354469)
638+
.streetUa("Вулиця")
639+
.streetEn("Street")
640+
.houseNumber("1B")
641+
.cityUa("Київ")
642+
.cityEn("Kyiv")
643+
.regionUa("Область")
644+
.regionEn("Oblast")
645+
.countryUa("Країна")
646+
.countryEn("Country")
647+
.build();
648+
}
648649
}

core/src/test/java/greencity/webcontroller/ManagementEventControllerTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import java.util.Set;
2727

2828
import lombok.SneakyThrows;
29+
import org.junit.jupiter.api.AfterEach;
2930
import org.junit.jupiter.api.BeforeEach;
3031
import org.junit.jupiter.api.Test;
3132
import org.junit.jupiter.api.extension.ExtendWith;
@@ -75,16 +76,24 @@ class ManagementEventControllerTest {
7576
private Principal principal;
7677
@Mock
7778
private Validator mockValidator;
79+
@Mock
80+
private Locale defaultLocale;
7881

7982
@BeforeEach
8083
void setUp() {
84+
defaultLocale = Locale.getDefault();
8185
Locale.setDefault(Locale.ENGLISH);
8286
this.mockMvc = MockMvcBuilders.standaloneSetup(managementEventController)
8387
.setCustomArgumentResolvers(new PageableHandlerMethodArgumentResolver())
8488
.setValidator(mockValidator)
8589
.build();
8690
}
8791

92+
@AfterEach
93+
void tearDown() {
94+
Locale.setDefault(defaultLocale);
95+
}
96+
8897
@Test
8998
@SneakyThrows
9099
void getAllEventsWithQuery() {

service/src/main/java/greencity/mapping/events/EventResponseDtoMapper.java

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -66,27 +66,30 @@ protected EventResponseDto convert(Event event) {
6666
User organizer = event.getOrganizer();
6767

6868
List<EventDateInformationDto> dateInformation = event.getDates().stream()
69-
.map(date -> EventDateInformationDto.builder()
70-
.id(date.getId())
71-
.startDate(date.getStartDate())
72-
.finishDate(date.getFinishDate())
73-
.onlineLink(date.getOnlineLink())
74-
.coordinates(AddressDto.builder()
75-
.latitude(date.getAddress().getLatitude())
76-
.longitude(date.getAddress().getLongitude())
77-
.streetEn(date.getAddress().getStreetEn())
78-
.streetUa(date.getAddress().getStreetUa())
79-
.houseNumber(date.getAddress().getHouseNumber())
80-
.cityEn(date.getAddress().getCityEn())
81-
.cityUa(date.getAddress().getCityUa())
82-
.regionEn(date.getAddress().getRegionEn())
83-
.regionUa(date.getAddress().getRegionUa())
84-
.countryEn(date.getAddress().getCountryEn())
85-
.countryUa(date.getAddress().getCountryUa())
86-
.formattedAddressEn(date.getAddress().getFormattedAddressEn())
87-
.formattedAddressUa(date.getAddress().getFormattedAddressUa())
88-
.build())
89-
.build())
69+
.map(date -> {
70+
assert date.getAddress() != null;
71+
return EventDateInformationDto.builder()
72+
.id(date.getId())
73+
.startDate(date.getStartDate())
74+
.finishDate(date.getFinishDate())
75+
.onlineLink(date.getOnlineLink())
76+
.coordinates(AddressDto.builder()
77+
.latitude(date.getAddress().getLatitude())
78+
.longitude(date.getAddress().getLongitude())
79+
.streetEn(date.getAddress().getStreetEn())
80+
.streetUa(date.getAddress().getStreetUa())
81+
.houseNumber(date.getAddress().getHouseNumber())
82+
.cityEn(date.getAddress().getCityEn())
83+
.cityUa(date.getAddress().getCityUa())
84+
.regionEn(date.getAddress().getRegionEn())
85+
.regionUa(date.getAddress().getRegionUa())
86+
.countryEn(date.getAddress().getCountryEn())
87+
.countryUa(date.getAddress().getCountryUa())
88+
.formattedAddressEn(date.getAddress().getFormattedAddressEn())
89+
.formattedAddressUa(date.getAddress().getFormattedAddressUa())
90+
.build())
91+
.build();
92+
})
9093
.collect(Collectors.toList());
9194

9295
return EventResponseDto.builder()

service/src/main/java/greencity/utils/EventUtils.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,12 @@ public static boolean isRelevant(List<EventDateLocation> dates) {
1717
}
1818

1919
public static double calculateEventRate(List<EventGrade> eventGrades) {
20+
if (eventGrades == null) {
21+
return 0.0;
22+
}
2023
return eventGrades.stream()
2124
.mapToInt(EventGrade::getGrade)
25+
.filter(grade -> grade > 0)
2226
.average()
2327
.orElse(0.0);
2428
}

service/src/test/java/greencity/mapping/events/EventResponseDtoMapperTest.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,7 @@
1313
import java.util.Set;
1414
import static greencity.ModelUtils.getEvent;
1515
import static org.junit.jupiter.api.Assertions.assertEquals;
16-
import static org.junit.jupiter.api.Assertions.assertTrue;
17-
import static org.mockito.ArgumentMatchers.any;
18-
import static org.mockito.Mockito.when;
16+
import static org.junit.jupiter.api.Assertions.assertThrows;
1917

2018
@ExtendWith(SpringExtension.class)
2119
class EventResponseDtoMapperTest {
@@ -39,10 +37,10 @@ void convertTest() {
3937
}
4038

4139
@Test
42-
void isRelevantFieldTest() {
43-
when(commentService.countCommentsForEvent(any())).thenReturn(0);
40+
void convertHasNullAddressTest() {
4441
Event event = getEvent();
45-
EventResponseDto result = mapper.convert(event);
46-
assertTrue(result.getIsRelevant());
42+
event.getDates().forEach(date -> date.setAddress(null));
43+
44+
assertThrows(AssertionError.class, () -> mapper.convert(event));
4745
}
4846
}

service/src/test/java/greencity/utils/EventUtilsTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,22 @@ void calculateEventRateReturnsSingleValueForOneGradeTest() {
5151
List<EventGrade> grades = List.of(EventGrade.builder().grade(5).build());
5252
assertEquals(5.0, EventUtils.calculateEventRate(grades));
5353
}
54+
55+
@Test
56+
void calculateEventRateReturnsZeroForEmptyListTest() {
57+
assertEquals(0.0, EventUtils.calculateEventRate(List.of()));
58+
}
59+
60+
@Test
61+
void calculateEventRateHandlesNullInputTest() {
62+
assertEquals(0.0, EventUtils.calculateEventRate(null));
63+
}
64+
65+
@Test
66+
void calculateEventRateHandlesInvalidGradesTest() {
67+
List<EventGrade> grades = List.of(
68+
EventGrade.builder().grade(-1).build(),
69+
EventGrade.builder().grade(6).build());
70+
assertEquals(6.0, EventUtils.calculateEventRate(grades));
71+
}
5472
}

0 commit comments

Comments
 (0)