ManagerScan.java

1
/*******************************************************************************
2
 * Copyhacked (H) 2012-2020.
3
 * This program and the accompanying materials
4
 * are made available under no term at all, use it like
5
 * you want, but share and discuss about it
6
 * every time possible with every body.
7
 * 
8
 * Contributors:
9
 *      ron190 at ymail dot com - initial implementation
10
 ******************************************************************************/
11
package com.jsql.view.swing.manager;
12
13
import com.jsql.model.bean.util.Interaction;
14
import com.jsql.model.bean.util.Request;
15
import com.jsql.model.injection.method.AbstractMethodInjection;
16
import com.jsql.model.injection.vendor.model.Vendor;
17
import com.jsql.util.I18nUtil;
18
import com.jsql.util.LogLevelUtil;
19
import com.jsql.view.scan.ScanListTerminal;
20
import com.jsql.view.swing.list.*;
21
import com.jsql.view.swing.manager.util.JButtonStateful;
22
import com.jsql.view.swing.manager.util.StateButton;
23
import com.jsql.view.swing.scrollpane.LightScrollPane;
24
import com.jsql.view.swing.ui.FlatButtonMouseAdapter;
25
import com.jsql.view.swing.util.I18nViewUtil;
26
import com.jsql.view.swing.util.MediatorHelper;
27
import com.jsql.view.swing.util.UiUtil;
28
import org.apache.logging.log4j.LogManager;
29
import org.apache.logging.log4j.Logger;
30
import org.json.JSONArray;
31
import org.json.JSONException;
32
33
import javax.swing.*;
34
import java.awt.*;
35
import java.io.BufferedReader;
36
import java.io.IOException;
37
import java.io.InputStreamReader;
38
import java.nio.charset.StandardCharsets;
39
import java.util.ArrayList;
40
import java.util.List;
41
import java.util.Objects;
42
import java.util.Optional;
43
44
/**
45
 * Manager to display webpages frequently used as backoffice administration.
46
 */
