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.

There is a newer version: 1.49
Show newest version
/*
 * Copyright (c) 2006 Rogério Liesenfeld
 * This file is subject to the terms of the MIT license (see LICENSE.txt).
 */
package mockit.coverage.reporting.lineCoverage;

import java.io.*;
import javax.annotation.*;

import mockit.coverage.lines.*;
import mockit.coverage.reporting.parsing.*;

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(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 - 2024 Weber Informatics LLC | Privacy Policy