package io.kaif.web.v1; import static org.hamcrest.CoreMatchers.is; import static org.mockito.Matchers.isA; 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; import java.time.Instant; import java.time.ZoneId; import java.time.ZonedDateTime; import java.util.Optional; import org.junit.Before; import org.junit.Test; import io.kaif.model.account.Account; import io.kaif.model.clientapp.ClientAppUserAccessToken; import io.kaif.test.MvcIntegrationTests; public class V1UserResourceTest extends MvcIntegrationTests { private Account citizen; @Before public void setUp() throws Exception { citizen = accountCitizen("citizen1"); } // @Test // public void printApiDocs() throws Exception { // mockMvc.perform(get("/api-docs/v1/user")).andDo(print()); // } @Test public void basic() throws Exception { Instant createTime = ZonedDateTime.of(2015, 3, 4, 23, 5, 6, 7, ZoneId.of("Asia/Taipei")) .toInstant(); Account account = Account.create("user1", "user1@example.com", "pwd", createTime); when(accountService.findMe(isA(ClientAppUserAccessToken.class))).thenReturn(Optional.of(account)); oauthPerform(account, get("/v1/user/basic")).andExpect(status().isOk()) .andExpect(jsonPath("$.data.username", is("user1"))) .andExpect(jsonPath("$.data.createTime", is("2015-03-04T15:05:06Z"))); } @Test public void basicByUser() throws Exception { Account account = accountCitizen("userB"); when(accountService.loadAccount("userB")).thenReturn(account); oauthPerform(citizen, get("/v1/user/userB/basic")).andExpect(status().isOk()) .andExpect(jsonPath("$.data.username", is("userB"))); } }