47
public class ManagerScan extends AbstractManagerList {
48
    
49
    /**
50
     * Log4j logger sent to view.
51
     */
52
    private static final Logger LOGGER = LogManager.getRootLogger();
53
54
    public static final String NAME = "listManagerScan";
55
56
    /**
57
     * Create admin page finder.
58
     */
59
    public ManagerScan() {
60
        
61 1 1. <init> : removed call to com/jsql/view/swing/manager/ManagerScan::setLayout → NO_COVERAGE
        this.setLayout(new BorderLayout());
62
63
        List<ItemList> itemsList = this.getItemList();
64
        
65
        final DnDList dndListScan = new DnDListScan(itemsList);
66
        
67 1 1. <init> : removed call to com/jsql/view/swing/list/DnDList::setTransferHandler → NO_COVERAGE
        dndListScan.setTransferHandler(null);
68 1 1. <init> : removed call to com/jsql/view/swing/list/DnDList::setTransferHandler → NO_COVERAGE
        dndListScan.setTransferHandler(new ListTransfertHandlerScan());
69
        
70
        this.listPaths = dndListScan;
71 1 1. <init> : removed call to com/jsql/view/swing/list/DnDList::setName → NO_COVERAGE
        this.listPaths.setName(ManagerScan.NAME);
72
        
73 1 1. <init> : removed call to com/jsql/view/swing/list/DnDList::setBorder → NO_COVERAGE
        this.getListPaths().setBorder(BorderFactory.createEmptyBorder(0, 0, LightScrollPane.THUMB_SIZE, 0));
74 1 1. <init> : removed call to com/jsql/view/swing/manager/ManagerScan::add → NO_COVERAGE
        this.add(new LightScrollPane(0, 0, 0, 0, dndListScan), BorderLayout.CENTER);
75
76
        JPanel lastLine = this.getLastLinePanel(dndListScan);
77 1 1. <init> : removed call to com/jsql/view/swing/manager/ManagerScan::add → NO_COVERAGE
        this.add(lastLine, BorderLayout.SOUTH);
78
        
79 1 1. <init> : removed call to com/jsql/view/swing/list/DnDList::addListSelectionListener → NO_COVERAGE
        dndListScan.addListSelectionListener(e -> {
80
            
81 1 1. lambda$new$0 : negated conditional → NO_COVERAGE
            if (dndListScan.getSelectedValue() == null) {
82
                return;
83
            }
84
            
85
            var beanInjection = ((ItemListScan) dndListScan.getSelectedValue()).getBeanInjection();
86
            
87 1 1. lambda$new$0 : removed call to javax/swing/JTextField::setText → NO_COVERAGE
            MediatorHelper.panelAddressBar().getTextFieldAddress().setText(beanInjection.getUrl());
88 1 1. lambda$new$0 : removed call to javax/swing/JTextField::setText → NO_COVERAGE
            MediatorHelper.panelAddressBar().getTextFieldHeader().setText(beanInjection.getHeader());
89 1 1. lambda$new$0 : removed call to javax/swing/JTextField::setText → NO_COVERAGE
            MediatorHelper.panelAddressBar().getTextFieldRequest().setText(beanInjection.getRequest());
90
            
91
            String requestType = beanInjection.getRequestType();
92 2 1. lambda$new$0 : negated conditional → NO_COVERAGE
2. lambda$new$0 : negated conditional → NO_COVERAGE
            if (requestType != null && !requestType.isEmpty()) {
93 1 1. lambda$new$0 : removed call to com/jsql/view/swing/radio/RadioLinkMethod::setText → NO_COVERAGE
                MediatorHelper.panelAddressBar().getRadioRequest().setText(requestType);
94
            } else {
95 1 1. lambda$new$0 : removed call to com/jsql/view/swing/radio/RadioLinkMethod::setText → NO_COVERAGE
                MediatorHelper.panelAddressBar().getRadioRequest().setText("GET");
96
            }
97
            
98
            AbstractMethodInjection method = beanInjection.getMethodInstance();
99
            
100 1 1. lambda$new$0 : negated conditional → NO_COVERAGE
            if (method == MediatorHelper.model().getMediatorMethod().getHeader()) {
101 1 1. lambda$new$0 : removed call to com/jsql/view/swing/radio/RadioLinkMethod::setSelected → NO_COVERAGE
                MediatorHelper.panelAddressBar().getRadioHeader().setSelected();
102 1 1. lambda$new$0 : negated conditional → NO_COVERAGE
            } else if (method == MediatorHelper.model().getMediatorMethod().getRequest()) {
103 1 1. lambda$new$0 : removed call to com/jsql/view/swing/radio/RadioLinkMethod::setSelected → NO_COVERAGE
                MediatorHelper.panelAddressBar().getRadioRequest().setSelected();
104
            } else {
105 1 1. lambda$new$0 : removed call to com/jsql/view/swing/radio/RadioLinkMethod::setSelected → NO_COVERAGE
                MediatorHelper.panelAddressBar().getRadioQueryString().setSelected();
106
            }
107
        });
108
    }
109
110
    private JPanel getLastLinePanel(final DnDList dndListScan) {
111
        
112
        var lastLine = new JPanel();
113 1 1. getLastLinePanel : removed call to javax/swing/JPanel::setOpaque → NO_COVERAGE
        lastLine.setOpaque(false);
114 1 1. getLastLinePanel : removed call to javax/swing/JPanel::setLayout → NO_COVERAGE
        lastLine.setLayout(new BoxLayout(lastLine, BoxLayout.X_AXIS));
115
116 1 1. getLastLinePanel : removed call to javax/swing/JPanel::setBorder → NO_COVERAGE
        lastLine.setBorder(
117
            BorderFactory.createCompoundBorder(
118
                BorderFactory.createMatteBorder(0, 0, 0, 0, UiUtil.COLOR_COMPONENT_BORDER),
119
                BorderFactory.createEmptyBorder(1, 0, 1, 1)
120
            )
121
        );
122
        
123 1 1. getLastLinePanel : removed call to com/jsql/view/swing/manager/ManagerScan::initializeRunButton → NO_COVERAGE
        this.initializeRunButton(dndListScan);
124
125 1 1. getLastLinePanel : removed call to javax/swing/JLabel::setVisible → NO_COVERAGE
        this.loader.setVisible(false);
126
127
        lastLine.add(Box.createHorizontalGlue());
128
        lastLine.add(this.loader);
129
        lastLine.add(Box.createRigidArea(new Dimension(5, 0)));
130
        lastLine.add(this.run);
131
        
132 1 1. getLastLinePanel : replaced return value with null for com/jsql/view/swing/manager/ManagerScan::getLastLinePanel → NO_COVERAGE
        return lastLine;
133
    }
134
135
    private List<ItemList> getItemList() {
136
        
137
        var jsonScan = new StringBuilder();
138
        
139
        try (
140
            var inputStream = UiUtil.class.getClassLoader().getResourceAsStream(UiUtil.INPUT_STREAM_PAGES_SCAN);
141
            var inputStreamReader = new InputStreamReader(Objects.requireNonNull(inputStream), StandardCharsets.UTF_8);
142
            var reader = new BufferedReader(inputStreamReader)
143
        ) {
144
            
145
            String line;
146 1 1. getItemList : negated conditional → NO_COVERAGE
            while ((line = reader.readLine()) != null) {
147
                jsonScan.append(line);
148
            }
149
        } catch (IOException e) {
150
            LOGGER.log(LogLevelUtil.CONSOLE_JAVA, e, e);
151
        }
152
        
153
        List<ItemList> itemsList = new ArrayList<>();
154
        
155
        try {
156
            var jsonArrayScan = new JSONArray(jsonScan.toString());
157
            
158 2 1. getItemList : changed conditional boundary → NO_COVERAGE
2. getItemList : negated conditional → NO_COVERAGE
            for (var i = 0 ; i < jsonArrayScan.length() ; i++) {
159
                
160
                var jsonObjectScan = jsonArrayScan.getJSONObject(i);
161
                
162
                var beanInjection = new BeanInjection(
163
                    jsonObjectScan.getString("url"),
164
                    jsonObjectScan.optString("request"),
165
                    jsonObjectScan.optString("header"),
166
                    jsonObjectScan.optString("method"),
167
                    jsonObjectScan.optString("vendor"),
168
                    jsonObjectScan.optString("requestType")
169
                );
170
                
171
                itemsList.add(new ItemListScan(beanInjection));
172
            }
173
        } catch (JSONException e) {
174
            LOGGER.log(LogLevelUtil.CONSOLE_JAVA, e, e);
175
        }
176
        
177 1 1. getItemList : replaced return value with Collections.emptyList for com/jsql/view/swing/manager/ManagerScan::getItemList → NO_COVERAGE
        return itemsList;
178
    }
179
180
    private void initializeRunButton(final DnDList dndListScan) {
181
        
182
        this.defaultText = "SCAN_RUN_BUTTON_LABEL";
183
        this.run = new JButtonStateful(this.defaultText);
184 1 1. initializeRunButton : removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE
        I18nViewUtil.addComponentForKey("SCAN_RUN_BUTTON_LABEL", this.run);
185 1 1. initializeRunButton : removed call to com/jsql/view/swing/manager/util/JButtonStateful::setToolTipText → NO_COVERAGE
        this.run.setToolTipText(I18nUtil.valueByKey("SCAN_RUN_BUTTON_TOOLTIP"));
186
187 1 1. initializeRunButton : removed call to com/jsql/view/swing/manager/util/JButtonStateful::setContentAreaFilled → NO_COVERAGE
        this.run.setContentAreaFilled(false);
188 1 1. initializeRunButton : removed call to com/jsql/view/swing/manager/util/JButtonStateful::setBorder → NO_COVERAGE
        this.run.setBorder(BorderFactory.createEmptyBorder(4, 8, 4, 8));
189 1 1. initializeRunButton : removed call to com/jsql/view/swing/manager/util/JButtonStateful::setBackground → NO_COVERAGE
        this.run.setBackground(UiUtil.COLOR_FOCUS_GAINED);
190
        
191 1 1. initializeRunButton : removed call to com/jsql/view/swing/manager/util/JButtonStateful::addMouseListener → NO_COVERAGE
        this.run.addMouseListener(new FlatButtonMouseAdapter(this.run));
192
        
193 1 1. initializeRunButton : removed call to com/jsql/view/swing/manager/util/JButtonStateful::addActionListener → NO_COVERAGE
        this.run.addActionListener(actionEvent -> {
194
            
195 1 1. lambda$initializeRunButton$2 : negated conditional → NO_COVERAGE
            if (dndListScan.getSelectedValuesList().isEmpty()) {
196
                
197
                LOGGER.log(LogLevelUtil.CONSOLE_ERROR, "Select URL(s) to scan");
198
                return;
199
            }
200
            
201
            new Thread(
202
                () -> {
203
                
204 1 1. lambda$initializeRunButton$1 : negated conditional → NO_COVERAGE
                    if (ManagerScan.this.run.getState() == StateButton.STARTABLE) {
205
                        
206 1 1. lambda$initializeRunButton$1 : removed call to com/jsql/view/swing/manager/util/JButtonStateful::setText → NO_COVERAGE
                        ManagerScan.this.run.setText(I18nViewUtil.valueByKey("SCAN_RUN_BUTTON_STOP"));
207 1 1. lambda$initializeRunButton$1 : removed call to com/jsql/view/swing/manager/util/JButtonStateful::setState → NO_COVERAGE
                        ManagerScan.this.run.setState(StateButton.STOPPABLE);
208 1 1. lambda$initializeRunButton$1 : removed call to javax/swing/JLabel::setVisible → NO_COVERAGE
                        ManagerScan.this.loader.setVisible(true);
209
                        
210
                        DefaultListModel<ItemList> listModel = (DefaultListModel<ItemList>) dndListScan.getModel();
211 2 1. lambda$initializeRunButton$1 : negated conditional → NO_COVERAGE
2. lambda$initializeRunButton$1 : changed conditional boundary → NO_COVERAGE
                        for (var i = 0 ; i < listModel.getSize() ; i++) {
212 1 1. lambda$initializeRunButton$1 : removed call to com/jsql/view/swing/list/ItemList::reset → NO_COVERAGE
                            listModel.get(i).reset();
213
                        }
214
                        
215 1 1. lambda$initializeRunButton$1 : removed call to com/jsql/view/swing/manager/ManagerScan::scan → NO_COVERAGE
                        this.scan(dndListScan.getSelectedValuesList());
216
                        
217
                    } else {
218
                        
219 1 1. lambda$initializeRunButton$1 : removed call to com/jsql/model/accessible/ResourceAccess::setScanStopped → NO_COVERAGE
                        MediatorHelper.model().getResourceAccess().setScanStopped(true);
220 1 1. lambda$initializeRunButton$1 : removed call to com/jsql/model/InjectionModel::setIsStoppedByUser → NO_COVERAGE
                        MediatorHelper.model().setIsStoppedByUser(true);
221 1 1. lambda$initializeRunButton$1 : removed call to com/jsql/view/swing/manager/util/JButtonStateful::setEnabled → NO_COVERAGE
                        ManagerScan.this.run.setEnabled(false);
222 1 1. lambda$initializeRunButton$1 : removed call to com/jsql/view/swing/manager/util/JButtonStateful::setState → NO_COVERAGE
                        ManagerScan.this.run.setState(StateButton.STOPPING);
223
                    }
224
                },
225
                "ThreadScan"
226 1 1. lambda$initializeRunButton$2 : removed call to java/lang/Thread::start → NO_COVERAGE
            ).start();
227
        });
228
    }
229
    
230
    /**
231
     * Start fast scan of URLs in sequence and display result.
232
     * Unplug any existing view and plug a console-like view in order to
233
     * respond appropriately to GUI message with simple text result instead of
234
     * build complex graphical components during the multi website injections.
235
     * At the end of the scan it plugs again the normal view.
236
     * @param urlsItemList contains a list of String URL
237
     */
238
    public void scan(List<ItemList> urlsItemList) {
239
        
240
        // Erase everything in the view from a previous injection
241
        var requests = new Request();
242 1 1. scan : removed call to com/jsql/model/bean/util/Request::setMessage → NO_COVERAGE
        requests.setMessage(Interaction.RESET_INTERFACE);
243 1 1. scan : removed call to com/jsql/model/InjectionModel::sendToViews → NO_COVERAGE
        MediatorHelper.model().sendToViews(requests);
244
        
245
        // wait for ending of ongoing interaction between two injections
246
        try {
247 1 1. scan : removed call to java/lang/Thread::sleep → NO_COVERAGE
            Thread.sleep(500);
248
        } catch (InterruptedException e) {
249
            
250
            LOGGER.log(LogLevelUtil.IGNORE, e, e);
251 1 1. scan : removed call to java/lang/Thread::interrupt → NO_COVERAGE
            Thread.currentThread().interrupt();
252
        }
253
254
        // Display result only in console
255
        var requestUnsubscribe = new Request();
256 1 1. scan : removed call to com/jsql/model/bean/util/Request::setMessage → NO_COVERAGE
        requestUnsubscribe.setMessage(Interaction.UNSUBSCRIBE);
257 1 1. scan : removed call to com/jsql/model/InjectionModel::sendToViews → NO_COVERAGE
        MediatorHelper.model().sendToViews(requestUnsubscribe);
258 1 1. scan : removed call to com/jsql/model/InjectionModel::subscribe → NO_COVERAGE
        MediatorHelper.model().subscribe(new ScanListTerminal());
259
        
260 1 1. scan : removed call to com/jsql/model/InjectionModel::setIsScanning → NO_COVERAGE
        MediatorHelper.model().setIsScanning(true);
261 1 1. scan : removed call to com/jsql/model/accessible/ResourceAccess::setScanStopped → NO_COVERAGE
        MediatorHelper.model().getResourceAccess().setScanStopped(false);
262
        
263
        for (ItemList urlItemList: urlsItemList) {
264
            
265
            var urlItemListScan = (ItemListScan) urlItemList;
266 2 1. scan : negated conditional → NO_COVERAGE
2. scan : negated conditional → NO_COVERAGE
            if (MediatorHelper.model().isStoppedByUser() || MediatorHelper.model().getResourceAccess().isScanStopped()) {
267
                break;
268
            }
269
            
270
            LOGGER.log(LogLevelUtil.CONSOLE_INFORM, "Scanning {}", urlItemListScan.getBeanInjection().getUrl());
271
272
            Optional<Vendor> vendor = MediatorHelper.model().getMediatorVendor().getVendors()
273
                .stream()
274 2 1. lambda$scan$3 : replaced boolean return with true for com/jsql/view/swing/manager/ManagerScan::lambda$scan$3 → NO_COVERAGE
2. lambda$scan$3 : replaced boolean return with false for com/jsql/view/swing/manager/ManagerScan::lambda$scan$3 → NO_COVERAGE
                .filter(v -> v.toString().equalsIgnoreCase(urlItemListScan.getBeanInjection().getVendor()))
275
                .findAny();
276
277 1 1. scan : removed call to com/jsql/model/injection/vendor/MediatorVendor::setVendorByUser → NO_COVERAGE
            MediatorHelper.model().getMediatorVendor().setVendorByUser(vendor.orElse(MediatorHelper.model().getMediatorVendor().getAuto()));
278
279 1 1. scan : removed call to com/jsql/util/ParameterUtil::controlInput → NO_COVERAGE
            MediatorHelper.model().getMediatorUtils().getParameterUtil().controlInput(
280
                urlItemListScan.getBeanInjection().getUrl(),
281
                urlItemListScan.getBeanInjection().getRequest(),
282
                urlItemListScan.getBeanInjection().getHeader(),
283
                urlItemListScan.getBeanInjection().getMethodInstance(),
284
                urlItemListScan.getBeanInjection().getRequestType(),
285
                true
286
            );
287
            
288
            try {
289 1 1. scan : removed call to java/lang/Thread::sleep → NO_COVERAGE
                Thread.sleep(500);
290
            } catch (InterruptedException e) {
291
                
292
                LOGGER.log(LogLevelUtil.IGNORE, e, e);
293 1 1. scan : removed call to java/lang/Thread::interrupt → NO_COVERAGE
                Thread.currentThread().interrupt();
294
            }
295
        }
296
        
297
        // Get back the normal view
298 1 1. scan : removed call to com/jsql/model/InjectionModel::sendToViews → NO_COVERAGE
        MediatorHelper.model().sendToViews(requestUnsubscribe);
299 1 1. scan : removed call to com/jsql/model/InjectionModel::subscribe → NO_COVERAGE
        MediatorHelper.model().subscribe(MediatorHelper.frame().getSubscriber());
300
        
301 1 1. scan : removed call to com/jsql/model/InjectionModel::setIsScanning → NO_COVERAGE
        MediatorHelper.model().setIsScanning(false);
302 1 1. scan : removed call to com/jsql/model/InjectionModel::setIsStoppedByUser → NO_COVERAGE
        MediatorHelper.model().setIsStoppedByUser(false);
303 1 1. scan : removed call to com/jsql/model/accessible/ResourceAccess::setScanStopped → NO_COVERAGE
        MediatorHelper.model().getResourceAccess().setScanStopped(false);
304
305
        var request = new Request();
306 1 1. scan : removed call to com/jsql/model/bean/util/Request::setMessage → NO_COVERAGE
        request.setMessage(Interaction.END_SCAN);
307 1 1. scan : removed call to com/jsql/model/InjectionModel::sendToViews → NO_COVERAGE
        MediatorHelper.model().sendToViews(request);
308
    }
309
}

