Checkout.java

1
package control.ordine;
2
import model.CarrelloModel;
3
import model.acquisto.AcquistoBean;
4
import model.acquisto.AcquistoDAO;
5
import model.maglietta.MagliettaOrdine;
6
import model.misura.MisuraDAO;
7
import model.ordine.OrdineBean;
8
import model.ordine.OrdineDAO;
9
import model.utente.UtenteBean;
10
11
import javax.servlet.ServletException;
12
import javax.servlet.annotation.WebServlet;
13
import javax.servlet.http.HttpServlet;
14
import javax.servlet.http.HttpServletRequest;
15
import javax.servlet.http.HttpServletResponse;
16
import java.io.IOException;
17
import java.sql.SQLException;
18
import java.time.LocalDate;
19
20
@WebServlet("/Checkout")
21
public class Checkout extends HttpServlet {
22
    @Override
23
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
24
        final String ERROR_PAGE = "/pages/errorpage.jsp";
25
        CarrelloModel carrelloModel = (CarrelloModel) req.getSession().getAttribute("carrello");
26
        UtenteBean utenteBean = (UtenteBean) req.getSession().getAttribute("utente");
27
28
        LocalDate dataConsegna;
29
        try {
30
            dataConsegna = LocalDate.parse(req.getParameter("data-consegna"));
31
        } catch (java.time.format.DateTimeParseException | NullPointerException e) {
32 1 1. doPost : removed call to javax/servlet/RequestDispatcher::forward → KILLED
            req.getRequestDispatcher(ERROR_PAGE).forward(req, resp);
33
            return;
34
        }
35
36
        float prezzoTot;
37
        try {
38
            prezzoTot = Float.parseFloat(req.getParameter("prezzo-totale"));
39
        } catch (NumberFormatException | NullPointerException e) {
40 1 1. doPost : removed call to javax/servlet/RequestDispatcher::forward → KILLED
            req.getRequestDispatcher(ERROR_PAGE).forward(req, resp);
41
            return;
42
        }
43
44
        OrdineBean ordineBean = new OrdineBean();
45 1 1. doPost : removed call to model/ordine/OrdineBean::setUsername → KILLED
        ordineBean.setUsername(utenteBean.getUsername());
46 1 1. doPost : removed call to model/ordine/OrdineBean::setPrezzoTotale → KILLED
        ordineBean.setPrezzoTotale(prezzoTot);
47 1 1. doPost : removed call to model/ordine/OrdineBean::setDataConsegna → KILLED
        ordineBean.setDataConsegna(dataConsegna);
48 1 1. doPost : removed call to model/ordine/OrdineBean::setDataOrdine → KILLED
        ordineBean.setDataOrdine(LocalDate.now());
49 1 1. doPost : removed call to model/ordine/OrdineBean::setNomeConsegna → KILLED
        ordineBean.setNomeConsegna(req.getParameter("nome-spedizione"));
50 1 1. doPost : removed call to model/ordine/OrdineBean::setCognomeConsegna → KILLED
        ordineBean.setCognomeConsegna(req.getParameter("cognome-spedizione"));
51 1 1. doPost : removed call to model/ordine/OrdineBean::setCap → KILLED
        ordineBean.setCap(req.getParameter("cap-spedizione"));
52 1 1. doPost : removed call to model/ordine/OrdineBean::setVia → KILLED
        ordineBean.setVia(req.getParameter("via-spedizione"));
53 1 1. doPost : removed call to model/ordine/OrdineBean::setCitta → KILLED
        ordineBean.setCitta(req.getParameter("citta-spedizione"));
54
        OrdineDAO ordineDAO = new OrdineDAO();
55
56
        try {
57 1 1. doPost : removed call to model/ordine/OrdineDAO::doSave → KILLED
            ordineDAO.doSave(ordineBean);
58
        } catch (SQLException e) {
59 1 1. doPost : removed call to javax/servlet/RequestDispatcher::forward → KILLED
            req.getRequestDispatcher(ERROR_PAGE).forward(req, resp);
60
        }
61
62
        for (MagliettaOrdine p: carrelloModel.getCarrello()) {
63
            try {
64
                AcquistoBean acquistoBean = new AcquistoBean();
65 2 1. doPost : removed call to model/acquisto/AcquistoBean::setIDOrdine → KILLED
2. doPost : Replaced integer subtraction with addition → KILLED
                acquistoBean.setIDOrdine(new OrdineDAO().getMaxID() - 1);
66 1 1. doPost : removed call to model/acquisto/AcquistoBean::setIDMaglietta → KILLED
                acquistoBean.setIDMaglietta(p.getMagliettaBean().getID());
67 1 1. doPost : removed call to model/acquisto/AcquistoBean::setQuantita → KILLED
                acquistoBean.setQuantita(p.getQuantita());
68 1 1. doPost : removed call to model/acquisto/AcquistoBean::setImmagine → KILLED
                acquistoBean.setImmagine(p.getMagliettaBean().getGrafica());
69 1 1. doPost : removed call to model/acquisto/AcquistoBean::setPrezzoAq → KILLED
                acquistoBean.setPrezzoAq(p.getMagliettaBean().getPrezzo());
70 1 1. doPost : removed call to model/acquisto/AcquistoBean::setIvaAq → KILLED
                acquistoBean.setIvaAq(p.getMagliettaBean().getIVA());
71 1 1. doPost : removed call to model/acquisto/AcquistoBean::setTaglia → KILLED
                acquistoBean.setTaglia(p.getTaglia());
72
73
                AcquistoDAO acquistoDAO = new AcquistoDAO();
74 1 1. doPost : removed call to model/acquisto/AcquistoDAO::doSave → KILLED
                acquistoDAO.doSave(acquistoBean);
75
76
                MisuraDAO misuraDAO = new MisuraDAO();
77 1 1. doPost : removed call to model/misura/MisuraDAO::doUpdateUtente → KILLED
                misuraDAO.doUpdateUtente(acquistoBean, p.getTaglia());
78
79
            } catch (SQLException e) {
80 1 1. doPost : removed call to javax/servlet/RequestDispatcher::forward → KILLED
                req.getRequestDispatcher(ERROR_PAGE).forward(req, resp);
81
            }
82
        }
83
84 1 1. doPost : removed call to javax/servlet/http/HttpSession::removeAttribute → KILLED
        req.getSession().removeAttribute("carrello");
85
86 1 1. doPost : removed call to javax/servlet/http/HttpServletResponse::sendRedirect → KILLED
        resp.sendRedirect("pages/acquisto.jsp");
87
    }
