You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
2.4 KiB
47 lines
2.4 KiB
package com.mydreamjob.company;
|
|
|
|
import com.mydreamjob.auth.AuthSessionService;
|
|
import com.mydreamjob.auth.JwtTokenProvider;
|
|
import com.mydreamjob.common.logging.RequestIdAccessor;
|
|
import com.mydreamjob.security.CurrentUserAccessor;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
|
|
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
|
|
import org.springframework.boot.test.mock.mockito.MockBean;
|
|
import org.springframework.data.jpa.mapping.JpaMetamodelMappingContext;
|
|
import org.springframework.test.web.servlet.MockMvc;
|
|
|
|
import java.util.List;
|
|
|
|
import static org.mockito.Mockito.*;
|
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
|
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
|
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
|
|
|
@WebMvcTest(CompanyController.class)
|
|
@AutoConfigureMockMvc(addFilters = false)
|
|
@MockBean({JpaMetamodelMappingContext.class, JwtTokenProvider.class, AuthSessionService.class,
|
|
java.time.Clock.class, RequestIdAccessor.class, CurrentUserAccessor.class,
|
|
com.mydreamjob.auth.identity.IdentityAccessFilter.class})
|
|
class CompanyOnboardingControllerTest {
|
|
@Autowired MockMvc mockMvc;
|
|
@MockBean CompanyService companyService;
|
|
@MockBean CompanyOnboardingService onboardingService;
|
|
@MockBean CurrentUserAccessor userAccessor;
|
|
|
|
@Test
|
|
void onboardingEndpointReturnsSafeAggregateAndUsesAuthenticatedUser() throws Exception {
|
|
when(userAccessor.requireUserId()).thenReturn(77L);
|
|
when(onboardingService.get(77L)).thenReturn(new CompanyOnboardingResponse(
|
|
new CompanyOnboardingResponse.CompanySummary(12L, "企业", null, "简介", "互联网", null, "地址", false),
|
|
"UNVERIFIED", null, List.of("INDUSTRY"), List.of("UPDATE_PROFILE", "SUBMIT_VERIFICATION")));
|
|
|
|
mockMvc.perform(get("/companies/me/onboarding"))
|
|
.andExpect(status().isOk())
|
|
.andExpect(jsonPath("$.data.onboardingStatus").value("UNVERIFIED"))
|
|
.andExpect(jsonPath("$.data.allowedActions[1]").value("SUBMIT_VERIFICATION"))
|
|
.andExpect(jsonPath("$.data.company.name").value("企业"));
|
|
verify(onboardingService).get(77L);
|
|
}
|
|
}
|
|
|