From 82a8bc62d5b9d5d607f6952329952b17eda2f0a0 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期一, 14 九月 2026 15:44:34 +0800
Subject: [PATCH] update
---
backend/src/test/java/com/tourguide/modules/order/service/GuideSessionTransitionServiceTest.java | 28 ++++++++++++++++++++++++++++
1 files changed, 28 insertions(+), 0 deletions(-)
diff --git a/backend/src/test/java/com/tourguide/modules/order/service/GuideSessionTransitionServiceTest.java b/backend/src/test/java/com/tourguide/modules/order/service/GuideSessionTransitionServiceTest.java
index 0ed2e08..6e10aa4 100644
--- a/backend/src/test/java/com/tourguide/modules/order/service/GuideSessionTransitionServiceTest.java
+++ b/backend/src/test/java/com/tourguide/modules/order/service/GuideSessionTransitionServiceTest.java
@@ -8,6 +8,9 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import java.time.LocalDateTime;
+
+import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
@@ -67,6 +70,31 @@
verify(sessionMapper, never()).releaseGroupCapacity(18L, 8L, 3);
}
+ @Test
+ void shouldCompleteSessionAndDisableGuideAfterLectureEnds() {
+ GuideReceivingSession session = session("GROUP", "IN_SERVICE");
+ LocalDateTime completedAt = LocalDateTime.of(2026, 9, 14, 12, 30);
+ when(orderMapper.completeSessionOrders(8L, 18L, completedAt)).thenReturn(2);
+
+ assertThat(service.completeSession(session, completedAt)).isTrue();
+
+ verify(orderMapper).completeSessionOrders(8L, 18L, completedAt);
+ verify(sessionMapper).stopServiceSession(18L, 8L);
+ verify(realtimeStatusMapper).stopGuide(8L);
+ }
+
+ @Test
+ void shouldLeaveSessionOpenWhenNoActiveOrderCanBeCompleted() {
+ GuideReceivingSession session = session("GROUP", "IN_SERVICE");
+ LocalDateTime completedAt = LocalDateTime.of(2026, 9, 14, 12, 30);
+ when(orderMapper.completeSessionOrders(8L, 18L, completedAt)).thenReturn(0);
+
+ assertThat(service.completeSession(session, completedAt)).isFalse();
+
+ verify(sessionMapper, never()).stopServiceSession(18L, 8L);
+ verify(realtimeStatusMapper, never()).stopGuide(8L);
+ }
+
private TourOrder cancelledOrder(Long guideId, Long sessionId, int peopleCount) {
TourOrder order = new TourOrder();
order.setGuideId(guideId);
--
Gitblit v1.7.1