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/system/service/GuideNotificationServiceTest.java |   57 +++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 49 insertions(+), 8 deletions(-)

diff --git a/backend/src/test/java/com/tourguide/modules/system/service/GuideNotificationServiceTest.java b/backend/src/test/java/com/tourguide/modules/system/service/GuideNotificationServiceTest.java
index dc70778..1253706 100644
--- a/backend/src/test/java/com/tourguide/modules/system/service/GuideNotificationServiceTest.java
+++ b/backend/src/test/java/com/tourguide/modules/system/service/GuideNotificationServiceTest.java
@@ -10,26 +10,40 @@
 import org.junit.jupiter.api.Test;
 import org.mockito.ArgumentCaptor;
 
+import java.util.Collections;
+
 import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 class GuideNotificationServiceTest {
+    private SystemNoticeMapper noticeMapper;
     private GuideNotificationMapper notificationMapper;
     private GuidePushDeviceService pushDeviceService;
     private GuideNotificationService notificationService;
 
     @BeforeEach
     void setUp() {
+        noticeMapper = mock(SystemNoticeMapper.class);
         notificationMapper = mock(GuideNotificationMapper.class);
         pushDeviceService = mock(GuidePushDeviceService.class);
         notificationService = new GuideNotificationService(
-                mock(SystemNoticeMapper.class), mock(GuideNoticeReadMapper.class),
+                noticeMapper, mock(GuideNoticeReadMapper.class),
                 notificationMapper, pushDeviceService);
     }
 
     @Test
-    void assignedOrderShouldUseSpecifiedPushCopy() {
+    void unreadCountShouldIncludePersonalNotificationsWithoutSystemNotices() {
+        when(noticeMapper.selectList(any())).thenReturn(Collections.emptyList());
+        when(notificationMapper.selectCount(any())).thenReturn(1L);
+
+        assertThat(notificationService.unreadCount(8L)).isEqualTo(1L);
+    }
+
+    @Test
+    void assignedOrderShouldUsePrototypeCopy() {
         TourOrder order = order();
 
         notificationService.notifyOrderAssigned(order);
@@ -37,21 +51,48 @@
         ArgumentCaptor<GuideNotification> captor = ArgumentCaptor.forClass(GuideNotification.class);
         verify(notificationMapper).insert(captor.capture());
         GuideNotification notification = captor.getValue();
-        String content = "景区:青城山;汇合点:景区正门;服务类型:精品拼团;人数:4。请及时接单。";
-        assertThat(notification.getTitle()).isEqualTo("您有新的讲解订单");
+        String content = "您有一个新的讲解订单,请查看";
+        assertThat(notification.getTitle()).isEqualTo("接单提醒");
         assertThat(notification.getContent()).isEqualTo(content);
-        verify(pushDeviceService).push(8L, "您有新的讲解订单", content,
+        verify(pushDeviceService).push(8L, "接单提醒", content,
                 "/pages/order-detail/index?id=99");
     }
 
     @Test
-    void visitorCancellationShouldUseSpecifiedPushCopy() {
+    void visitorCancellationShouldUsePrototypeCopy() {
         TourOrder order = order();
 
         notificationService.notifyVisitorCancelledOrder(order);
 
-        verify(pushDeviceService).push(8L, "订单已取消",
-                "游客已取消订单,该订单无需再前往服务。", "/pages/order-detail/index?id=99");
+        verify(pushDeviceService).push(8L, "取消提醒",
+                "您有一个讲解订单被取消,请查看", "/pages/order-detail/index?id=99");
+    }
+
+    @Test
+    void reviewedOrderShouldNotifyGuide() {
+        TourOrder order = order();
+
+        notificationService.notifyOrderReviewed(order);
+
+        ArgumentCaptor<GuideNotification> captor = ArgumentCaptor.forClass(GuideNotification.class);
+        verify(notificationMapper).insert(captor.capture());
+        GuideNotification notification = captor.getValue();
+        assertThat(notification.getNotificationType()).isEqualTo("ORDER_REVIEWED");
+        assertThat(notification.getOrderId()).isEqualTo(99L);
+        assertThat(notification.getTargetUrl()).isEqualTo("/pages/order-detail/index?id=99");
+        verify(pushDeviceService).push(8L, "评价提醒", "您有一条新的订单评价,请查看",
+                "/pages/order-detail/index?id=99");
+    }
+
+    @Test
+    void auditResultShouldUsePrototypeCopy() {
+        notificationService.notifyAuditResult(8L, true);
+
+        ArgumentCaptor<GuideNotification> captor = ArgumentCaptor.forClass(GuideNotification.class);
+        verify(notificationMapper).insert(captor.capture());
+        GuideNotification notification = captor.getValue();
+        assertThat(notification.getTitle()).isEqualTo("系统提醒");
+        assertThat(notification.getContent()).isEqualTo("您的资料审核已通过");
     }
 
     @Test

--
Gitblit v1.7.1