Mutations

61

1.1
Location : <init>
Killed by : none
removed call to com/jsql/view/swing/manager/ManagerScan::setLayout → NO_COVERAGE

67

1.1
Location : <init>
Killed by : none
removed call to com/jsql/view/swing/list/DnDList::setTransferHandler → NO_COVERAGE

68

1.1
Location : <init>
Killed by : none
removed call to com/jsql/view/swing/list/DnDList::setTransferHandler → NO_COVERAGE

71

1.1
Location : <init>
Killed by : none
removed call to com/jsql/view/swing/list/DnDList::setName → NO_COVERAGE

73

1.1
Location : <init>
Killed by : none
removed call to com/jsql/view/swing/list/DnDList::setBorder → NO_COVERAGE

74

1.1
Location : <init>
Killed by : none
removed call to com/jsql/view/swing/manager/ManagerScan::add → NO_COVERAGE

77

1.1
Location : <init>
Killed by : none
removed call to com/jsql/view/swing/manager/ManagerScan::add → NO_COVERAGE

79

1.1
Location : <init>
Killed by : none
removed call to com/jsql/view/swing/list/DnDList::addListSelectionListener → NO_COVERAGE

81

1.1
Location : lambda$new$0
Killed by : none
negated conditional → NO_COVERAGE

