| | |
| | | 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; |
| | |
| | | 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); |