package com.juick.api.tests; import com.juick.api.configuration.ApiAppConfiguration; import com.juick.api.configuration.ApiMvcConfiguration; import com.juick.service.MessagesService; import com.juick.service.UserService; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mockito; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Primary; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.web.WebAppConfiguration; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; import javax.inject.Inject; import java.util.Collections; import static org.mockito.Mockito.when; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; /** * Created by vitalyster on 25.11.2016. */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration @WebAppConfiguration public class MessagesTests { @Configuration @Import(value={ApiMvcConfiguration.class, ApiAppConfiguration.class}) static class Config { @Bean @Primary MessagesService messagesService() { return Mockito.mock(MessagesService.class); } @Bean @Primary UserService userService() { return Mockito.mock(UserService.class); } } private MockMvc mockMvc; @Inject WebApplicationContext webApplicationContext; @Inject MessagesService messagesService; @Inject UserService userService; @Before public void setUp() { mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext) .build(); } @Test public void messageTests() throws Exception { mockMvc.perform(get("/home")) .andExpect(status().is4xxClientError()); when(userService.getUIDByHttpAuth(null)) .thenReturn(1); when(messagesService.getMyFeed(1, 0)) .thenReturn(Collections.singletonList(1)); mockMvc.perform(get("/home")) .andExpect(status().isOk()); } }