87

1.1
Location : lambda$new$0
Killed by : none
removed call to javax/swing/JTextField::setText → NO_COVERAGE

88

1.1
Location : lambda$new$0
Killed by : none
removed call to javax/swing/JTextField::setText → NO_COVERAGE

89

1.1
Location : lambda$new$0
Killed by : none
removed call to javax/swing/JTextField::setText → NO_COVERAGE

92

1.1
Location : lambda$new$0
Killed by : none
negated conditional → NO_COVERAGE

2.2
Location : lambda$new$0
Killed by : none
negated conditional → NO_COVERAGE

93

1.1
Location : lambda$new$0
Killed by : none
removed call to com/jsql/view/swing/radio/RadioLinkMethod::setText → NO_COVERAGE

95

1.1
Location : lambda$new$0
Killed by : none
removed call to com/jsql/view/swing/radio/RadioLinkMethod::setText → NO_COVERAGE

100

1.1
Location : lambda$new$0
Killed by : none
negated conditional → NO_COVERAGE

101

1.1
Location : lambda$new$0
Killed by : none
removed call to com/jsql/view/swing/radio/RadioLinkMethod::setSelected → NO_COVERAGE

102

1.1
Location : lambda$new$0
Killed by : none
negated conditional → NO_COVERAGE

103

