RegistrationServlet.java

1
package com.popx.presentazione;
2
3
import com.popx.modello.UserBean;
4
import com.popx.servizio.AuthenticationService;
5
6
import javax.servlet.ServletException;
7
import javax.servlet.annotation.WebServlet;
8
import javax.servlet.http.HttpServlet;
9
import javax.servlet.http.HttpServletRequest;
10
import javax.servlet.http.HttpServletResponse;
11
import java.io.IOException;
12
13
@WebServlet("/register")
14
public class RegistrationServlet extends HttpServlet {
15
16
    private final AuthenticationService authService;
17
18
    // Costruttore usato in produzione
19
    public RegistrationServlet() {
20
        this.authService = new AuthenticationService();
21
    }
22
23
    // Costruttore usato nei test (dependency injection)
24
    public RegistrationServlet(AuthenticationService authService) {
25
        this.authService = authService;
26
    }
27
28
    @Override
29
    public void doPost(HttpServletRequest request, HttpServletResponse response)
30
            throws ServletException, IOException {
31
32 1 1. doPost : removed call to javax/servlet/http/HttpServletResponse::setContentType → SURVIVED
        response.setContentType("application/json");
33 1 1. doPost : removed call to javax/servlet/http/HttpServletResponse::setCharacterEncoding → SURVIVED
        response.setCharacterEncoding("UTF-8");
34
35
        String username = request.getParameter("username");
36
        String email = request.getParameter("email");
37
        String password = request.getParameter("password");
38
39
        try {
40 1 1. doPost : negated conditional → KILLED
            if (authService.isEmailRegistered(email)) {
41 1 1. doPost : removed call to java/io/PrintWriter::write → KILLED
                response.getWriter().write(
42
                        "{\"status\":\"error\",\"message\":\"Email già registrata.\"}"
43
                );
44
                return;
45
            }
46
47
            UserBean user = new UserBean();
48 1 1. doPost : removed call to com/popx/modello/UserBean::setUsername → KILLED
            user.setUsername(username);
49 1 1. doPost : removed call to com/popx/modello/UserBean::setEmail → KILLED
            user.setEmail(email);
50 1 1. doPost : removed call to com/popx/modello/UserBean::setPassword → SURVIVED
            user.setPassword(password);
51 1 1. doPost : removed call to com/popx/modello/UserBean::setRole → KILLED
            user.setRole("User");
52
53
            boolean registered = authService.registerUser(user);
54
55 1 1. doPost : negated conditional → KILLED
            if (registered) {
56 1 1. doPost : removed call to java/io/PrintWriter::write → KILLED
                response.getWriter().write(
57
                        "{\"status\":\"success\",\"message\":\"Registrazione avvenuta con successo.\","
58
                                + "\"redirect\":\"" + request.getContextPath() + "/jsp/HomePage.jsp\"}"
59
                );
60
            } else {
61 1 1. doPost : removed call to java/io/PrintWriter::write → KILLED
                response.getWriter().write(
62
                        "{\"status\":\"error\",\"message\":\"Errore sconosciuto durante la registrazione.\"}"
63
                );
64
            }
65
66
        } catch (Exception e) {
67 1 1. doPost : removed call to java/io/PrintWriter::write → KILLED
            response.getWriter().write(
68
                    "{\"status\":\"error\",\"message\":\"" + e.getMessage() + "\"}"
69
            );
70
        }
71
    }
72
}

Mutations

32

1.1
Location : doPost
Killed by : none
removed call to javax/servlet/http/HttpServletResponse::setContentType → SURVIVED

33

1.1
Location : doPost
Killed by : none
removed call to javax/servlet/http/HttpServletResponse::setCharacterEncoding → SURVIVED

40

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

41

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

48

1.1
Location : doPost
Killed by : com.popx.integration.presentazione.RegistrationServletTest.[engine:junit-jupiter]/[class:com.popx.integration.presentazione.RegistrationServletTest]/[method:register_successful()]
removed call to com/popx/modello/UserBean::setUsername → KILLED

49

1.1
Location : doPost
Killed by : com.popx.integration.presentazione.RegistrationServletTest.[engine:junit-jupiter]/[class:com.popx.integration.presentazione.RegistrationServletTest]/[method:register_successful()]
removed call to com/popx/modello/UserBean::setEmail → KILLED

50

1.1
Location : doPost
Killed by : none
removed call to com/popx/modello/UserBean::setPassword → SURVIVED

51

1.1
Location : doPost
Killed by : com.popx.integration.presentazione.RegistrationServletTest.[engine:junit-jupiter]/[class:com.popx.integration.presentazione.RegistrationServletTest]/[method:register_successful()]
removed call to com/popx/modello/UserBean::setRole → KILLED

55

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

56

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

61

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

67

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

Active mutators

Tests examined


Report generated by PIT 1.15.2