88
}

Mutations

32

1.1
Location : doPost
Killed by : control.ordine.CheckoutTest.[engine:junit-jupiter]/[class:control.ordine.CheckoutTest]/[method:doPost_dataConsegnaNull_forwardError()]
removed call to javax/servlet/RequestDispatcher::forward → KILLED

40

1.1
Location : doPost
Killed by : control.ordine.CheckoutTest.[engine:junit-jupiter]/[class:control.ordine.CheckoutTest]/[method:doPost_prezzoTotaleNonNumerico_forwardError()]
removed call to javax/servlet/RequestDispatcher::forward → KILLED

45

1.1
Location : doPost
Killed by : control.ordine.CheckoutTest.[engine:junit-jupiter]/[class:control.ordine.CheckoutTest]/[method:doPost_ok_carrelloUnaRiga_redirectOk()]
removed call to model/ordine/OrdineBean::setUsername → KILLED

46

1.1
Location : doPost
Killed by : control.ordine.CheckoutTest.[engine:junit-jupiter]/[class:control.ordine.CheckoutTest]/[method:doPost_ok_carrelloUnaRiga_redirectOk()]
removed call to model/ordine/OrdineBean::setPrezzoTotale → KILLED

47

1.1
Location : doPost
Killed by : control.ordine.CheckoutTest.[engine:junit-jupiter]/[class:control.ordine.CheckoutTest]/[method:doPost_ok_carrelloUnaRiga_redirectOk()]
removed call to model/ordine/OrdineBean::setDataConsegna → KILLED

48

1.1
Location : doPost
Killed by : control.ordine.CheckoutTest.[engine:junit-jupiter]/[class:control.ordine.CheckoutTest]/[method:doPost_ok_carrelloUnaRiga_redirectOk()]
removed call to model/ordine/OrdineBean::setDataOrdine → KILLED

49

1.1
Location : doPost
Killed by : control.ordine.CheckoutTest.[engine:junit-jupiter]/[class:control.ordine.CheckoutTest]/[method:doPost_ok_carrelloUnaRiga_redirectOk()]
removed call to model/ordine/OrdineBean::setNomeConsegna → KILLED

50

1.1
Location : doPost
Killed by : control.ordine.CheckoutTest.[engine:junit-jupiter]/[class:control.ordine.CheckoutTest]/[method:doPost_ok_carrelloUnaRiga_redirectOk()]
removed call to model/ordine/OrdineBean::setCognomeConsegna → KILLED

51

1.1
Location : doPost
Killed by : control.ordine.CheckoutTest.[engine:junit-jupiter]/[class:control.ordine.CheckoutTest]/[method:doPost_ok_carrelloUnaRiga_redirectOk()]
removed call to model/ordine/OrdineBean::setCap → KILLED

52

1.1
Location : doPost
Killed by : control.ordine.CheckoutTest.[engine:junit-jupiter]/[class:control.ordine.CheckoutTest]/[method:doPost_ok_carrelloUnaRiga_redirectOk()]
removed call to model/ordine/OrdineBean::setVia → KILLED

53