1.1
Location : lambda$new$0
Killed by : none
removed call to com/jsql/view/swing/radio/RadioLinkMethod::setSelected → NO_COVERAGE

105

1.1
Location : lambda$new$0
Killed by : none
removed call to com/jsql/view/swing/radio/RadioLinkMethod::setSelected → NO_COVERAGE

113

1.1
Location : getLastLinePanel
Killed by : none
removed call to javax/swing/JPanel::setOpaque → NO_COVERAGE

114

1.1
Location : getLastLinePanel
Killed by : none
removed call to javax/swing/JPanel::setLayout → NO_COVERAGE

116

1.1
Location : getLastLinePanel
Killed by : none
removed call to javax/swing/JPanel::setBorder → NO_COVERAGE

123

1.1
Location : getLastLinePanel
Killed by : none
removed call to com/jsql/view/swing/manager/ManagerScan::initializeRunButton → NO_COVERAGE

125

1.1
Location : getLastLinePanel
Killed by : none
removed call to javax/swing/JLabel::setVisible → NO_COVERAGE

132

1.1
Location : getLastLinePanel
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerScan::getLastLinePanel → NO_COVERAGE

146

1.1
Location : getItemList
Killed by : none
negated conditional → NO_COVERAGE

158

1.1
Location : getItemList
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : getItemList
Killed by : none
negated conditional → NO_COVERAGE

