Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Out of the box coverage is 36.4% with spring-test #6

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31,456 changes: 31,456 additions & 0 deletions .diffblue/log/support-20250306T122753.log

Large diffs are not rendered by default.

1,603 changes: 1,603 additions & 0 deletions .diffblue/log/user-20250306T122753.log

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion .diffblue/reports/diffblue-tests-jacoco-report.xml

Large diffs are not rendered by default.

221 changes: 102 additions & 119 deletions .diffblue/reports/report.json

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,12 @@
<artifactId>mysql-connector-j</artifactId>
<version>9.0.0</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.3.8</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
Expand Down
126 changes: 97 additions & 29 deletions src/test/java/controller/HomeServletDiffblueTest.java
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
package controller;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import com.diffblue.cover.annotations.MaintainedByDiffblue;
import com.diffblue.cover.annotations.MethodsUnderTest;
import java.io.IOException;
import java.util.Collection;
import java.util.Set;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.mock.web.MockHttpSession;

public class HomeServletDiffblueTest {
/**
Expand All @@ -30,60 +34,124 @@ public void testNewHomeServlet() {
/**
* Test {@link HomeServlet#doGet(HttpServletRequest, HttpServletResponse)}.
* <ul>
* <li>When {@link HttpServletRequestWrapper#HttpServletRequestWrapper(HttpServletRequest)} with request is {@code null}.</li>
* <li>Given {@link MockHttpSession#MockHttpSession()}.</li>
* </ul>
* <p>
* Method under test: {@link HomeServlet#doGet(HttpServletRequest, HttpServletResponse)}
*/
@Test
@Ignore("TODO: Complete this test")
@Category(MaintainedByDiffblue.class)
@MethodsUnderTest({"void HomeServlet.doGet(HttpServletRequest, HttpServletResponse)"})
public void testDoGet_whenHttpServletRequestWrapperWithRequestIsNull() throws IOException, ServletException {
// TODO: Diffblue Cover was only able to create a partial test for this method:
// Reason: No inputs found that don't throw a trivial exception.
// Diffblue Cover tried to run the arrange/act section, but the method under
// test threw
// java.lang.IllegalArgumentException: Request cannot be null
// at javax.servlet.ServletRequestWrapper.<init>(ServletRequestWrapper.java:50)
// at javax.servlet.http.HttpServletRequestWrapper.<init>(HttpServletRequestWrapper.java:47)
// See https://diff.blue/R013 to resolve this issue.
public void testDoGet_givenMockHttpSession() throws IOException, ServletException {
// Arrange
HomeServlet homeServlet = new HomeServlet();

MockHttpServletRequest request = new MockHttpServletRequest();
request.setSession(new MockHttpSession());
MockHttpServletResponse response = new MockHttpServletResponse();

// Act
homeServlet.doGet(request, response);

// Assert
Collection<String> headerNames = response.getHeaderNames();
assertEquals(1, headerNames.size());
assertTrue(headerNames instanceof Set);
assertEquals("login", response.getRedirectedUrl());
assertEquals(302, response.getStatus());
assertTrue(headerNames.contains("Location"));
assertTrue(response.isCommitted());
}

/**
* Test {@link HomeServlet#doGet(HttpServletRequest, HttpServletResponse)}.
* <ul>
* <li>Then {@link MockHttpServletResponse} (default constructor) HeaderNames size is one.</li>
* </ul>
* <p>
* Method under test: {@link HomeServlet#doGet(HttpServletRequest, HttpServletResponse)}
*/
@Test
@Category(MaintainedByDiffblue.class)
@MethodsUnderTest({"void HomeServlet.doGet(HttpServletRequest, HttpServletResponse)"})
public void testDoGet_thenMockHttpServletResponseHeaderNamesSizeIsOne() throws IOException, ServletException {
// Arrange
HomeServlet homeServlet = new HomeServlet();
HttpServletRequestWrapper request = new HttpServletRequestWrapper(null);
MockHttpServletRequest request = new MockHttpServletRequest();
MockHttpServletResponse response = new MockHttpServletResponse();

// Act
homeServlet.doGet(request, new HttpServletResponseWrapper(null));
homeServlet.doGet(request, response);

// Assert
Collection<String> headerNames = response.getHeaderNames();
assertEquals(1, headerNames.size());
assertTrue(headerNames instanceof Set);
assertEquals("login", response.getRedirectedUrl());
assertEquals(302, response.getStatus());
assertTrue(headerNames.contains("Location"));
assertTrue(response.isCommitted());
}

/**
* Test {@link HomeServlet#doPost(HttpServletRequest, HttpServletResponse)}.
* <ul>
* <li>When {@link HttpServletRequestWrapper#HttpServletRequestWrapper(HttpServletRequest)} with request is {@code null}.</li>
* <li>Given {@link MockHttpSession#MockHttpSession()}.</li>
* </ul>
* <p>
* Method under test: {@link HomeServlet#doPost(HttpServletRequest, HttpServletResponse)}
*/
@Test
@Ignore("TODO: Complete this test")
@Category(MaintainedByDiffblue.class)
@MethodsUnderTest({"void HomeServlet.doPost(HttpServletRequest, HttpServletResponse)"})
public void testDoPost_whenHttpServletRequestWrapperWithRequestIsNull() throws IOException, ServletException {
// TODO: Diffblue Cover was only able to create a partial test for this method:
// Reason: No inputs found that don't throw a trivial exception.
// Diffblue Cover tried to run the arrange/act section, but the method under
// test threw
// java.lang.IllegalArgumentException: Request cannot be null
// at javax.servlet.ServletRequestWrapper.<init>(ServletRequestWrapper.java:50)
// at javax.servlet.http.HttpServletRequestWrapper.<init>(HttpServletRequestWrapper.java:47)
// See https://diff.blue/R013 to resolve this issue.
public void testDoPost_givenMockHttpSession() throws IOException, ServletException {
// Arrange
HomeServlet homeServlet = new HomeServlet();

MockHttpServletRequest request = new MockHttpServletRequest();
request.setSession(new MockHttpSession());
MockHttpServletResponse response = new MockHttpServletResponse();

// Act
homeServlet.doPost(request, response);

// Assert
Collection<String> headerNames = response.getHeaderNames();
assertEquals(1, headerNames.size());
assertTrue(headerNames instanceof Set);
assertEquals("login", response.getRedirectedUrl());
assertEquals(302, response.getStatus());
assertTrue(headerNames.contains("Location"));
assertTrue(response.isCommitted());
}

/**
* Test {@link HomeServlet#doPost(HttpServletRequest, HttpServletResponse)}.
* <ul>
* <li>Then {@link MockHttpServletResponse} (default constructor) HeaderNames size is one.</li>
* </ul>
* <p>
* Method under test: {@link HomeServlet#doPost(HttpServletRequest, HttpServletResponse)}
*/
@Test
@Category(MaintainedByDiffblue.class)
@MethodsUnderTest({"void HomeServlet.doPost(HttpServletRequest, HttpServletResponse)"})
public void testDoPost_thenMockHttpServletResponseHeaderNamesSizeIsOne() throws IOException, ServletException {
// Arrange
HomeServlet homeServlet = new HomeServlet();
HttpServletRequestWrapper request = new HttpServletRequestWrapper(null);
MockHttpServletRequest request = new MockHttpServletRequest();
MockHttpServletResponse response = new MockHttpServletResponse();

// Act
homeServlet.doPost(request, new HttpServletResponseWrapper(null));
homeServlet.doPost(request, response);

// Assert
Collection<String> headerNames = response.getHeaderNames();
assertEquals(1, headerNames.size());
assertTrue(headerNames instanceof Set);
assertEquals("login", response.getRedirectedUrl());
assertEquals(302, response.getStatus());
assertTrue(headerNames.contains("Location"));
assertTrue(response.isCommitted());
}
}
121 changes: 92 additions & 29 deletions src/test/java/controller/LoginServletDiffblueTest.java
Original file line number Diff line number Diff line change
@@ -1,17 +1,26 @@
package controller;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import com.diffblue.cover.annotations.MaintainedByDiffblue;
import com.diffblue.cover.annotations.MethodsUnderTest;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.mockito.Mockito;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.mock.web.MockHttpSession;
import org.springframework.mock.web.MockRequestDispatcher;

public class LoginServletDiffblueTest {
/**
Expand All @@ -30,60 +39,114 @@ public void testNewLoginServlet() {
/**
* Test {@link LoginServlet#doGet(HttpServletRequest, HttpServletResponse)}.
* <ul>
* <li>When {@link HttpServletRequestWrapper#HttpServletRequestWrapper(HttpServletRequest)} with request is {@code null}.</li>
* <li>Given {@link MockHttpSession#MockHttpSession()}.</li>
* </ul>
* <p>
* Method under test: {@link LoginServlet#doGet(HttpServletRequest, HttpServletResponse)}
*/
@Test
@Ignore("TODO: Complete this test")
@Category(MaintainedByDiffblue.class)
@MethodsUnderTest({"void LoginServlet.doGet(HttpServletRequest, HttpServletResponse)"})
public void testDoGet_whenHttpServletRequestWrapperWithRequestIsNull() throws IOException, ServletException {
// TODO: Diffblue Cover was only able to create a partial test for this method:
// Reason: No inputs found that don't throw a trivial exception.
// Diffblue Cover tried to run the arrange/act section, but the method under
// test threw
// java.lang.IllegalArgumentException: Request cannot be null
// at javax.servlet.ServletRequestWrapper.<init>(ServletRequestWrapper.java:50)
// at javax.servlet.http.HttpServletRequestWrapper.<init>(HttpServletRequestWrapper.java:47)
// See https://diff.blue/R013 to resolve this issue.
public void testDoGet_givenMockHttpSession() throws IOException, ServletException {
// Arrange
LoginServlet loginServlet = new LoginServlet();

MockHttpServletRequest request = new MockHttpServletRequest();
request.setSession(new MockHttpSession());
MockHttpServletResponse response = new MockHttpServletResponse();

// Act
loginServlet.doGet(request, response);

// Assert
assertEquals("WEB-INF/login.jsp", response.getForwardedUrl());
}

/**
* Test {@link LoginServlet#doGet(HttpServletRequest, HttpServletResponse)}.
* <ul>
* <li>Then {@link MockHttpServletResponse} (default constructor) ForwardedUrl is {@code WEB-INF/login.jsp}.</li>
* </ul>
* <p>
* Method under test: {@link LoginServlet#doGet(HttpServletRequest, HttpServletResponse)}
*/
@Test
@Category(MaintainedByDiffblue.class)
@MethodsUnderTest({"void LoginServlet.doGet(HttpServletRequest, HttpServletResponse)"})
public void testDoGet_thenMockHttpServletResponseForwardedUrlIsWebInfLoginJsp() throws IOException, ServletException {
// Arrange
LoginServlet loginServlet = new LoginServlet();
HttpServletRequestWrapper request = new HttpServletRequestWrapper(null);
MockHttpServletRequest request = new MockHttpServletRequest();
MockHttpServletResponse response = new MockHttpServletResponse();

// Act
loginServlet.doGet(request, new HttpServletResponseWrapper(null));
loginServlet.doGet(request, response);

// Assert
assertEquals("WEB-INF/login.jsp", response.getForwardedUrl());
}

/**
* Test {@link LoginServlet#doPost(HttpServletRequest, HttpServletResponse)}.
* <ul>
* <li>When {@link HttpServletRequestWrapper#HttpServletRequestWrapper(HttpServletRequest)} with request is {@code null}.</li>
* <li>Then {@link MockHttpServletResponse} (default constructor) ForwardedUrl is {@code Resource}.</li>
* </ul>
* <p>
* Method under test: {@link LoginServlet#doPost(HttpServletRequest, HttpServletResponse)}
*/
@Test
@Ignore("TODO: Complete this test")
@Category(MaintainedByDiffblue.class)
@MethodsUnderTest({"void LoginServlet.doPost(HttpServletRequest, HttpServletResponse)"})
public void testDoPost_whenHttpServletRequestWrapperWithRequestIsNull() throws IOException, ServletException {
// TODO: Diffblue Cover was only able to create a partial test for this method:
// Reason: No inputs found that don't throw a trivial exception.
// Diffblue Cover tried to run the arrange/act section, but the method under
// test threw
// java.lang.IllegalArgumentException: Request cannot be null
// at javax.servlet.ServletRequestWrapper.<init>(ServletRequestWrapper.java:50)
// at javax.servlet.http.HttpServletRequestWrapper.<init>(HttpServletRequestWrapper.java:47)
// See https://diff.blue/R013 to resolve this issue.
public void testDoPost_thenMockHttpServletResponseForwardedUrlIsResource() throws IOException, ServletException {
// Arrange
LoginServlet loginServlet = new LoginServlet();
MockHttpServletRequest request = mock(MockHttpServletRequest.class);
when(request.getRequestDispatcher(Mockito.<String>any())).thenReturn(new MockRequestDispatcher("Resource"));
doNothing().when(request).setAttribute(Mockito.<String>any(), Mockito.<Object>any());
when(request.getParameter(Mockito.<String>any())).thenReturn("https://example.org/example");
doNothing().when(request).removeAttribute(Mockito.<String>any());
MockHttpServletResponse response = new MockHttpServletResponse();

// Act
loginServlet.doPost(request, response);

// Assert
verify(request, atLeast(1)).getParameter(Mockito.<String>any());
verify(request).getRequestDispatcher(eq("WEB-INF/login.jsp"));
verify(request).removeAttribute(eq("msg"));
verify(request, atLeast(1)).setAttribute(Mockito.<String>any(), Mockito.<Object>any());
assertEquals("Resource", response.getForwardedUrl());
}

/**
* Test {@link LoginServlet#doPost(HttpServletRequest, HttpServletResponse)}.
* <ul>
* <li>Then {@link MockHttpServletResponse} (default constructor) ForwardedUrl is {@code Resource}.</li>
* </ul>
* <p>
* Method under test: {@link LoginServlet#doPost(HttpServletRequest, HttpServletResponse)}
*/
@Test
@Category(MaintainedByDiffblue.class)
@MethodsUnderTest({"void LoginServlet.doPost(HttpServletRequest, HttpServletResponse)"})
public void testDoPost_thenMockHttpServletResponseForwardedUrlIsResource2() throws IOException, ServletException {
// Arrange
LoginServlet loginServlet = new LoginServlet();
HttpServletRequestWrapper request = new HttpServletRequestWrapper(null);
MockHttpServletRequest request = mock(MockHttpServletRequest.class);
when(request.getRequestDispatcher(Mockito.<String>any())).thenReturn(new MockRequestDispatcher("Resource"));
doNothing().when(request).setAttribute(Mockito.<String>any(), Mockito.<Object>any());
when(request.getParameter(Mockito.<String>any())).thenReturn("");
doNothing().when(request).removeAttribute(Mockito.<String>any());
MockHttpServletResponse response = new MockHttpServletResponse();

// Act
loginServlet.doPost(request, new HttpServletResponseWrapper(null));
loginServlet.doPost(request, response);

// Assert
verify(request, atLeast(1)).getParameter(Mockito.<String>any());
verify(request).getRequestDispatcher(eq("WEB-INF/login.jsp"));
verify(request).removeAttribute(eq("msg"));
verify(request, atLeast(1)).setAttribute(Mockito.<String>any(), Mockito.<Object>any());
assertEquals("Resource", response.getForwardedUrl());
}
}
Loading