liujie
2026-09-09 39f6fca28e3f78abe48f08e474ec011abb990b36
backend/src/test/java/com/tourguide/modules/user/service/GuideRegistrationServiceTest.java
@@ -7,6 +7,7 @@
import com.tourguide.modules.user.dto.GuideRegistrationTokenResponse;
import com.tourguide.modules.user.dto.SmsCodeResponse;
import com.tourguide.modules.user.entity.GuideApplication;
import com.tourguide.modules.user.entity.GuideUser;
import com.tourguide.modules.user.mapper.GuideApplicationMapper;
import com.tourguide.modules.user.mapper.GuideTeamMapper;
import org.junit.jupiter.api.BeforeEach;
@@ -28,6 +29,7 @@
    private ValueOperations<String, String> valueOperations;
    private GuideApplicationMapper applicationMapper;
    private GuideVerificationCodeService verificationCodeService;
    private GuideUserService guideUserService;
    private GuideRegistrationService service;
    @SuppressWarnings("unchecked")
@@ -41,7 +43,7 @@
                .thenReturn("13800138000");
        when(applicationMapper.selectCount(any())).thenReturn(0L);
        GuideUserService guideUserService = mock(GuideUserService.class);
        guideUserService = mock(GuideUserService.class);
        when(guideUserService.findByPhone("13800138000")).thenReturn(null);
        OperationCityMapper cityMapper = mock(OperationCityMapper.class);
        OperationCity city = new OperationCity();
@@ -81,6 +83,18 @@
    }
    @Test
    void shouldAllowCancelledGuideToRegisterAgain() {
        GuideUser guide = new GuideUser();
        guide.setStatus(GuideUserService.STATUS_CANCELLED);
        when(guideUserService.findByPhone("13800138000")).thenReturn(guide);
        GuideRegistrationTokenResponse response = service.verifyPhone("13800138000", "794535");
        assertThat(response.getRegistrationToken()).isNotBlank();
        verify(verificationCodeService).verifyAndConsume("13800138000", "794535", "registration");
    }
    @Test
    void shouldCreatePendingApplicationAndConsumeToken() {
        GuideRegistrationSubmitRequest request = new GuideRegistrationSubmitRequest();
        request.setRealName("张导游");