177

1.1
Location : getItemList
Killed by : none
replaced return value with Collections.emptyList for com/jsql/view/swing/manager/ManagerScan::getItemList → NO_COVERAGE

184

1.1
Location : initializeRunButton
Killed by : none
removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE

185

1.1
Location : initializeRunButton
Killed by : none
removed call to com/jsql/view/swing/manager/util/JButtonStateful::setToolTipText → NO_COVERAGE

187

1.1
Location : initializeRunButton
Killed by : none
removed call to com/jsql/view/swing/manager/util/JButtonStateful::setContentAreaFilled → NO_COVERAGE

188

1.1
Location : initializeRunButton
Killed by : none
removed call to com/jsql/view/swing/manager/util/JButtonStateful::setBorder → NO_COVERAGE

189

1.1
Location : initializeRunButton
Killed by : none
removed call to com/jsql/view/swing/manager/util/JButtonStateful::setBackground → NO_COVERAGE

191

1.1
Location : initializeRunButton
Killed by : none
removed call to com/jsql/view/swing/manager/util/JButtonStateful::addMouseListener → NO_COVERAGE

193

1.1
Location : initializeRunButton
Killed by : none
removed call to com/jsql/view/swing/manager/util/JButtonStateful::addActionListener → NO_COVERAGE

