From 4f6f15b818704079ff2e4e4719b798f48d68a335 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 11 九月 2026 13:52:19 +0800
Subject: [PATCH] update
---
backend/src/test/java/com/tourguide/modules/review/service/OrderReviewServiceTest.java | 62 ++++++++++++++++++++++++++++++
1 files changed, 61 insertions(+), 1 deletions(-)
diff --git a/backend/src/test/java/com/tourguide/modules/review/service/OrderReviewServiceTest.java b/backend/src/test/java/com/tourguide/modules/review/service/OrderReviewServiceTest.java
index bd650ba..b34c258 100644
--- a/backend/src/test/java/com/tourguide/modules/review/service/OrderReviewServiceTest.java
+++ b/backend/src/test/java/com/tourguide/modules/review/service/OrderReviewServiceTest.java
@@ -4,11 +4,18 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.MybatisConfiguration;
import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
+import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.ibatis.builder.MapperBuilderAssistant;
import com.tourguide.modules.order.mapper.TourOrderMapper;
+import com.tourguide.modules.order.domain.OrderStatus;
+import com.tourguide.modules.order.entity.TourOrder;
+import com.tourguide.modules.review.dto.OrderReviewCreateRequest;
+import com.tourguide.modules.review.dto.GuideRatingItemResponse;
import com.tourguide.modules.review.dto.GuideRatingResponse;
import com.tourguide.modules.review.entity.OrderReview;
import com.tourguide.modules.review.mapper.OrderReviewMapper;
+import com.tourguide.modules.review.dto.OrderReviewResponse;
+import com.tourguide.modules.system.service.GuideNotificationService;
import com.tourguide.modules.user.entity.GuideUser;
import com.tourguide.modules.user.mapper.GuideUserMapper;
import com.tourguide.modules.user.service.GuideAutoDisableService;
@@ -55,6 +62,7 @@
review.setGuideId(12L);
review.setScore(new BigDecimal("5.0"));
review.setContent("讲解专业");
+ review.setImageUrls("[\"/uploads/review-images/example.jpg\"]");
review.setReviewedAt(LocalDateTime.of(2026, 7, 29, 10, 30));
review.setStatus(1);
@@ -75,7 +83,59 @@
assertThat(response.getRows()).hasSize(1);
assertThat(response.getRows().get(0).getDateText()).isEqualTo("2026年7月29日");
assertThat(response.getRows().get(0).getComment()).isEqualTo("讲解专业");
- assertThat(response.getRows().get(0).getImages()).isEmpty();
+ assertThat(response.getRows().get(0).getImages())
+ .containsExactly("/uploads/review-images/example.jpg");
+ }
+
+ @Test
+ void reviewResponsesShouldParseLegacyImageFormats() {
+ OrderReview review = new OrderReview();
+ review.setImageUrls("/uploads/review-images/one.jpg,/uploads/review-images/two.jpg");
+
+ assertThat(new GuideRatingItemResponse(review).getImages())
+ .containsExactly("/uploads/review-images/one.jpg", "/uploads/review-images/two.jpg");
+ assertThat(new OrderReviewResponse(review).getImages())
+ .containsExactly("/uploads/review-images/one.jpg", "/uploads/review-images/two.jpg");
+ }
+
+ @Test
+ void createShouldNotifyGuideAfterReviewIsSaved() {
+ OrderReviewMapper reviewMapper = mock(OrderReviewMapper.class);
+ TourOrderMapper orderMapper = mock(TourOrderMapper.class);
+ GuideUserMapper guideUserMapper = mock(GuideUserMapper.class);
+ GuideNotificationService notificationService = mock(GuideNotificationService.class);
+ OrderReviewService reviewService = new OrderReviewService(
+ reviewMapper, orderMapper, guideUserMapper, mock(GuideAutoDisableService.class),
+ new ObjectMapper(), notificationService);
+
+ TourOrder order = new TourOrder();
+ order.setId(99L);
+ order.setOrderNo("ORDER-99");
+ order.setVisitorId(7L);
+ order.setGuideId(8L);
+ order.setStatus(OrderStatus.COMPLETED.getCode());
+ when(orderMapper.selectById(99L)).thenReturn(order);
+ when(reviewMapper.countByOrderId(99L)).thenReturn(0L);
+
+ GuideUser guide = new GuideUser();
+ guide.setId(8L);
+ guide.setStatus(1);
+ when(guideUserMapper.selectById(8L)).thenReturn(guide);
+ when(reviewMapper.selectAverageScore(8L)).thenReturn(new BigDecimal("5.00"));
+
+ OrderReviewCreateRequest request = new OrderReviewCreateRequest();
+ request.setOrderId(99L);
+ request.setScore(new BigDecimal("5.00"));
+ request.setContent("服务很好");
+ request.setImages(Collections.singletonList("/uploads/review-images/example.jpg"));
+
+ reviewService.create(7L, request);
+
+ ArgumentCaptor<OrderReview> reviewCaptor = ArgumentCaptor.forClass(OrderReview.class);
+ verify(reviewMapper).insert(reviewCaptor.capture());
+ assertThat(reviewCaptor.getValue().getImageUrls())
+ .isEqualTo("[\"/uploads/review-images/example.jpg\"]");
+ verify(notificationService).notifyOrderReviewed(order);
}
@Test
--
Gitblit v1.7.1