package org.appfuse.webapp.controller;
import org.appfuse.Constants;
import org.appfuse.service.UserManager;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import java.util.List;
import java.util.Map;
import static org.junit.Assert.*;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
public class UserControllerTest extends BaseControllerTestCase {
@Autowired
private ApplicationContext applicationContext;
@Autowired
private UserController controller;
private MockMvc mockMvc;
@Before
public void setUp() {
mockMvc = MockMvcBuilders.standaloneSetup(controller).build();
}
@Test
public void testHandleRequest() throws Exception {
mockMvc.perform(get("/admin/users"))
.andExpect(status().isOk())
.andExpect(model().attributeExists(Constants.USER_LIST))
.andExpect(view().name("admin/userList"));
}
@Test
public void testSearch() throws Exception {
// reindex before searching
UserManager userManager = (UserManager) applicationContext.getBean("userManager");
userManager.reindex();
Map<String,Object> model = mockMvc.perform((get("/admin/users")).param("q", "admin"))
.andExpect(status().isOk())
.andExpect(model().attributeExists(Constants.USER_LIST))
.andExpect(view().name("admin/userList"))
.andReturn()
.getModelAndView()
.getModel();
List results = (List) model.get(Constants.USER_LIST);
assertNotNull(results);
assertTrue(results.size() >= 1);
}
}