1.1
Location : doPost
Killed by : control.ordine.CheckoutTest.[engine:junit-jupiter]/[class:control.ordine.CheckoutTest]/[method:doPost_ok_carrelloUnaRiga_redirectOk()]
removed call to model/ordine/OrdineBean::setCitta → KILLED

57

1.1
Location : doPost
Killed by : control.ordine.CheckoutTest.[engine:junit-jupiter]/[class:control.ordine.CheckoutTest]/[method:doPost_ordineDoSaveThrows_forwardError_thenRedirect()]
removed call to model/ordine/OrdineDAO::doSave → KILLED

59

1.1
Location : doPost
Killed by : control.ordine.CheckoutTest.[engine:junit-jupiter]/[class:control.ordine.CheckoutTest]/[method:doPost_ordineDoSaveThrows_forwardError_thenRedirect()]
removed call to javax/servlet/RequestDispatcher::forward → KILLED

65

1.1
Location : doPost
Killed by : control.ordine.CheckoutTest.[engine:junit-jupiter]/[class:control.ordine.CheckoutTest]/[method:doPost_ok_carrelloUnaRiga_redirectOk()]
removed call to model/acquisto/AcquistoBean::setIDOrdine → KILLED

2.2
Location : doPost
Killed by : control.ordine.CheckoutTest.[engine:junit-jupiter]/[class:control.ordine.CheckoutTest]/[method:doPost_ok_carrelloUnaRiga_redirectOk()]
Replaced integer subtraction with addition → KILLED

66

1.1
Location : doPost
Killed by : control.ordine.CheckoutTest.[engine:junit-jupiter]/[class:control.ordine.CheckoutTest]/[method:doPost_ok_carrelloUnaRiga_redirectOk()]
removed call to model/acquisto/AcquistoBean::setIDMaglietta → KILLED

67

1.1
Location : doPost
Killed by : control.ordine.CheckoutTest.[engine:junit-jupiter]/[class:control.ordine.CheckoutTest]/[method:doPost_ok_carrelloUnaRiga_redirectOk()]
removed call to model/acquisto/AcquistoBean::setQuantita → KILLED

68

1.1
Location : doPost
Killed by : control.ordine.CheckoutTest.[engine:junit-jupiter]/[class:control.ordine.CheckoutTest]/[method:doPost_ok_carrelloUnaRiga_redirectOk()]
removed call to model/acquisto/AcquistoBean::setImmagine → KILLED

69

1.1
Location : doPost
Killed by : control.ordine.CheckoutTest.[engine:junit-jupiter]/[class:control.ordine.CheckoutTest]/[method:doPost_ok_carrelloUnaRiga_redirectOk()]
removed call to model/acquisto/AcquistoBean::setPrezzoAq → KILLED

70

1.1
Location : doPost
Killed by : control.ordine.CheckoutTest.[engine:junit-jupiter]/[class:control.ordine.CheckoutTest]/[method:doPost_ok_carrelloUnaRiga_redirectOk()]
removed call to model/acquisto/AcquistoBean::setIvaAq → KILLED

71

1.1
Location : doPost
Killed by : control.ordine.CheckoutTest.[engine:junit-jupiter]/[class:control.ordine.CheckoutTest]/[method:doPost_ok_carrelloUnaRiga_redirectOk()]
removed call to model/acquisto/AcquistoBean::setTaglia → KILLED

74

1.1
Location : doPost
Killed by : control.ordine.CheckoutTest.[engine:junit-jupiter]/[class:control.ordine.CheckoutTest]/[method:doPost_ok_carrelloUnaRiga_redirectOk()]
removed call to model/acquisto/AcquistoDAO::doSave → KILLED

77

1.1
Location : doPost
Killed by : control.ordine.CheckoutTest.[engine:junit-jupiter]/[class:control.ordine.CheckoutTest]/[method:doPost_ok_carrelloUnaRiga_redirectOk()]
removed call to model/misura/MisuraDAO::doUpdateUtente → KILLED

80

1.1
Location : doPost
Killed by : control.ordine.CheckoutTest.[engine:junit-jupiter]/[class:control.ordine.CheckoutTest]/[method:doPost_acquistoDoSaveThrows_forwardError_thenRedirect()]
removed call to javax/servlet/RequestDispatcher::forward → KILLED

84

1.1
Location : doPost
Killed by : control.ordine.CheckoutTest.[engine:junit-jupiter]/[class:control.ordine.CheckoutTest]/[method:doPost_ordineDoSaveThrows_forwardError_thenRedirect()]
removed call to javax/servlet/http/HttpSession::removeAttribute → KILLED

86

1.1
Location : doPost
Killed by : control.ordine.CheckoutTest.[engine:junit-jupiter]/[class:control.ordine.CheckoutTest]/[method:doPost_ordineDoSaveThrows_forwardError_thenRedirect()]
removed call to javax/servlet/http/HttpServletResponse::sendRedirect → KILLED

Active mutators

Tests examined


Report generated by PIT 1.22.0