package org.nextprot.api.web; import static org.mockito.Matchers.isA; import static org.mockito.Mockito.when; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import java.util.Arrays; import java.util.concurrent.TimeUnit; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.nextprot.api.user.controller.UserApplicationController; import org.nextprot.api.user.domain.UserApplication; import org.nextprot.api.user.service.UserApplicationService; import org.nextprot.api.web.dbunit.base.mvc.MVCBaseSecurityIntegrationTest; import org.springframework.http.MediaType; import org.springframework.test.web.servlet.setup.MockMvcBuilders; @Ignore public class UserApplicationControllerTest extends MVCBaseSecurityIntegrationTest{ @Mock UserApplicationService applicationService; @InjectMocks UserApplicationController applicationController; @Before public void setup() { MockitoAnnotations.initMocks(this); this.mockMvc = MockMvcBuilders.standaloneSetup(applicationController).addFilters(this.springSecurityFilterChain).build(); } @Test public void shouldCreateAUserApplication() throws Exception { when(applicationService.createUserApplication(isA(UserApplication.class))).thenReturn(new UserApplication()); String token = generateTokenWithExpirationDate(1, TimeUnit.DAYS, Arrays.asList(new String[] {"USER_ROLE"})); this.mockMvc.perform(post("/user/applications").contentType(MediaType.APPLICATION_JSON).header("Authorization", "Bearer " + token).accept(MediaType.APPLICATION_JSON) .content("{\"name\":\"name\"}")).andExpect(status().isOk()); } @Test public void shouldBEForbidderApplication() throws Exception { UserApplication ua =new UserApplication(); ua.setOwnerId(23); when(applicationService.getUserApplication(isA(Long.class))).thenReturn(ua); String token = generateTokenWithExpirationDate(1, TimeUnit.DAYS, Arrays.asList(new String[] {"USER_ROLE"})); this.mockMvc.perform(get("/user/applications/1").contentType(MediaType.APPLICATION_JSON).header("Authorization", "Bearer " + token).accept(MediaType.APPLICATION_JSON)).andExpect(status().isForbidden()); } }