Database.java

1
/*******************************************************************************
2
 * Copyhacked (H) 2012-2025.
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 it
6
 * every time possible with every body.
7
 * 
8
 * Contributors:
9
 *      ron190 at ymail dot com - initial implementation
10
 ******************************************************************************/
11
package com.jsql.model.bean.database;
12
13
import com.jsql.util.LogLevelUtil;
14
import org.apache.commons.lang3.StringUtils;
15
import org.apache.logging.log4j.LogManager;
16
import org.apache.logging.log4j.Logger;
17
18
/**
19
 * Define a Database, e.g. is sent to the view by the model after injection.
20
 */
21
public class Database extends AbstractElementDatabase {
22
    
23
    private static final Logger LOGGER = LogManager.getRootLogger();
24
    
25
    // The number of tables in the database.
26
    private String tableCount;
27
28
    /**
29
     * Define the database label and number of tables.
30
     */
31
    public Database(String databaseName, String tableCount) {
32
        this.elementValue = databaseName;
33
        this.tableCount = tableCount;
34
    }
35
36
    // A database has no parent.
37
    @Override
38
    public AbstractElementDatabase getParent() {
39
        return null;
40
    }
41
    
42
    // Return the number of tables in the table.
43
    @Override
44
    public int getChildCount() {
45 1 1. getChildCount : replaced int return with 0 for com/jsql/model/bean/database/Database::getChildCount → NO_COVERAGE
        return Integer.parseInt(this.tableCount);
46
    }
47
48
    /**
49
     * A readable label for the database, with number of tables,
50
     * displayed by the view, e.g. my_database (7 tables).
51
     */
52
    @Override
53
    public String getLabelWithCount() {
54
        // Report #1500: detect incorrect number of tables
55
        String sPlural = StringUtils.EMPTY;
56
        
57
        try {
58 2 1. getLabelWithCount : changed conditional boundary → SURVIVED
2. getLabelWithCount : negated conditional → KILLED
            if (Integer.parseInt(this.tableCount) > 1) {
59
                sPlural = "s";
60
            }
61
        } catch (NumberFormatException e) {
62
            this.tableCount = "0";
63
            LOGGER.log(LogLevelUtil.CONSOLE_ERROR, "Incorrect number of tables for [{}].", this);
64
        }
65
        
66 1 1. getLabelWithCount : replaced return value with "" for com/jsql/model/bean/database/Database::getLabelWithCount → KILLED
        return String.format(
67
            "%s (%s table%s)",
68
            this.elementValue,
69
            this.tableCount,
70
            sPlural
71
        );
72
    }
73
}

Mutations

45

1.1
Location : getChildCount
Killed by : none
replaced int return with 0 for com/jsql/model/bean/database/Database::getChildCount → NO_COVERAGE

58

1.1
Location : getLabelWithCount
Killed by : none
changed conditional boundary → SURVIVED
Covering tests

2.2
Location : getLabelWithCount
Killed by : BeanDatabaseSpock.[engine:spock]/[spec:BeanDatabaseSpock]/[feature:$spock_feature_0_3]/[iteration:0]
negated conditional → KILLED

66

1.1
Location : getLabelWithCount
Killed by : BeanDatabaseSpock.[engine:spock]/[spec:BeanDatabaseSpock]/[feature:$spock_feature_0_3]/[iteration:0]
replaced return value with "" for com/jsql/model/bean/database/Database::getLabelWithCount → KILLED

Active mutators

Tests examined


Report generated by PIT 1.22.1