Skip to content

Commit

Permalink
Unit tests for homepage and logout (#89)
Browse files Browse the repository at this point in the history
* I have implemented the unit tests for the homepage servlet and logout servlet.

* PR changes for testing have been implemented.

* Test cases have been updated.

* Test cases have been updated.

* PR Test cases have been edited again.

* PR Test cases have been edited again.
  • Loading branch information
ChristopherJamesTaylor authored and reecebenson committed Nov 9, 2019
1 parent 9a733e3 commit 75d241c
Show file tree
Hide file tree
Showing 4 changed files with 109 additions and 6 deletions.
5 changes: 3 additions & 2 deletions src/main/java/net/novucs/esd/controllers/HomepageServlet.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HomepageServlet extends BaseServlet {
public class HomepageServlet extends HttpServlet {

private static final long serialVersionUID = 1426082847044519303L;

Expand All @@ -18,6 +19,6 @@ public void doGet(HttpServletRequest request, HttpServletResponse response)

@Override
public String getServletInfo() {
return "Homepage Servlet";
return "HomepageServlet";
}
}
10 changes: 6 additions & 4 deletions src/main/java/net/novucs/esd/controllers/LogoutServlet.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
package net.novucs.esd.controllers;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

@WebServlet(name = "LogoutServlet")
public class LogoutServlet extends BaseServlet {
public class LogoutServlet extends HttpServlet {
private static final long serialVersionUID = 1826081247044519303L;

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
HttpSession session = request.getSession(false);

if (session != null) {
Expand All @@ -25,4 +27,4 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response)
public String getServletInfo() {
return "LogoutServlet";
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package net.novucs.esd.test.controller;

import static junit.framework.TestCase.assertTrue;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.novucs.esd.controllers.HomepageServlet;
import org.junit.Test;
import org.mockito.stubbing.Answer;

public class TestHomepageServlet {

@Test
public void testRequestGetsMapAttribute()
throws ServletException, IOException {
// Given
HomepageServlet servlet = new HomepageServlet();
HttpServletRequest request = mock(HttpServletRequest.class);
HttpServletResponse response = mock(HttpServletResponse.class);

// When
when(request.getRequestDispatcher("/homepage.jsp")).thenAnswer(
(Answer<RequestDispatcher>) invocation -> mock(RequestDispatcher.class));
servlet.doGet(request, response);

// Assert
verify(request).getRequestDispatcher(eq("/homepage.jsp"));
}

@Test
public void testHomepageInServletInfo() {
// Given
HomepageServlet servlet = new HomepageServlet();

// When
String servletInfo = servlet.getServletInfo();

// Assert
assertTrue("Homepage servlet info must contain the key word Homepage",
servletInfo.contains("Homepage"));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package net.novucs.esd.test.controller;

import static junit.framework.TestCase.assertTrue;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import net.novucs.esd.controllers.LogoutServlet;
import org.junit.Test;

public class TestLogoutServlet {

@Test
public void testRequestGetsMapAttribute()
throws ServletException, IOException {
// Given
LogoutServlet servlet = new LogoutServlet();
HttpServletRequest request = mock(HttpServletRequest.class);
HttpServletResponse response = mock(HttpServletResponse.class);

// When
when(request.getSession(true)).thenReturn(mock(HttpSession.class));
when(request.getRequestDispatcher(any())).thenReturn(mock(RequestDispatcher.class));
servlet.doGet(request, response);

// Assert
verify(response, times(1)).sendRedirect(eq("login"));
}

@Test
public void testLogoutInServletInfo() {
// Given
LogoutServlet servlet = new LogoutServlet();

// When
String servletInfo = servlet.getServletInfo();

// Assert
assertTrue("Logout servlet info must contain the key word Logout",
servletInfo.contains("Logout"));
}
}

0 comments on commit 75d241c

Please sign in to comment.