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

mockit.coverage.dataItems.FieldData 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.dataItems;

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

public abstract class FieldData implements Serializable
{
   private static final long serialVersionUID = 8565599590976858508L;

   int readCount;
   int writeCount;
   @Nullable Boolean covered;

   private void writeObject(@Nonnull ObjectOutputStream out) throws IOException
   {
      isCovered();
      out.defaultWriteObject();
   }

   public final int getReadCount() { return readCount; }
   public final int getWriteCount() { return writeCount; }

   public final boolean isCovered()
   {
      if (covered == null) {
         covered = false;
         markAsCoveredIfNoUnreadValuesAreLeft();
      }

      return covered;
   }

   abstract void markAsCoveredIfNoUnreadValuesAreLeft();

   final void addCountsFromPreviousTestRun(@Nonnull FieldData previousInfo)
   {
      readCount += previousInfo.readCount;
      writeCount += previousInfo.writeCount;
      covered = isCovered() || previousInfo.isCovered();
   }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy