All Downloads are FREE. Search and download functionalities are using the official Maven repository.

mockit.coverage.reporting.lineCoverage.LineCoverageOutput Maven / Gradle / Ivy

Go to download

JMockit is a Java toolkit for automated developer testing. It contains APIs for the creation of the objects to be tested, for mocking dependencies, and for faking external APIs; JUnit (4 & 5) and TestNG test runners are supported. It also contains an advanced code coverage tool.

The newest version!
/*
 * Copyright (c) 2006 JMockit developers
 * This file is subject to the terms of the MIT license (see LICENSE.txt).
 */
package mockit.coverage.reporting.lineCoverage;

import edu.umd.cs.findbugs.annotations.NonNull;

import java.io.PrintWriter;

import mockit.coverage.lines.PerFileLineCoverage;
import mockit.coverage.reporting.parsing.LineParser;

import org.checkerframework.checker.index.qual.NonNegative;

public final class LineCoverageOutput {
    @NonNull
    private final PrintWriter output;
    @NonNull
    private final PerFileLineCoverage lineCoverageData;
    @NonNull
    private final LineCoverageFormatter lineCoverageFormatter;

    public LineCoverageOutput(@NonNull PrintWriter output, @NonNull PerFileLineCoverage lineCoverageData,
            boolean withCallPoints) {
        this.output = output;
        this.lineCoverageData = lineCoverageData;
        lineCoverageFormatter = new LineCoverageFormatter(withCallPoints);
    }

    public boolean writeLineWithCoverageInfo(@NonNull LineParser lineParser) {
        int line = lineParser.getNumber();

        if (!lineCoverageData.hasLineData(line)) {
            return false;
        }

        int lineExecutionCount = lineCoverageData.getExecutionCount(line);

        if (lineExecutionCount < 0) {
            return false;
        }

        writeLineExecutionCount(lineExecutionCount);
        writeExecutableCode(lineParser);
        return true;
    }

    private void writeLineExecutionCount(@NonNegative int lineExecutionCount) {
        output.write("");
        output.print(lineExecutionCount);
        output.println("");
    }

    private void writeExecutableCode(@NonNull LineParser lineParser) {
        String formattedLine = lineCoverageFormatter.format(lineParser, lineCoverageData);
        output.write("      ");
        output.write(formattedLine);
        output.println("");
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy