|
24 | 24 | */ |
25 | 25 | package com.iluwatar.compositeview; |
26 | 26 |
|
| 27 | +import org.junit.jupiter.api.Test; |
| 28 | +import static org.junit.jupiter.api.Assertions.assertTrue; |
| 29 | +import static org.mockito.Mockito.*; |
| 30 | + |
27 | 31 | import jakarta.servlet.RequestDispatcher; |
28 | 32 | import jakarta.servlet.http.HttpServletRequest; |
29 | 33 | import jakarta.servlet.http.HttpServletResponse; |
30 | | -import org.junit.jupiter.api.Test; |
31 | | -import org.mockito.Mockito; |
| 34 | + |
32 | 35 | import java.io.PrintWriter; |
33 | 36 | import java.io.StringWriter; |
34 | 37 |
|
35 | | -import static org.junit.Assert.*; |
| 38 | +class AppServletTest { |
36 | 39 |
|
37 | | -/* Written with reference from https://stackoverflow.com/questions/5434419/how-to-test-my-servlet-using-junit |
38 | | -and https://stackoverflow.com/questions/50211433/servlets-unit-testing |
39 | | - */ |
40 | | - |
41 | | -class AppServletTest extends Mockito{ |
42 | | - private String msgPartOne = "<h1>This Server Doesn't Support"; |
43 | | - private String msgPartTwo = """ |
44 | | - Requests</h1> |
45 | | - <h2>Use a GET request with boolean values for the following parameters<h2> |
46 | | - <h3>'name'</h3> |
47 | | - <h3>'bus'</h3> |
48 | | - <h3>'sports'</h3> |
49 | | - <h3>'sci'</h3> |
50 | | - <h3>'world'</h3>"""; |
51 | | - private String destination = "newsDisplay.jsp"; |
| 40 | + private final String msgPartOne = "<h1>This Server Doesn't Support"; |
| 41 | + private final String msgPartTwo = """ |
| 42 | + Requests</h1> |
| 43 | + <h2>Use a GET request with boolean values for the following parameters<h2> |
| 44 | + <h3>'name'</h3> |
| 45 | + <h3>'bus'</h3> |
| 46 | + <h3>'sports'</h3> |
| 47 | + <h3>'sci'</h3> |
| 48 | + <h3>'world'</h3>"""; |
| 49 | + private final String destination = "newsDisplay.jsp"; |
52 | 50 |
|
53 | 51 | @Test |
54 | 52 | void testDoGet() throws Exception { |
55 | | - HttpServletRequest mockReq = Mockito.mock(HttpServletRequest.class); |
56 | | - HttpServletResponse mockResp = Mockito.mock(HttpServletResponse.class); |
57 | | - RequestDispatcher mockDispatcher = Mockito.mock(RequestDispatcher.class); |
| 53 | + HttpServletRequest mockReq = mock(HttpServletRequest.class); |
| 54 | + HttpServletResponse mockResp = mock(HttpServletResponse.class); |
| 55 | + RequestDispatcher mockDispatcher = mock(RequestDispatcher.class); |
58 | 56 | StringWriter stringWriter = new StringWriter(); |
59 | 57 | PrintWriter printWriter = new PrintWriter(stringWriter); |
| 58 | + |
60 | 59 | when(mockResp.getWriter()).thenReturn(printWriter); |
61 | 60 | when(mockReq.getRequestDispatcher(destination)).thenReturn(mockDispatcher); |
| 61 | + |
62 | 62 | AppServlet curServlet = new AppServlet(); |
63 | 63 | curServlet.doGet(mockReq, mockResp); |
| 64 | + |
64 | 65 | verify(mockReq, times(1)).getRequestDispatcher(destination); |
65 | 66 | verify(mockDispatcher).forward(mockReq, mockResp); |
66 | | - |
67 | | - |
68 | 67 | } |
69 | 68 |
|
70 | 69 | @Test |
71 | 70 | void testDoPost() throws Exception { |
72 | | - HttpServletRequest mockReq = Mockito.mock(HttpServletRequest.class); |
73 | | - HttpServletResponse mockResp = Mockito.mock(HttpServletResponse.class); |
| 71 | + HttpServletRequest mockReq = mock(HttpServletRequest.class); |
| 72 | + HttpServletResponse mockResp = mock(HttpServletResponse.class); |
74 | 73 | StringWriter stringWriter = new StringWriter(); |
75 | 74 | PrintWriter printWriter = new PrintWriter(stringWriter); |
| 75 | + |
76 | 76 | when(mockResp.getWriter()).thenReturn(printWriter); |
77 | 77 |
|
78 | 78 | AppServlet curServlet = new AppServlet(); |
79 | 79 | curServlet.doPost(mockReq, mockResp); |
80 | 80 | printWriter.flush(); |
| 81 | + |
81 | 82 | assertTrue(stringWriter.toString().contains(msgPartOne + " Post " + msgPartTwo)); |
82 | 83 | } |
83 | 84 |
|
84 | 85 | @Test |
85 | 86 | void testDoPut() throws Exception { |
86 | | - HttpServletRequest mockReq = Mockito.mock(HttpServletRequest.class); |
87 | | - HttpServletResponse mockResp = Mockito.mock(HttpServletResponse.class); |
| 87 | + HttpServletRequest mockReq = mock(HttpServletRequest.class); |
| 88 | + HttpServletResponse mockResp = mock(HttpServletResponse.class); |
88 | 89 | StringWriter stringWriter = new StringWriter(); |
89 | 90 | PrintWriter printWriter = new PrintWriter(stringWriter); |
| 91 | + |
90 | 92 | when(mockResp.getWriter()).thenReturn(printWriter); |
91 | 93 |
|
92 | 94 | AppServlet curServlet = new AppServlet(); |
93 | 95 | curServlet.doPut(mockReq, mockResp); |
94 | 96 | printWriter.flush(); |
| 97 | + |
95 | 98 | assertTrue(stringWriter.toString().contains(msgPartOne + " Put " + msgPartTwo)); |
96 | 99 | } |
97 | 100 |
|
98 | 101 | @Test |
99 | 102 | void testDoDelete() throws Exception { |
100 | | - HttpServletRequest mockReq = Mockito.mock(HttpServletRequest.class); |
101 | | - HttpServletResponse mockResp = Mockito.mock(HttpServletResponse.class); |
| 103 | + HttpServletRequest mockReq = mock(HttpServletRequest.class); |
| 104 | + HttpServletResponse mockResp = mock(HttpServletResponse.class); |
102 | 105 | StringWriter stringWriter = new StringWriter(); |
103 | 106 | PrintWriter printWriter = new PrintWriter(stringWriter); |
| 107 | + |
104 | 108 | when(mockResp.getWriter()).thenReturn(printWriter); |
105 | 109 |
|
106 | 110 | AppServlet curServlet = new AppServlet(); |
107 | 111 | curServlet.doDelete(mockReq, mockResp); |
108 | 112 | printWriter.flush(); |
| 113 | + |
109 | 114 | assertTrue(stringWriter.toString().contains(msgPartOne + " Delete " + msgPartTwo)); |
110 | 115 | } |
111 | 116 | } |
0 commit comments