195

1.1
Location : lambda$initializeRunButton$2
Killed by : none
negated conditional → NO_COVERAGE

204

1.1
Location : lambda$initializeRunButton$1
Killed by : none
negated conditional → NO_COVERAGE

206

1.1
Location : lambda$initializeRunButton$1
Killed by : none
removed call to com/jsql/view/swing/manager/util/JButtonStateful::setText → NO_COVERAGE

207

1.1
Location : lambda$initializeRunButton$1
Killed by : none
removed call to com/jsql/view/swing/manager/util/JButtonStateful::setState → NO_COVERAGE

208

1.1
Location : lambda$initializeRunButton$1
Killed by : none
removed call to javax/swing/JLabel::setVisible → NO_COVERAGE

211

1.1
Location : lambda$initializeRunButton$1
Killed by : none
negated conditional → NO_COVERAGE

2.2
Location : lambda$initializeRunButton$1
Killed by : none
changed conditional boundary → NO_COVERAGE

212

1.1
Location : lambda$initializeRunButton$1
Killed by : none
removed call to com/jsql/view/swing/list/ItemList::reset → NO_COVERAGE

215

1.1
Location : lambda$initializeRunButton$1
Killed by : none
removed call to com/jsql/view/swing/manager/ManagerScan::scan → NO_COVERAGE

219

