Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @EnableWebMvc
- @WebAppConfiguration
- @Configuration
- @ContextConfiguration(locations = { "classpath:/WEB-INF/spring-dispatcher-servlet.xml" })
- public class LoginControllerTest {
- @Autowired
- protected WebApplicationContext wac;
- private MockMvc mockMvc;
- @Before
- public void setup() throws Exception {
- InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
- viewResolver.setPrefix("/WEB-INF/views/");
- viewResolver.setSuffix(".jsp");
- this.mockMvc = standaloneSetup(new LoginController()).setViewResolvers(viewResolver).build();
- }
- @Test
- public void testDisplayLogin() throws Exception {
- this.mockMvc.perform(get("/login")).andExpect(status().isOk()).andExpect(view().name("login")).andDo(print())
- .andExpect(forwardedUrl("/WEB-INF/views/login.jsp"));
- }
- @Test
- public void testExecuteLogin() throws Exception {
- this.mockMvc.perform(post("/login").param("username", "nikola").param("password", "pass")).andDo(print())
- .andExpect(status().isOk()).andExpect(view().name("login"));
- }
- }
- @Controller
- public class LoginController {
- @Autowired
- private LoginDelegate loginDelegate;
- @RequestMapping(value = "/login", method = RequestMethod.GET)
- public ModelAndView displayLogin(HttpServletRequest request, HttpServletResponse response, LoginBean loginBean) {
- ModelAndView model = new ModelAndView("login");
- model.addObject("loginBean", loginBean);
- return model;
- }
- @RequestMapping(value = "/login", method = RequestMethod.POST)
- public ModelAndView executeLogin(ModelAndView model, HttpServletRequest request, HttpServletResponse response,
- @ModelAttribute("loginBean") LoginBean loginBean) {
- try {
- boolean isValidUser = loginDelegate.isValidUser(loginBean.getUsername(), loginBean.getPassword());
- if (isValidUser) {
- System.out.println("User Login Successful");
- request.setAttribute("loggedInUser", loginBean.getUsername());
- model = new ModelAndView("welcome");
- } else {
- model = new ModelAndView("login");
- request.setAttribute("message", "Invalid credentials!!");
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- return model;
- }
- }
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context.xsd
- http://www.springframework.org/schema/mvc
- http://www.springframework.org/schema/mvc/spring-mvc.xsd">
- <context:component-scan base-package="com.nikola" />
- <mvc:annotation-driven enable-matrix-variables="true" />
- <bean id="viewResolver"
- class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="prefix">
- <value>/WEB-INF/views/</value>
- </property>
- <property name="suffix">
- <value>.jsp</value>
- </property>
- </bean>
- <bean id="loginDelegate" class="com.nikola.integration.delegate.LoginDelegate">
- <property name="userService" ref="userService"></property>
- </bean>
- <bean id="userService" class="com.nikola.integration.service.impl.UserServiceImpl">
- <property name="userDao" ref="userDao"></property>
- </bean>
- <bean name="userDao" class="com.nikola.integration.dao.impl.UserDaoImpl">
- <property name="dataSource" ref="dataSource"></property>
- </bean>
- <bean id="dataSource"
- class="org.springframework.jdbc.datasource.DriverManagerDataSource">
- <property name="driverClassName" value="com.mysql.jdbc.Driver" />
- <property name="url" value="jdbc:mysql://localhost:3306/store" />
- <property name="username" value="root" />
- <property name="password" value="" />
- </bean>
- </beans>
- java.lang.NullPointerException
- at com.nikola.integration.controller.LoginController.executeLogin(LoginController.java:34)
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:497)
- at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
- at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)
- at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:111)
- at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:806)
- at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:729)
- at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
- at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
- at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
- at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
- at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
- at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
- at org.springframework.test.web.servlet.TestDispatcherServlet.service(TestDispatcherServlet.java:65)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
- at org.springframework.mock.web.MockFilterChain$ServletFilterProxy.doFilter(MockFilterChain.java:167)
- at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:134)
- at org.springframework.test.web.servlet.MockMvc.perform(MockMvc.java:144)
- at com.nikola.integration.controller.test.LoginControllerTest.testExecuteLogin(LoginControllerTest.java:51)
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:497)
- at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
- at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
- at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
- at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
- at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
- at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
- at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
- at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
- at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
- at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
- at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
- at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
- at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
- at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
- at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
- at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
- at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
- at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
- at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
- at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement