LogoutServlet.java

1
package com.popx.presentazione;
2
3
import com.popx.modello.ProdottoBean;
4
import com.popx.persistenza.ProdottoDAO;
5
import com.popx.persistenza.ProdottoDAOImpl;
6
7
import javax.servlet.ServletException;
8
import javax.servlet.annotation.WebServlet;
9
import javax.servlet.http.HttpServlet;
10
import javax.servlet.http.HttpServletRequest;
11
import javax.servlet.http.HttpServletResponse;
12
import javax.servlet.http.HttpSession;
13
import java.io.IOException;
14
import java.sql.SQLException;
15
import java.util.List;
16
import java.util.logging.Level;
17
import java.util.logging.Logger;
18
19
@WebServlet("/logout")
20
public class LogoutServlet extends HttpServlet {
21
22
    private final ProdottoDAO prodottoDAO;
23
    private static final Logger LOGGER = Logger.getLogger(LogoutServlet.class.getName());
24
25
    // produzione
26
    public LogoutServlet() {
27
        this.prodottoDAO = new ProdottoDAOImpl();
28
    }
29
30
    // test (dependency injection)
31
    public LogoutServlet(ProdottoDAO prodottoDAO) {
32
        this.prodottoDAO = prodottoDAO;
33
    }
34
35
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
36
        HttpSession session = request.getSession();
37
        List<ProdottoBean> cart = (List<ProdottoBean>) session.getAttribute("cart");
38
39 1 1. doGet : negated conditional → KILLED
        if (cart != null) {
40
            String userEmail = (String) session.getAttribute("userEmail");
41
42 1 1. doGet : negated conditional → KILLED
            if (userEmail != null) {
43
                try {
44 1 1. doGet : removed call to com/popx/persistenza/ProdottoDAO::saveCartToDatabase → KILLED
                    prodottoDAO.saveCartToDatabase(userEmail, cart);
45 1 1. doGet : removed call to javax/servlet/http/HttpSession::removeAttribute → KILLED
                    session.removeAttribute("cart");
46
                } catch (SQLException e) {
47
                    LOGGER.log(Level.SEVERE, "SQL error saving cart during logout", e);
48 1 1. doGet : removed call to javax/servlet/http/HttpServletResponse::setStatus → KILLED
                    response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
49 1 1. doGet : removed call to java/io/PrintWriter::write → KILLED
                    response.getWriter().write("Errore durante il salvataggio del carrello.");
50
                    return;
51
                }
52
            }
53
        }
54
55 1 1. doGet : removed call to javax/servlet/http/HttpSession::invalidate → KILLED
        session.invalidate();  // Invalidare la sessione e quindi il logout
56 1 1. doGet : removed call to javax/servlet/http/HttpServletResponse::sendRedirect → KILLED
        response.sendRedirect(request.getContextPath() + "/jsp/HomePage.jsp");  // Redirige alla HomePage
57
58
    }
59
}

Mutations

39

1.1
Location : doGet
Killed by : com.popx.integration.presentazione.LogoutServletTest.[engine:junit-jupiter]/[class:com.popx.integration.presentazione.LogoutServletTest]/[method:logout_withCartAndUser_savesCartAndRedirects()]
negated conditional → KILLED

42

1.1
Location : doGet
Killed by : com.popx.integration.presentazione.LogoutServletTest.[engine:junit-jupiter]/[class:com.popx.integration.presentazione.LogoutServletTest]/[method:logout_withCartButNoUserEmail_redirectsOnly()]
negated conditional → KILLED

44

1.1
Location : doGet
Killed by : com.popx.integration.presentazione.LogoutServletTest.[engine:junit-jupiter]/[class:com.popx.integration.presentazione.LogoutServletTest]/[method:logout_withCartAndUser_savesCartAndRedirects()]
removed call to com/popx/persistenza/ProdottoDAO::saveCartToDatabase → KILLED

45

1.1
Location : doGet
Killed by : com.popx.integration.presentazione.LogoutServletTest.[engine:junit-jupiter]/[class:com.popx.integration.presentazione.LogoutServletTest]/[method:logout_withCartAndUser_savesCartAndRedirects()]
removed call to javax/servlet/http/HttpSession::removeAttribute → KILLED

48

1.1
Location : doGet
Killed by : com.popx.integration.presentazione.LogoutServletTest.[engine:junit-jupiter]/[class:com.popx.integration.presentazione.LogoutServletTest]/[method:logout_sqlException_returns500AndWritesMessage()]
removed call to javax/servlet/http/HttpServletResponse::setStatus → KILLED

49

1.1
Location : doGet
Killed by : com.popx.integration.presentazione.LogoutServletTest.[engine:junit-jupiter]/[class:com.popx.integration.presentazione.LogoutServletTest]/[method:logout_sqlException_returns500AndWritesMessage()]
removed call to java/io/PrintWriter::write → KILLED

55

1.1
Location : doGet
Killed by : com.popx.integration.presentazione.LogoutServletTest.[engine:junit-jupiter]/[class:com.popx.integration.presentazione.LogoutServletTest]/[method:logout_withoutCart_redirectsOnly()]
removed call to javax/servlet/http/HttpSession::invalidate → KILLED

56

1.1
Location : doGet
Killed by : com.popx.integration.presentazione.LogoutServletTest.[engine:junit-jupiter]/[class:com.popx.integration.presentazione.LogoutServletTest]/[method:logout_withoutCart_redirectsOnly()]
removed call to javax/servlet/http/HttpServletResponse::sendRedirect → KILLED

Active mutators

Tests examined


Report generated by PIT 1.15.2