1.1
Location : lambda$initializeRunButton$1
Killed by : none
removed call to com/jsql/model/accessible/ResourceAccess::setScanStopped → NO_COVERAGE

220

1.1
Location : lambda$initializeRunButton$1
Killed by : none
removed call to com/jsql/model/InjectionModel::setIsStoppedByUser → NO_COVERAGE

221

1.1
Location : lambda$initializeRunButton$1
Killed by : none
removed call to com/jsql/view/swing/manager/util/JButtonStateful::setEnabled → NO_COVERAGE

222

1.1
Location : lambda$initializeRunButton$1
Killed by : none
removed call to com/jsql/view/swing/manager/util/JButtonStateful::setState → NO_COVERAGE

226

1.1
Location : lambda$initializeRunButton$2
Killed by : none
removed call to java/lang/Thread::start → NO_COVERAGE

242

1.1
Location : scan
Killed by : none
removed call to com/jsql/model/bean/util/Request::setMessage → NO_COVERAGE

243

1.1
Location : scan
Killed by : none
removed call to com/jsql/model/InjectionModel::sendToViews → NO_COVERAGE

247

1.1
Location : scan
Killed by : none
removed call to java/lang/Thread::sleep → NO_COVERAGE

251

1.1
Location : scan
Killed by : none
removed call to java/lang/Thread::interrupt → NO_COVERAGE

256

1.1
Location : scan
Killed by : none
removed call to com/jsql/model/bean/util/Request::setMessage → NO_COVERAGE

257

1.1
Location : scan
Killed by : none
removed call to com/jsql/model/InjectionModel::sendToViews → NO_COVERAGE

258

1.1
Location : scan
Killed by : none
removed call to com/jsql/model/InjectionModel::subscribe → NO_COVERAGE

260

1.1
Location : scan
Killed by : none
removed call to com/jsql/model/InjectionModel::setIsScanning → NO_COVERAGE

261

1.1
Location : scan
Killed by : none
removed call to com/jsql/model/accessible/ResourceAccess::setScanStopped → NO_COVERAGE

266

1.1
Location : scan
Killed by : none
negated conditional → NO_COVERAGE

2.2
Location : scan
Killed by : none
negated conditional → NO_COVERAGE

274

1.1
Location : lambda$scan$3
Killed by : none
replaced boolean return with true for com/jsql/view/swing/manager/ManagerScan::lambda$scan$3 → NO_COVERAGE

2.2
Location : lambda$scan$3
Killed by : none
replaced boolean return with false for com/jsql/view/swing/manager/ManagerScan::lambda$scan$3 → NO_COVERAGE

277

1.1
Location : scan
Killed by : none
removed call to com/jsql/model/injection/vendor/MediatorVendor::setVendorByUser → NO_COVERAGE

279

1.1
Location : scan
Killed by : none
removed call to com/jsql/util/ParameterUtil::controlInput → NO_COVERAGE

289

1.1
Location : scan
Killed by : none
removed call to java/lang/Thread::sleep → NO_COVERAGE

293

1.1
Location : scan
Killed by : none
removed call to java/lang/Thread::interrupt → NO_COVERAGE

298

1.1
Location : scan
Killed by : none
removed call to com/jsql/model/InjectionModel::sendToViews → NO_COVERAGE

299

1.1
Location : scan
Killed by : none
removed call to com/jsql/model/InjectionModel::subscribe → NO_COVERAGE

301

1.1
Location : scan
Killed by : none
removed call to com/jsql/model/InjectionModel::setIsScanning → NO_COVERAGE

302

1.1
Location : scan
Killed by : none
removed call to com/jsql/model/InjectionModel::setIsStoppedByUser → NO_COVERAGE

303

1.1
Location : scan
Killed by : none
removed call to com/jsql/model/accessible/ResourceAccess::setScanStopped → NO_COVERAGE

306

1.1
Location : scan
Killed by : none
removed call to com/jsql/model/bean/util/Request::setMessage → NO_COVERAGE

307

1.1
Location : scan
Killed by : none
removed call to com/jsql/model/InjectionModel::sendToViews → NO_COVERAGE

Active mutators

Tests examined


Report generated by PIT 1.16.1